INHOUDSOPGAWE:

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

Video: Pequeno Projeto De Uma Casa Inteligente: 5 stappe

Video: Pequeno Projeto De Uma Casa Inteligente: 5 stappe
Video: GASTEI 500 REAIS NA SHOPEE EM COMPRAS PRO QUARTO GAMER 2024, Julie
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: · Die monitoramento de iluminação en temperatuura dos cômodos.

· Die monitor van die alimentasies en nuwe filtreerders en geladeurs.

Ons kan nie die vaste eienskappe van die onderneming gebruik nie; ons kan aanvaar dat ons beskik oor die volgende funksies:

- 'n Geladeira kan met 'n aanraakskerm toegerus word met 'n e -pos met 'n alimentasie:

- 'n Geladeira kan 'n sensor vir ons 'n pequeno tanque de água embutido na geladeira gee;

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

- Ons kan ook 'n toestand gebruik wat wifi moontlik maak;

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

Vereistes:

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

- Ter installasie: nodejs, python

- Installeer (opsioneel): docker, mobiele emulador, aflaai van SDK vir Android (beskikbaar vir Android Studio)

O desenvolvimento desse projeto foi feito no Linux. Dit is 'n noodsaaklike aanpassing van Windows se funksies.

Stap 1: Configurando O Ambiente

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

Ons kan hierdie funksie omskakel in 2 dele: servidor en mobile.

reactnative.dev/

Vamos inicialmente criar uma estrutura de pastas. U kan ook die escolhido (wat 'n partir de agora será escrito semper como $ PROJECT_DIR vir 'n plekhouer gee - 'n plek waar 'n mens nie meer kan eet nie), of 'n pasta 'servidor':

$ mkdir $ PROJECT_DIR && cd $ PROJECT_DIR

$ mkdir servidor

CONFIGURANDO O AMBIENTE DE DESENVOLVIMENTO PARA O SERVER

U kan ook 'n virtuele python (venv) gebruik. Ons kan hierdie ambiente conteinerizado gebruik, asook 'n voorbeeld van 'n lêer:

$ cd $ PROJECT_DIR

$ touch -lêer

Stel u voor om 'n docker -lêer te maak.

Ons kan virtuele virtuele doeleindes vir python gebruik, maar u kan dit ook op

Ons kan ook 'n lid van die afhanklike en afhanklike lys van noodsaaklike funksies:

$ touch requirements.txt

Stel voor dat vereistes.txt.

Ons kan dit ook gebruik om 'n ambiente conteinerizado te ontwerp, maar dit kan nie 'n houer bevat nie:

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

Vir meer inligting oor dockerfile en cli do docker:

CONFIGURANDO O AMBIENTE DE DESENVOLVIMENTO MOBILE

U kan ook 'n skakel instel:

Ons kan 'n ambiente konfigurasie en 'n pasta gebruik om 'n funksie uit te voer vir 'n mobiele toepassing:

$ npx skep-reageer-inheemse-app-kliënt

Stap 2: WebSocket

Dit is 'n interessante manier om 'n menus oor ons webwerf te plaas. Ons kan dit ook nie gebruik nie, maar u kan ook 'n antwoord gee, maar dit is ook 'n spesifieke gegewens vir die funksie van 'n webblad om dokumente te ontvang:

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

Gebruikers kan geen biblioteca gebruik nie, maar ons kan nie die protokol van die maneira ken nie, maar ons kan ook die besonderhede van die e -posadres en die identifikasie van die rotas spesifiseer. Ons kan ook die tempo wat ons vir die Bybel gebruik, nie gebruik nie:

Kliënt:

Servidor:

Stap 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

Ons kan die amptelike funksie van 'n koppelvlak gebruik om 'n koppelvlak te gebruik:

$ mkdir src

$ touch app.py src/{controller, socketconnection}.py

Eerstekans kan ons die volgende inskrywings lewer:

Beelde kan deur app.py

Ons kan dit registreer as 'n manier om dit as 'n voorbeeld via websocket te gebruik en om die beheerder te herlei.

Beelde kan met socketconnection.py gedoen word

BEHEERDER EN GEBRUIKE

U kan ons ook 'n antwoord gee op die antwoord wat ons kan doen; 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.

Beeld kan deur controller.py.

Uiteindelik kan ons 'n funksie gebruik om die funksie van ons stelsel te herstel of om 'n nuwe funksie te doen. Geen caso desse sistema há somente atualização de valores (sejam numéricos, texto ou booleanos - no caso de ligar/desligar dispositivos de ambientação). Dit is 'n uitstekende idee dat ons 'n enkele keer 'n funksionele reaksie kan hê op 'n permanente reaksie op 'n "regra de negócio".

Ons kan usecases.py

Nota: presies wat ons vir ewig kan doen. U kan dit ook gebruik as 'n funksie wat u kan gebruik as src/repository.py. Ons kan nie 'n voorbeeld hiervan hê nie, maar kan nie 'n direkte databasis gebruik nie. Geen bewaarplek kan moontlik vir 'n pasta-bediener/databasis gemaak word nie, maar ons kan ook die model/bediener/databasis-model vir 'n nuwe funksie gebruik.

Stap 4: Testando O Servidor

Testando O Servidor
Testando O Servidor

U kan 'n skrif vir die funksie van 'n funksie en 'n enkele gebeurtenis aanskaf om 'n bedieningspaneel te volg.

Beeld kan op serverclient.py

As ons 'n goeie idee het, kan ons seker maak dat die houer 'n houer het en dat ons die volgende kan uitvoer:

$ python app.py

Vir houers, sonder om $ PROJECT_DIR/bediener te stuur:

$ python3 serverclient.py

Geen vinnige ">" digite os eventos encontrados no controlador seguido de ";" e identifisering van e/ou nuwe waardes. Byvoorbeeld:

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: dit is 'n akkurate weergawe van 'n gegewe adres, 'n dokument wat nie 'n docker kan uitvoer nie, en 'n draaiboek vir 'n skripsie.

Stap 5: 'n Aplicação -selfoon

'N Aplicação -selfoon
'N Aplicação -selfoon
'N Aplicação -selfoon
'N Aplicação -selfoon

Dit is 'n demonstrasie van baie detail wat ek vir mobiele kliënte kan doen. Não será explicitado aqui cada importação no módulo principal criado pelo React Inheemse nem possíveis detalhes de configuração. Om hierdie rede kan ons $ PROJECT_DIR/kliënt e -pos en afhanklik van 'n spesifieke projek:

$ npm in socket.io

U kan ook die komponente van ons funksies as 'n funksionele funksie gebruik.

ESCREVENDO A TELA

Met App.js, kan ons ook die GUI -komponente skep.

⚠ Let op dat dit 'n funksionele gebruik kan wees om die effek te verseker! Também não foram escritos os reducers setDataReducer, setFoodReducer, setTemperatureReducer, setLightReducer e nem escritos os objetos com estados iniciais INITIAL_STATE, INITIAL_FOOD_MODAL, INITIAL_TEMPERATURE_MODAL_, Também ainda não foram escritas as funçõeses utilizadas pelos elementos de inteface gráfica para fazer chamadas para escrita no servidor: saveNewFoodValue, saveNewTemperature, saveNewLuminosity, toggleTemperatureForRoom, toggleLightForRoom

Dit is ook 'n goeie idee om ons elemente saam met ons te help, maar dit kan ook 'n funksie wees.

U kan 'n app.js met die GUI gebruik

Vir fimos kan ons as funksies noodsaaklik vir 'n komunikação com o servidor e para utlização do mesmo pelos componentes de GUI gebruik.

U kan 'n app.js met 'n funksie/operasie gebruik

Aanbeveel: