Բովանդակություն:
- Քայլ 1: Configurando O Ambiente
- Քայլ 2: WebSocket
- Քայլ 3. Escrevendo O Servidor
- Քայլ 4: Testando O Servidor
- Քայլ 5. Կիրառական բջջային հեռախոս
Video: Pequeno Projeto De Uma Casa Inteligente: 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
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
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
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
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
Խորհուրդ ենք տալիս:
Projeto IoT - Sistema Detector De Fumaça: 5 քայլ
IoT Projecto - Sistema Detector De Fumaça: IntroduçãoO Sistema Detector de Fumaça- ն բաղկացած է IoT լուծումից, որը թույլ է տալիս թույլատրել կամ օգտագործել ահազանգերը, որոնք ներառում են Android- ի կիրառման մնացորդները: Մենք կարող ենք միկրոկոնտրոլադորի հիմքում ընկած լինել մեր շփման մեջ
Projeto CoCoa: Um Colete De Comunicação Alternativa: 8 քայլ
Projeto CoCoa: Um Colete De Comunicação Alternativa. CoCoA նախագիծը ինտերնետին միացված կրելի ժիլետ է, որը թույլ է տալիս զուգակցել այլընտրանքային հաղորդակցության շոշափելի խորհրդանիշները `օգնելու խոսքի կամ ոչ բանավոր արատներով մարդկանց: O Colete de Comunicação Alternativa (CoCoA) consi
Projeto Fila Fácil: 7 քայլ
Projeto Fila Fácil: Em nosso dia a dia vamos diversas vezes em locais onde é անհրաժեշտ á ria uma gest ã o de senhas de clientes para organizar e agilizar atendimentos. Em alguns estabelecimentos podemos demorar alguns minutos ou at é mesmo horas esp
Tutorial Do Projeto Final Do Curso IoT Aplicada a Smart Home Inatel / Novembro 2017. 4 քայլ (նկարներով)
Tutorial Do Projeto Final Do Curso IoT Aplicada a Smart Home Inatel / Novembro 2017. Ոչ մի ծրագիր, որը թույլ է տալիս օգտագործել մեր պլատֆորմը, անհրաժեշտ է օգտագործել Android- ի կամ iOS- ի համար նախատեսված պլատֆորմների անհրաժեշտությունը: Foi utilizado um computador tipo notebook com windows 10. Essa plataforma chama-se Ionic, q
Casa Inteligente Com Arduino: 6 քայլ
Casa Inteligente Com Arduino. Esse projeto é uma junção de vários pequenos projetos que podem ser feitos com Arduino. Um 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, alarme, acendimento de