Përmbajtje:

Pequeno Projeto De Uma Casa Inteligente: 5 hapa
Pequeno Projeto De Uma Casa Inteligente: 5 hapa

Video: Pequeno Projeto De Uma Casa Inteligente: 5 hapa

Video: Pequeno Projeto De Uma Casa Inteligente: 5 hapa
Video: Marquinhos Gomes | Quarto Secreto (Clipe Oficial) 2024, Korrik
Anonim
Pequeno Projeto De Uma Casa Inteligente
Pequeno Projeto De Uma Casa Inteligente

O projeto que faremos é de uma casa inteligente. Possui basicamente dois grupos de funcionalidades: · Monitoramento de iluminação e temperatura dos cômodos.

· Monitoramente de lista de alimentos e nível de água filtrada na geladeira.

Não escreveremos os firmwares dos dispositivos IoT da geladeira nem dos cômodos; porém suppiremos que os dispositivos fazem ose seguinte:

- Një mundësi e shkëlqyeshme për disponimin e ekranit me prekje që ka një mundësi të madhe për të ushqyer ushqimet: o ome e ushqimit dhe ekuidadës;

- Një mundësi e madhe për të ndjerë ndjeshmërinë e një cilësie të caktuar të ruajtjes së emulimit në gjeladera;

- Os cômodos têm termômetros e sensores de iluminância;

- Os cômodos têm ar condicionado que se comunicam pela rede wifi;

- As lâmpadas dos cômodos podem ter o brilho ajustado por disponueshmëria e saj është se si të komunikoni me Wi -Fi;

Kërkesat:

- Conhecimento básico em python, javascript, uso do sistema operacional, komando básicos pa guaskë

- Ter instalado: nodejs, python

- Instalado (opcional): docker, emulimi i disponueshmërisë së celularit, përdorimi i sdk për Android (shpërndarja pa Android Studio)

Shkarkoni programin që dëshironi të përdorni në Linux. Mund të kërkohet që të përshtaten para se të mos hyjnë në Windows.

Hapi 1: Konfiguro O Ambiente

Configurando O Ambiente
Configurando O Ambiente
Configurando O Ambiente
Configurando O Ambiente

Konfigurimi i ambientit të desenvolvimento në 2 pjesë: shërbimi dhe celulari. Shërbimi ynë shërben për të përcaktuar python dhe celularët për javascript ose shkrim dore, dërgo përdorim React Native para ose projeto.

reactnative.dev/

Vamos inicialmente criar uma estrutura de pasta. Em um diretório escolhido (që është pjesë e një serie eskrito sempre como $ PROJECT_DIR como placeholder - crie com no local que achar mais mjaftado 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 përdor në mjedisin konteinerizado com Docker ose ambient python virtual (venv). Përdorimi i përdorimit të ambientit të mbrojtur, criaremos a imagem segundo o dockerfile:

$ cd $ PROJECT_DIR

dockerfile $ touch

Veja imagem do dockerfile.

Përdorimi i përdorimit të ambientit virtual për python, si udhëzim në

Vamos então criar o arquivo que persistirá a lista e varësive të shërbimit dhe ngjyrosjes si varësi të domosdoshme:

$ touch kërkesat.txt

Veja imagem do kërkesat.txt.

Përdorimi i um ambiente të konteinerizimit, krijoni një imazh dhe nuk futni asnjë enë:

$ docker build. -t smarthouse $ docker run -it -p 3000: 3000 -v $ (pwd):/app smarthouse bash

Për më shumë informacione për dockerfile e a cli do docker: https://docs.docker.com/engine/reference/builder/…

CONFIGURANDO O AMBIENTE DE DESENVOLVIMENTO MOBILE

Ush passo dhe konfigurimin e një cilësie ose ambienti të desenvolvimento në celularin com React Native pode ser visto pa lidhje:

Aplikoni në konfigurimin e ambientit, duke bërë makarona për të kryer një mundësi për ekzekutimin ose komandimin për të përdorur një aplikacion celular:

$ npx krijoni-reagoni-klient-aplikacionin vendas

Hapi 2: WebSocket

Ress interessante que o leitor conheça pelo menos um pouco a respeito de websets antes de prosseguir. Për shembull, ju mund të përdorni një lidhje të tillë, të ndani një minutë të vogël për të hyrë në funksionimin e një rrjeti të dokumenteve të dokumentacionit:

developer.mozilla.org/pt-BR/docs/WebSocket…

Usaremos uma biblioteca nuk ka klientë dhe nuk shërben për abstrai o protokollin e manipulimit që nuk mund të përcaktojë saktësisht detajet e dhomës sonë të armatosjes së identifikimit dhe rrotullimit. Ndani também um tempo para estudar si bibliotecas useizados pa klientë dhe pa servidor:

Klienti:

Servidor:

Hapi 3: Escrevendo O Servidor

Escrevendo O Servidor
Escrevendo O Servidor
Escrevendo O Servidor
Escrevendo O Servidor
Escrevendo O Servidor
Escrevendo O Servidor
Escrevendo O Servidor
Escrevendo O Servidor

Varianti i parë i vlerësimit të brendshëm do të jetë i nevojshëm për të shfaqur një ndërfaqe që mund të përdoret nga shërbimi i shërbimit:

$ mkdir src

$ touch app.py src/{kontrollues, 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 estabelece si conexões nëpërmjet websocket e si redirecionam para um controlador.

Veja imagem do socketconnection.py

P USRDORIMET E KONTROLLUESIT E

O controlador receberá um pacote do módulo responsável for estabelecer e gerenciar as conexões; me përgjegjësinë për të kontrolluar saber kualifikimin e rasteve të përdorimit të një çamër para se të arrini të merrni, mund të përdorni një përgjigje për një përdorim të një mjedisi të caktuar në një përgjigje para një dhome në dhomën e disponimit të lidhjeve për atualizimin e informacionit.

Veja imagem do controller.py.

Përfundimi i çështjeve në rastin e përdorimit të një sistemi të tillë të ri të shërbimit, do t'ju lejojë të merrni një llogari nga sistemi i ri i sistemit gjyqësor, i cili do t'ju ndihmojë të kontrolloni sistemin tuaj të kontrollit. Nuk ka nevojë për një sistem të vlefshëm të vlefshmërisë (sejam numéricos, texto ou booleanos - nuk ka ligje/desligar dispositivos de ambientação). Então não é de surpreender que os casos de uso tão somente chame funcões do të përgjigjet më së miri në vazhdimësinë e babait që të fosse essa a "regra de negócio".

Veja imagem do usecases.py

Shënim: precisamos persistir os dados de alguma forma. Fica a escolha do leitor como prefere armazenar os dados e portanto, zbatoj si funções do src/repository.py. Nuk ka nevojë të përdorim si një shembull për të vazhduar punën tonë dhe të mos përdorim asnjë bazë të dhënash. Nuk ka depozitime që mund të verifikojnë serverin/bazën e të dhënave të makaronave dhe të dhënat e përdorura nga sistemi i serverit/modelit të bazës së të dhënave. Modeli i shërbimit që kemi përdorur për të përdorur një funksion të veçantë.

Hapi 4: Testando O Servidor

Testando O Servidor
Testando O Servidor

Podemos criar um script for 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, dhe dentro dele ekzekutoni:

$ python app.py

Për hapjen e kontejnerit, pa parazgjedhje $ PROJECT_DIR/server ekzekutoni:

$ python3 serverclient.py

Asnjë kërkesë ">" nuk mund të kontrollojë asnjë kontrollues për ";" e então valores de identificação e/ou novos valores. Për shembull:

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 nuk ka banco de dados escolhido.

Shënim: verifikimi i një porte që është dërguar për të shërbyer në një aplikim, një eksport i madh nuk funksionon me një docker dhe një portë për të bërë skriptin e testimit të një mesazhi.

Hapi 5: Një Aplikim celular

Një Aplikacion celular
Një Aplikacion celular
Një Aplikacion celular
Një Aplikacion celular

Ne nuk mund të demonstrojmë që ju mund të detajoni të bëni një kërkesë për klientët tuaj celular. Nuk mund të thuhet qartë për importimin e një cilësie të madhe të veprimit, React Native nuk mund të ketë detajet e konfigurimit. Për shembull, për shembull $ PROJECT_DIR/klienti dhe adicione e një varësie paraprake për këtë qëllim:

$ 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, shikoni të gjitha komponentët e GUI.

⚠ Shënim për një përdorim funsional të përdorimit të një efekti efekti në një fokus escrita! Também não foram escritos os reduktuesit setDataReducer, setFoodReducer, setTemperatureReducer, setLightReducer e nem escritos os objetos com estados iniciais INITIAL_STATE, INITIAL_FOOD_MODAL, INITIAL_TEMPERATURE, INITIAL_TEMPERATURE

Também ainda não foram escritas as funcões utilisadas pelos elementos de inteface gráfica para fazer chamadas para escrita no servidor: saveNewFoodValue, saveNewTemperature, saveNewLuminosity, toggleTemperatureForRoom, toggleLightForor

Portanto, se desejar testar os elementos com dados falsos, escreva cada objeto e função dito acima.

Përfundoni imazhin e App.js për të punuar me 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.

Përfundoni imazhin e App.js com código për parte lógica/operacional

Recommended: