Orodha ya maudhui:
- Hatua ya 1: Configurando O Ambiente
- Hatua ya 2: WebSocket
- Hatua ya 3: Escrevendo O Servidor
- Hatua ya 4: Testando O Servidor
- Hatua ya 5: Aplicação Mobile
Video: Pequeno Projeto De Uma Casa Inteligente: 5 Hatua
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:48
Onyesha pesa za kufanya kama uma casa inteligente. Possui basicamente dois grupos de funcionalidades: · De Monitoramento de iluminação na temperatura dos cômodos.
· De Monitoramente de lista de alimentos na nível de água filtrada na geladeira.
Não escreveremos os firmwares dos dispositivos IoT da geladeira nem dos cômodos; fikiria zaidi ikiwa utaftaji kumbukumbu ni kama:
- A geladeira possui um dispositivo com touchscreen em que é possível entar 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 na sensores de iluminância;
- Os cômodos têm ar condicionado que se comunicam pela rede wifi;
- Kama mafundisho ya kawaida yanayotokana na maoni yako juu ya njia inayopatikana kwa sababu ya utaftaji wa huduma ya wifi;
Mahitaji:
- Conhecimento básico em chatu, javascript, uso do sistema operacional, comandos básicos no shell
- Ter instalado: nodejs, chatu
- Ter instalado (opcional): docker, emulador de dispositivo mobile, gerenciador de sdk do Android (haitoi Studio ya Android)
O desenvolvimento desse projeto foi feito no Linux. Podem ser necessaryárias adaptações for que seja feito no Windows.
Hatua ya 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 typescript, sendo utilizado React Native para o projeto.
reactnative.dev/
Vamos inicialmente hupiga kelele uma estrutura de pastas. Em em diretório escolhido (ikiwa ni pamoja na sehemu ya agora sercr escrito semper como $ PROJECT_DIR placeholder holder - crie com no local que achar mais adequado e com o nome de sua preferência), vamos criar uma pasta "servidor":
$ mkdir $ PROJECT_DIR && cd $ PROJECT_DIR
$ mkdir mtumishi
CONFIGURANDO O AMBIENTE DE DESENVOLVIMENTO PARA O SERVIDOR
Podemos utilizar um ambiente conteinerizado com Docker ou ambiente virtual chatu (venv). Caso deseje utilizar ambiente conteinerizado, criaremos a imagem segundo o dockerfile:
$ cd $ PROJECT_DIR
$ gusa dockerfile
Picha ya Veja hufanya dockerfile.
Caso preira utilizar ambiente virtual do chython, siga as instruções em
Vamos então criar o arquivo que persirá a lista de dependências do servidor e colocar as dependências needárias:
$ kugusa mahitaji.txt
Picha ya Veja hufanya mahitaji.txt.
Caso tenha optado por utilizar um ambiente conteinerizado, Construa a imagem e entre no container:
$ docker kujenga. -t smarthouse $ docker run -it -p 3000: 3000 -v $ (pwd): / programu smarthouse bash
Para mais informações sobre o dockerfile na a do do docker: https://docs.docker.com/engine/reference/builder/…
CONFIGURANDO O AMBIENTE DE DESENVOLVIMENTO MOBILE
Um passo a como configurar o ambiente de desenvolvimento mobile com React Native pode ser visto no link:
Kwa mfano, unasanidi programu, na tambi zinastahili kutekelezwa kwa njia inayofaa kwa kutumia simu ya rununu:
$ npx kujenga-react-native-app mteja
Hatua ya 2: WebSocket
É interessante 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 no cliente na no servidor que abstrai o protocolo de maneira que não precisemos pensar em detalhes de chamada na de armazenamento of identificadores e rotas. Tenga sehemu kwa muda mfupi kama bibliotecas utilizados no cliente and no servidor:
Cliente:
Mtumishi:
Hatua ya 3: Escrevendo O Servidor
Vamos hulalamika kama utafta kazi rasmi na unapeana kiolesura cha huduma hii ya utumiaji wa como ya huduma:
$ mkdir src
$ touch app.py src / {mtawala, unganisho la soketi}.py
Primeiramente vamos escrever um módulo de inicalização do servidor:
Picha ya Veja hufanya programu.py
Depois vamos escrever o módulo que establishing as conexões via websocket na redirecionam para um controlador.
Picha ya Veja hufanya socketconnection.py
MDHIBITI E ANATUMIA
O kudhibiti kipokezi kwa kufanya kazi kwa njia ya mwongozo kwa kuanzisha mfumo wa matumizi kama viunganishi; Sera ya kujibu hufanya kazi ya kudhibiti kazi kwa sababu ya uso wa uso kwa sababu ya kupokea pesa, ikiwa ni pamoja na sehemu ya kazi inayoweza kutekelezwa kwa nafasi ya uso kwa chumba cha sala cha utaftaji wa mambo kwa atualização das informações.
Picha ya Veja hufanya control.py.
Mafunzo ya mwisho ni kasino za uso wa hali ya juu ya hali ya juu ya utaftaji wa shughuli zote ambazo zinatokana na upokeaji wa simu na sehemu ya kufanya vipokezi vya baba kwa sababu ya udhibiti wa hali ya juu. Hakuna 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 Respável pela pelaencencia de dados como se fosse essa a "regra de negócio".
Picha ya Veja hufanya matumizi.py
Nota: precisamos persir os dados de alguma forma. Fanya orodha inayofuata ya kupendelea armazenar os dados e portanto, kutekeleza kama funções do src / repository.py. Hakuna projeto desenvolvido como mfano wa kuendelea kwa mfumo wa json no database ya diretório. Hakuna kumbukumbu inayoweza kutumika ikiwa ni seva ya tambi / hifadhidata inayoweza kupatikana ikiwa ni pamoja na orodha ya mfumo wa seva / hifadhidata ya mfano. Json de como deve ser o json para a nossa aplicação funcionar.
Hatua ya 4: Testando O Servidor
Podemos criar um script for conectar ao servidor and enviar eventos conforme a estrutura esperada pelos controladores for the fins de testes manuais. Vamos criar esse script and rodá-lo com o servidor *.
Veja imagem kufanya serverclient.py
Com o arquivo criado, verifique se o container está rodando, na dentro dele kutekeleza:
$ python app.py
Chombo cha fora, hakuna pesa $ PROJECT_DIR / seva kutekeleza:
$ python3 serverclient.py
Hakuna haraka ">" digite os eventos encontrados no controlador seguido de ";" e então valores de identificação e / ou novos valores. Mfano:
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.
Noti: hakikisha kuwa ni kweli tutaona huduma hii kwa njia inayofaa, bandari ya nje haifanyi docker inayoendesha hati ya maandishi ya mtihani wa ujumbe.
Hatua ya 5: Aplicação Mobile
Não será demonstrado com muitos detalhes cada parte do desenvolvimento do cliente mobile. Não será clearado aqui cada importação no módulo principal criado pelo React Native nem possíveis detalhes de configuração. Kuingia, navegue kwa $ PROJECT_DIR / mteja na msaada kwa msaada wa programu hii:
$ npm mimi soketi.io
Wataalam wanaosimamia sehemu za kazi na huduma kama sehemu ya matumizi ya huduma.
ESCREVENDO A TELA
Em App.js, vamos escrever os componentes de GUI.
⚠ Kumbuka kuwa utafurahi kutumia matumizi ya AthariKuathiriwa! Também não foram escritos os reducers setDataReducer, setFoodReducer, setTemperatureReducer, setLightReducer e nemcrosos os objetos com estados iniciais INITIAL_STATE, INITIAL_FOOD_MODAL, INITIAL_TEMPERATURE_MODAL, INITIAL_TEMPERATURE_MODAL, INITIAL_TEMPERATURE_MODAL, Também ainda não foram escritas as funções utilizadas pelos elementos de inteface gráfica para fazer chamadas para escrita no servidor: saveNewFoodValue, saveNewTemperature, saveNewLuminosity, toggleTemperatureForRoom, toggleLightForRoom
Portanto, se desejar testar os elementos com dados falsos, escreva cada objeto e função dito acima.
Picha nyingi hufanya App.js com código da parte GUI
Kwa sababu ya kusindikiza kama funçes za lazima kwa fazer comunicação com o servidor na para utlização do mesmo pelos componentes de GUI.
Picha nyingi hufanya App.js com código da parte lógica / operacional
Ilipendekeza:
Projeto IoT - Kigunduzi cha Sistema De Fumaça: Hatua 5
ProTo IoT - Kigunduzi cha Sistema De Fumaça: KitambulishoO Sistema Detector ya Fumaça inajumuisha umaarufu wa IOTT na huduma za ufuatiliaji wa ufuatiliaji wa kengele za kutokukamilika kwa utumiaji wa programu ya Android. Mtaalam huu ni msingi wa microcontrolador ikiwa ni pamoja na
Projeto CoCoa: Um Colete De Comunicação Alternativa: 8 Hatua
Projeto CoCoa: Um Colete De Comunicação Alternativa: Mradi wa CoCoA ni vazi linaloweza kuvaliwa lililounganishwa na wavuti ambalo linaruhusu uunganishaji wa alama za kugusa za mawasiliano mbadala kusaidia watu wenye ulemavu wa kusema au wasio wa maneno. O Colete de Comunicação Alternativa (CoCoA) consi
Projeto Lumos: Hatua 8
Lumos ya Projeto: O Lumos ya projeto inajumuisha muundo wa uma lumina na udhibiti wa sehemu moja ya simu ya rununu kwa njia ya redio kupitia WiFi. Kudhibiti mwangaza wa programu yako kwa kutumia Android, ikiwa ni pamoja na idhini ya kutuma barua pepe kwa matumizi ya programu yako
Projeto Fila Facil: Hatua 7
Projeto Fila Facil: Em nosso dia a dia vamos diversas vezes em locais onde é lazima á Em alguns estabelecimentos podemos demorar alguns minutos ou at é mesmo horas esp
Casa Inteligente Com Arduino: 6 Hatua
Casa Inteligente Com Arduino: Esse projeto é uma junção de vários pequenos projetos que podem ser feitos com Arduino. Je! Unapewa nafasi ya kufanya kazi kwa Arduino.Você vai aprender a fazer um sistema com medição of temperatura e umidade, alarme, acendimento de