Mục lục:
- Bước 1: Configurando O Ambiente
- Bước 2: WebSocket
- Bước 3: Escrevendo O Servidor
- Bước 4: Testando O Servidor
- Bước 5: Một Aplicação Mobile
Video: Pequeno Projeto De Uma Casa Inteligente: 5 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Hỡi projeto quearesmos é de uma casa inteligente. Possui basicamente dois grupos de funcionalidades: · De monitoramento de iluminação e temperatura dos cômodos.
· De monitoramente de lista de alimentos e nível de água filtrada na geladeira.
Não escreveremos phần vững hệ điều hành dos dispositivos IoT da geladeira nem dos cômodos; porém giả định là que os dispositivos fazem o seguinte:
- Một màn hình cảm ứng geladeira Possui um dispositivo com em que é possível entrar com dados de alimentos: o nome de um alimento e sua quantidade;
- A geladeira Possui um sensor de nível em um pequeno tanque de água embutido na geladeira;
- Os cômodos têm termômetros e sensores de iluminância;
- Os cômodos têm ar condicionado que se comunicam pela red wifi;
- Như lâmpadas dos cômodos podem ter o brilho ajustado por dispositivo que se comunica pela red wifi;
Requisitos:
- Conhecimento básico em python, javascript, uso do Sistema operacional, comandos básicos no shell
- Ter instalado: nodejs, python
- Ter instalado (opcional): docker, emulador de dispositivo mobile, gerenciador de sdk do Android (disponível no Android Studio)
O desenvolvimento desse projeto foi feito không có Linux. Podem ser needárias adaptações para que seja feito no Windows.
Bước 1: Configurando O Ambiente
Vamos configurar o ambiente de desenvolvimento em 2 partes: servidor e mobile. O servidor será escrito em python e o mobile em javascript ou stylescript, sendo useizado React Native para o projeto.
reactnative.dev/
Vamos inicialmente criar uma estrutura de pastas. Em um diretório escolhido (que a partir de agora será escrito semper como $ PROJECT_DIR como placeholder - crie com no local que achar mais enoughado e com o nome de sua preferência), vamos criar uma pasta "servidor":
$ mkdir $ PROJECT_DIR && cd $ PROJECT_DIR
$ mkdir servidor
CONFIGURANDO O AMBIENTE DE DESENVOLVIMENTO PARA O SERVIDOR
Podemos usedizar um ambiente Continerizado com Docker ou ambiente virtual python (venv). Caso deseje Pracizar ambiente Continerizado, criaremos a imagem segundo o dockerfile:
$ cd $ PROJECT_DIR
$ touch dockerfile
Veja imagem do dockerfile.
Caso prefira useizar ambiente virtual do python, siga as toolsções em
Vamos então criar o arquivo que persistirá a lista de dependências do servidor e colocar as dependências needárias:
$ touch request.txt
Veja imagem làm theo yêu cầu.txt.
Caso tenha optado bởi useizar um ambiente Conteinerizado, hiểu ra một hình ảnh e entre no container:
$ docker xây dựng. -t smarthouse $ docker run -it -p 3000: 3000 -v $ (pwd): / app smarthouse bash
Para mais Informações sobre o dockerfile e a cli do docker: https://docs.docker.com/engine/reference/builder/…
CONFIGURANDO O AMBIENTE DE DESENVOLVIMENTO MOBILE
Um passo a passo de como configurar o ambiente de desenvolvimento mobile com React Native pode ser visto no link:
Após ter o ambiente configurado, na pasta do projeto deve ser possível executive o comando para criar a aplicação mobile:
Ứng dụng khách $ npx create-react-native-app
Bước 2: WebSocket
Éprisssante que o leitor conheça pelo menos um pouco a respeito de websocket antes de prosseguir. Caso o leitor nunca tenha lido, trabalhado ou ouvido falar nada a respeito, separe alguns minutos para entender como funciona o websocket através da documentação:
developer.mozilla.org/pt-BR/docs/WebSocket…
Usaremos uma biblioteca không có khách hàng e không có người phục vụ hàng đợi trừu tượng o protocolo de manira que não Preisemos penar em detalhes de chamada e de armazenamento de Idificadores e rotas. Separe também um tempo para estudar as bibliotecas Pracizados no cliente e no servidor:
Khách hàng:
Servidor:
Bước 3: Escrevendo O Servidor
Vamos criar uma estrutura inicial do projeto e escrever a interface que será useizada como comunicação com o servidor:
$ mkdir src
$ touch app.py src / {controller, socketconnection}.py
Primeiramente vamos escrever um módulo de inicalização do servidor:
Veja imagem do app.py
Depois vamos escrever o módulo que settingelece as conexões qua websocket e as redirecionam para um controlador.
Veja imagem do socketconnection.py
BỘ ĐIỀU KHIỂN E CÔNG DỤNG
O controlador Reberá um pacote do módulo responseável por settingelecer e gerenciar as conexões; será responseabilidade do controlador saber Qual função de caso de uso chamar para cada envento recbido, bem como a partir da resposta do caso de uso enviar um pacote de resposta para a sala room de dispositivos conectados para atualização das Informações.
Veja imagem do controller.py.
Finalmente temos os casos de uso que devem gerenciar como deve ser tratado os dados do evento Collectbido e criar os novos dados a partir do dados Rebidos para que o controlador atualize o estado do sistema. No caso desse sistema há somente atualização de valores (sejam numéricos, texto ou booleanos - no caso de ligar / desligar dispositivos de ambientação). Então não é de surpreender que os casos de uso tão somente chame funções do módulo responseável pela Persência de dados como se fosse essa a "regra de negócio".
Veja imagem do usecases.py
Ghi chú: Preisamos persistir os dados de alguma forma. Fica a escolha do leitor como thích armazenar os dados e portanto, implementar as funções do src / repository.py. Không có projeto desenvolvido como exlo foi persistido em um arquivo json không có cơ sở dữ liệu diretório. No repositório do projeto é possível Verificar uma pasta server / database com um arquivo com os dados persistidos bem como um arquivo de modelo em server / database-model.json de como deve ser o json para a nossa aplicação funcionar.
Bước 4: Testando O Servidor
Podemos criar um script para conectar ao servidor e enviar eventos conforme a estrutura esperada pelos controladores para fins de testes manuais. Vamos criar esse script e rodá-lo com o servidor *.
Veja imagem do serverclient.py
Com o arquivo criado, Verifique se o container está rodando, e dentro xóa thực thi:
$ python app.py
Fora do container, không có diretório $ PROJECT_DIR / máy chủ thực thi:
$ python3 serverclient.py
Không có dấu nhắc ">" digite os eventos encontrados no controlador seguido de ";" e então valores de Idificação e / ou novos valores. Por exelo:
UPDATE_FRIDGE_WATER_LEVEL; 80
UPDATE_ROOM_TEMPERATURE; 1, 22.0
UPDATE_ROOM_TEMPERATURE_SETPOINT; 1, 17,5
UPDATE_ROOM_LUMINOSITY; 100
UPDATE_ROOM_LUMINOSITY_SETPOINT; 0
TOGGLE_ROOM_TEMPERATURE; 1
TOGGLE_ROOM_LIGHT; 1
E para cada evento enviado Verifique se foi persistido no banco de dados escolhido.
Nota: Verifique que a porta que está sendo servido a aplicação, porta exposta no docker run e a porta do script de teste devem ser a mesma.
Bước 5: Một Aplicação Mobile
Não será demorado com muitos detalhes cada parte do desenvolvimento do cliente di động. Não será explicitado aqui cada importação no módulo major criado pelo React Não nem kangíveis detalhes de configuração. Para começar, navegue até $ PROJECT_DIR / client e adicione a dependência que Preisaremos para o projeto:
$ npm i socket.io
Em seguida vamos escrever os componentes gráficos e as funções que irão se comunicar com o servidor.
ESCREVENDO A TELA
Em App.js, vamos escrever os thành phần của GUI.
⚠ Lưu ý hàng một cách sử dụng vui nhộn chamada peloEffect ainda não foi escrita! Também não foram escritos os Reducers setDataReducer, setFoodReducer, setTempe HeatReducer, setLightReducer e nem escritos os objetos com estados iniciais INITIAL_STATE, INITIAL_FOOD_MODAL, INITIAL_TEMPERATURE_MODAL, INITIAL_LIGHT_MODAL, INITIAL_LIGHT_MODAL
Também ainda não foram escritas as funções useizadas pelos elementos de inteface gráfica para fazer chamadas para escrita no servidor: saveNewFoodValue, saveNewTempe Nhiệt, lưu
Portanto, se desejar testar os elementos com dados falsos, escreva cada objeto e função dito acima.
Veja imagem do App.js com código da parte GUI
Por fim vamos escrever as funções needárias para fazer a comunicação com o servidor e para utlização do mesmo pelos componentes de GUI.
Veja imagem do App.js com código da parte lógica / operacional
Đề xuất:
Projeto IoT - Máy dò Sistema De Fumaça: 5 bước
Projeto IoT - Máy dò Sistema De Fumaça: IntroduçãoO Máy dò Sistema de Fumaça bao gồm em uma solução IoT com o objetivo de permitir o monitoramento de alertmes de incêndio de Residencecias através de um aplicativo Android. O projeto é baseado em um microcontrolador que se comunica com một nu
Projeto CoCoa: Um Colete De Comunicação Alternativa: 8 bước
Projeto CoCoa: Um Colete De Comunicação Alternativa: Dự án CoCoA là một chiếc áo khoác có thể đeo được kết nối với internet cho phép kết hợp các biểu tượng xúc giác của giao tiếp thay thế để hỗ trợ những người khuyết tật nói hoặc không nói được. O Colete de Comunicação Alternativa (CoCoA) consi
Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Động cơ bước Điều khiển động cơ bước Động cơ bước | Động cơ bước như một bộ mã hóa quay: Có một vài động cơ bước nằm xung quanh và muốn làm điều gì đó? Trong Có thể hướng dẫn này, hãy sử dụng động cơ bước làm bộ mã hóa quay để điều khiển vị trí của động cơ bước khác bằng vi điều khiển Arduino. Vì vậy, không cần phải quảng cáo thêm, chúng ta hãy
Projeto Lumos: 8 bước
Projeto Lumos: O projeto Lumos gồm có điều khiển bằng cách sử dụng điện thoại thông minh và thiết bị phát sóng WiFi. Para controlar a luminária foi desenvolvido um aplicativo Android, que permite apagar e acender a luz useizando além
Casa Inteligente Com Arduino: 6 bước
Casa Inteligente Com Arduino: Esse projeto é uma junção de vários pequenos projetos que podem ser feitos com Arduino. É um ótimo projeto para quem está começando no mundo do Arduino.Você vai aprender a fazer um Sistema com medição de temperatura e umidade, alertme, acendimento de