Բովանդակություն:

Pequeno Projeto De Uma Casa Inteligente: 5 քայլ
Pequeno Projeto De Uma Casa Inteligente: 5 քայլ

Video: Pequeno Projeto De Uma Casa Inteligente: 5 քայլ

Video: Pequeno Projeto De Uma Casa Inteligente: 5 քայլ
Video: Neighbors Laughed at the Innovative Building of our Small-House, But then they were Amazed 2024, Հուլիսի
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: · Մոնիտորմենտա դե օլիմինացիոն ջերմաստիճանի ջերմաստիճանի բարձրացում:

· De 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 o seguinte:

- A geladeira possui um dispitivo com touchscreen em que é possível entrar com dados de alimentos: o nome de um alimento e sua quantidade;

- 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 rede wifi;

- As lâmpadas dos cômodos podem ter o brilho ajustado por dispositivo que se comunica pela rede wifi;

Պահանջներ:

- Conhecimento básico em python, javascript, uso do sistema operacional, comandos básicos no shell

- Ter instalado: nodejs, python

- Տեղադրեք (պարտադիր)

Անհրաժեշտ է օգտագործել Linux- ը ոչ մի դեպքում: Podem ser needárias adaptações para que seja feito no Windows- ի համար:

Քայլ 1: Configurando O Ambiente

Configurando O Ambiente
Configurando O Ambiente
Configurando O Ambiente
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 orou typecript, sendo useizado React Native para or 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 mjaftado e com o nome de sua prefeência), vamos criar uma pasta "servidor":

$ mkdir $ PROJECT_DIR && cd $ PROJECT_DIR

$ mkdir servidor

CONFIGURANDO O AMBIENTE DE DESENVOLVIMENTO PARA O SERVIDOR

Podemos utilisar um ambiente conteinerizado com Docker կամ ambiente վիրտուալ պիթոնի (venv) միջոցով: Caso deseje utilisar ambiente conteinerizado, criaremos a imagem segundo o dockerfile:

$ cd $ PROJECT_DIR

$ touch dockerfile

Veja imagem do dockerfile:

Caso prefira utilisar ambiente virtual do python, որն անհրաժեշտ է որպես

Vamos então criar o arquivo que persistirá a lista de dependenscias do servidor e colocar as dependenciaas needárias:

$ touch պահանջները. txt

Veja imagem do պահանջները. Txt.

Caso tenha optado for utilizar um ambiente conteinerizado, կառուցել պատկեր և մուտքագրել առանց տարայի.

$ նավահանգստի կառուցում: -t smarthouse $ docker run -it -p 3000: 3000 -v $ (pwd):/app smarthouse bash

Որպես հիմնական տեղեկություն dockerfile և cli do docker:

CONFIGURANDO O AMBIENTE DE DESENVOLVIMENTO MOBILE

Շարժական կարգավորումներ կամ բջջային բջիջների միջավայրի կարգավորումներ

Կիրառել շրջակա միջավայրի կազմաձևում, մակարոնեղեն պատրաստելու համար անհրաժեշտ է կատարել կամ կատարելագործել բջջային հեռախոսը.

$ npx ստեղծել-արձագանքել- native-app հաճախորդ

Քայլ 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 e no servidor que abstrai o protocolo de maneira que não precisemos pensar em detalhes de chamada e de armazenamento de identificadores e rotas. Separe também um tempo para estudar as bibliotecas utilizados no cliente e no servidor:

Հաճախորդ ՝

Vառայող ՝

Քայլ 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

Vamos criar uma estrutura inicial do projeto e escrever ինտերֆեյսը, որը կօգնի օգտագործել կոմունիկացիոն ծառայություն կամ ծառայություն:

$ 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 estabelece as conexões միջոցով websocket e որպես redirecionam para um controlador:

Veja imagem do socketconnection.py

ԿՈՆՏՐՈԼԵՐԱՅԻՆ Է ՕԳՏԱԳՈՐՈՄ

O controlador receberáum pacote do módulo responsável for estabelecer e gerenciar as conexões; será responsabilidade do controlador saber qual função de caso de uso chamar para cada envento Recebido, 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:

Վերջնական ընթացակարգեր, որոնք կօգնեն ձեզ օգտագործել համակարգեր, որոնք կօգնեն ձեր համակարգչից օգտվել ձեր համակարգչից: Ոչ 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 responsável pela persistência de dados como se fosse essa a "regra de negócio".

Veja imagem do usecases.py

Նշում. Precisamos persistir os dados de alguma forma. Fica a escolha do leitor como prefere armazenar os dados e portanto, իրականացնել որպես funções do src/repository.py: Չի թույլատրվում օգտագործել այլևս մի շարք տվյալների բազա: Ոչ մի պահեստավորում, որը թույլ կտա ստուգել մակարոնեղենի սերվերը/տվյալների բազան, ինչպես նաև օգտագործել մեր սերվերը/տվյալների բազայի մոդելային մոդելները:

Քայլ 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*.

Պատկերում է serverclient.py- ն

Com o arquivo criado, verifique se o container está rodando, e dentro dele execute:

$ python app.py

Կոնտեյների համար, առանց $ PROJECT_DIR/սերվերի կատարման.

$ python3 serverclient.py

Ոչ մի հուշում ">" digite os eventos encontrados no controlador seguido de ";" e então valores de identificação e/ou novos valores. Օրինակ ՝

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.

Aանուցում. Ստուգում է, թե որն է ծառայությունների մատուցման ծառայությունը, ինչպես նաև առանց նավահանգստի գործարկելու կամ մուտքագրելու համար անհրաժեշտ է կատարել մի հաղորդագրություն:

Քայլ 5. Կիրառական բջջային հեռախոս

Կիրառական բջջային հեռախոս
Կիրառական բջջային հեռախոս
Կիրառական բջջային հեռախոս
Կիրառական բջջային հեռախոս

Հաճախորդների ցուցադրում, որոնք թույլ են տալիս կատարել բջջային կապի ծառայություններ: Չի կարող բացատրվել aqui cada importação no módulo principal criado pelo React Native nem possíveis detalhes de configuração- ի միջոցով: Եկեք, հաշվի առեք $ PROJECT_DIR/հաճախորդը և առաջարկեք կախվածություն որոշակի ճշգրտության համար ՝

$ 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 componentes de GUI:

⚠ Նշում, թե ինչպես կարելի է օգտագործել հաճելի ազդեցություն Também não foram escritos os reducer setDataReducer, setFoodReducer, setTemperatureReducer, setLightReducer e nem escritos os objetos com estados iniciais INITIAL_STATE, INITIAL_FOOD_MODAL, INITIAL_TEMODALIT_TEMPERATURE, Թարգմանե՞լ նկարագրությունը հայերեն (Հայաստան) Google Translate- ի օգնությամբ

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

Խորհուրդ ենք տալիս: