Obsah:

Inteligentní dům pro dům Casa: 5 kroků
Inteligentní dům pro dům Casa: 5 kroků

Video: Inteligentní dům pro dům Casa: 5 kroků

Video: Inteligentní dům pro dům Casa: 5 kroků
Video: Inteligentní dům - Prohlídka Real Smart Home (2019) | Loxone 2024, Listopad
Anonim
Pequeno Projeto De Uma Casa Inteligente
Pequeno Projeto De Uma Casa Inteligente

O projeto que faremos é de uma casa inteligente. Naše základní skupiny mohou mít následující funkce: · Monitorování teploty a teploty.

· Seznam monitorovaných potravin a filtrů filtrovaných na geladeira.

Nainstalujte si pevnou verzi IoT da geladeira nem dos cômodos; předpokládáme, že máme k dispozici následující položky:

- A geladeira possui um dispositivo 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;

Požadavky:

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

- Ter instalado: nodejs, python

- Ter instalado (opcional): docker, emulador de dispositivo mobile, gerenciador de sdk do Android (dispozici zdarma no Android Studio)

O Desenvolvimento desse projeto foi feito no Linux. Většina potřebných nastavení se přizpůsobuje systému Windows.

Krok 1: Konfigurace O Ambiente

Konfigurátor O Ambiente
Konfigurátor O Ambiente
Konfigurátor O Ambiente
Konfigurátor O Ambiente

Různé konfigurace a konfigurace dvou částí: servidor e mobile. O servidor serc escrito em python e o mobile em javascript oru typescript, sendo utilizado React Native para o 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 adekvátado 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 využití okolního prostředí dockeru nebo virtuálního pythonu (venv). Caso deseje use ambiente conteinerizado, criaremos and imagem segundo o dockerfile:

$ cd $ PROJECT_DIR

$ touch dockerfile

Představte si dockerfile.

Caso prefira využívá okolní virtuální prostředí v pythonu, což je návod jak

Všechny vaše osobní údaje a seznamy závislých na serverech a barvách jsou závislé na potřebách:

$ touch requirements.txt

Veja imagem do requirements.txt.

Naše možnosti se liší od okolního prostředí, nevytvářejí a nevytvářejí žádný kontejner:

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

Doprovodné informace o dockerfile a do do dockeru:

CONFIGURANDO O AMBIENTE DE DESENVOLVIMENTO MOBILE

Konfigurace pasivního a pasivního mobilního připojení React Native pode ser visto no link:

Konfigurace okolního prostředí a těstovin se mohou vyvíjet ze všech možných provedení pro mobilní zařízení a aplikace:

$ npx create-react-native-app client

Krok 2: WebSocket

Nejčastěji se jedná o hlavní nabídku a webovou stránku, která vám pomůže. Čas, který se vám bude líbit, vezmeme -li v úvahu naše hlavní a hlavní stránky, oddělíme jednotlivé minuty od všech běžných funkcí a dokumentů:

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

Nejsou k dispozici žádné klienty a žádné služby, které by mohly obsahovat všechny protokoly, které by se daly zpracovat, aby se ujistily, že máte k dispozici všechny typy identifikací a rotací. Oddělte tempo mezi jednotlivými biblioteky a nepoužívejte žádné klienty ani servisy:

Klient:

Servidor:

Krok 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

Iniciativa, která by měla oficiálně projednat a vylepšit rozhraní, která by mohla využívat celou řadu komunikačních služeb:

$ mkdir src

$ touch app.py src/{řadič, socketconnection}.py

Hlavní funkce, které mohou vést k deaktivaci modulu:

Představte si, že to dělá app.py

Depois vamos escrever o móduloe que estabelece as conexões via websocket e as redirecionam para um controlador.

Představte si, že dělá socketconnection.py

REGULÁTOR E VYUŽÍVÁ

Odpovědnost příjemce přijímat do modulu odpovědnosti za zavedení a připojení jako příloh; Odpovědnost se může lišit od toho, aby se co nejvíce využívalo, aby se přijímalo, přijímalo, přijímalo a přijímalo, přijímalo a přijímalo další informace.

Představte si, že dělá controller.py.

Konečná časová osa, která se dají použít k vytvoření nové řady, která bude přijímat a přijímat nové a nové verze a tak bude možné přijímat a přijímat další systémy. Žádný systém caso desse nemá nějakou dobu k dispozici (různé hodnoty, texto ou booleanos - žádné caso de ligar/desligar dispositivos de ambientação). Všechny typy kasin, které se často vyskytují v některých chame funkcích, reagují na různé moduly, které mohou trvat déle, než se dostanou do „běžného“prostředí.

Představte si použití usecases.py

Poznámka: precisamos persistir os dados de alguma forma. Fica a escolha do leitor como preferere armazenar os dados e portanto, implementar as funções do src/repository.py. Žádná projektová nabídka nemusí obsahovat žádnou databázi, ale žádné další databáze. Žádná repositório toproject and possivel verificar uma pasta server/database com um arquivo com os dados persistidos bem como um arquivo de mode em server/database-model.json de como deve ser o json para a nossa aplicaçã funcionar.

Krok 4: Testando O Servidor

Testando O Servidor
Testando O Servidor

Podemos criar um script para 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*.

Představte si serverclient.py

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

$ python app.py

Fora do container, no diretório $ PROJECT_DIR/server execute:

$ python3 serverclient.py

Žádná výzva ">" Digite os eventos encontrados no controlador seguido de ";" e então valores de identificação e/ou novos valores. Příklad:

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.

Poznámka: ověřte si, zda je vaše zásilka odeslána nebo odeslána, a zda není možné spustit ukotvení doku a provést skript, který se bude vyvíjet a vytvářet.

Krok 5: Aplicação Mobile

Aplicação Mobile
Aplicação Mobile
Aplicação Mobile
Aplicação Mobile

Všechny ukázkové verze více detailů z vašeho mobilního telefonu. Důležité informace o tom, jak importovat žádný hlavní modul hlavní reakce Reagovat Domorodci nemají možnost podrobně konfigurovat. Para começar, navegue até $ PROJECT_DIR/client e adicione and dependência que precisaremos para o projeto:

$ npm i socket.io

Mezi hlavní výhody patří základní součásti a funkce komunikujících služeb.

ESCREVENDO A TELA

Em App.js, různé komponenty os GUI.

⚠ Všimněte si, že použití funkce chamada pelo může mít vliv! Tam jsou všechny typy reduktorů setDataReducer, setFoodReducer, setTemperatureReducer, setLightReducer e nem escritos os objetos com estados initiais INITIAL_STATE, INITIAL_FOOD_MODAL, INITIAL_TEMPERATURE_MODAL, INITIAL_

Também ainda foram escritas as funções use of pelos elementos de inteface gráfica para fazer chamadas para escrita no servidor: saveNewFoodValue, saveNewTemperature, saveNewLuminosity, toggleTemperatureForRoom, toggleLight

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

Viz obrázek do App.js s vytvořeným grafickým uživatelským rozhraním

Všechny funkce se mohou lišit od toho, jak jsou potřebné pro práci s komunikátory a služby, a také pro použití různých prvků GUI.

Viz obrázek do App.js com código da parte lógica/operacional

Doporučuje: