İçindekiler:

Pequeno Projeto De Uma Casa Inteligente: 5 Adım
Pequeno Projeto De Uma Casa Inteligente: 5 Adım

Video: Pequeno Projeto De Uma Casa Inteligente: 5 Adım

Video: Pequeno Projeto De Uma Casa Inteligente: 5 Adım
Video: Строим удивительную деревянную хижину своими руками шаг за шагом 2024, Temmuz
Anonim
Pequeno Projeto De Uma Casa Inteligente
Pequeno Projeto De Uma Casa Inteligente

O projeto que faremos é de uma casa inteligente. Olasılık temelleri, işlevlerin gruplanması:· Hava sıcaklığının izlenmesi.

· Gıdaların izlenmesi ve izlenmesi.

Yazılımlar için IoT ve geladeira nem dos comodos yok; porém assumiremos que os dispositivos fazem o seguinte:

- Bir geladeira possuium dispositivo com dokunmatik ekran em que é possível enrar com dados de alimentos: o nome de um alimento e sua quantidade;

- Geladeira içinde bir geladeira possui um sensörü, bir geladeira em um pequeno tanque de agua embutido na geladeira;

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

- Os comodos têm ar condicionado que se comunicam pela rede wifi;

- Wi-Fi erişiminin sağlanması için internet bağlantısı olarak;

Gereklilikler:

- Conhecimento basicon em python, javascript, uso do sistema operacional, comandos básicos kabuksuz

- Ter kurulum: düğümler, piton

- Ter installation (isteğe bağlı): docker, emulador de dispositivo mobile, gerenciador de sdk do Android (Android Studio'yu dağıtma)

O desenvolvimento desse projeto foi feito no Linux. Windows'a uymayan koşullara uyarlanabilir.

Adım 1: Configurando O Ambiente

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

2 bölümden oluşan ortam yapılandırması: sunucu ve mobil.

reactnative.dev/

Vamos inicialmente criar uma estrutura de makarnalar. Em um diretório escolhido (bir partir de agora será escrito semper como $PROJECT_DIR ortak yer tutucusu - çığlık com no yerel que achar mais yeterli e com o nome de sua tercihli), vamos criar uma makarna "servidor":

$ mkdir $PROJECT_DIR && cd $PROJECT_DIR

$ mkdir sunucu

CONFIGURANDO O AMBIENTE DESENVOLVIMENTO PARA O SERVIDOR

Podemos utilizar um Environment conteinerizado com Docker ve sanal python (venv) ortamı. Caso deseje utilizar Environment conteinerizado, criaremos a imagem segundo o dockerfile:

$ cd $PROJECT_DIR

$ dokunmatik dockerfile

Veja imagem dockerfile.

Caso prefira utilizar Environment sanal do python, siga as instruções em

Gereksinimler olarak aşağıdakileri içerir:

$ dokunma gereksinimleri.txt

Veja imagem gereksinimleri.txt yapmak.

Caso tenha optado por utilizar um Environmente conteinerizado, construa a imagem e entre konteyner yok:

$ liman işçisi inşa. -t smarthouse $ docker run -it -p 3000:3000 -v $(pwd):/app smarthouse bash

Dockerfile ve docker için temel bilgiler: https://docs.docker.com/engine/reference/builder/…

CONFIGURANDO O AMBIENTE DESENVOLVIMENTO MOBILE

Um passo bir passo de commo configurar o Environmente de desenvolvimento mobil com React Native pode servisi bağlantı yok:

Ortam yapılandırması için, makarna yapmak için projeto deve ser possível executar o comando para criar bir mobil uygulama:

$ npx create-tepki-yerel-uygulama istemcisi

2. Adım: WebSocket

Bu, websocket antes de prosseguir için en iyi şeydir. Caso o leitor nunca tenha lido, trabalhado ou ouvido falar nada a respeito, ayrı alguns minutos para entender como funciona o websocket através da Documentação:

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

Kullanım kılavuzu, hiçbir müşteri ve hizmet sağlayıcı yok, soyut ve protokol, kurallar, kurallar, kesinlik. Ayrı também um tempo para estudar bibliotecas utilizados no cliente e no server olarak:

Müşteri:

Sunucu:

Adım 3: Escrevendo O Sunucu

Escrevendo O Sunucu
Escrevendo O Sunucu
Escrevendo O Sunucu
Escrevendo O Sunucu
Escrevendo O Sunucu
Escrevendo O Sunucu
Escrevendo O Sunucu
Escrevendo O Sunucu

Vamos criar uma estrutura inicial do projeto e escrever bir arayüz que será utilizada como comunicação com o com o server:

$ mkdir kaynağı

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

Primeiramente vamos escrever um módulo de inicalização sunucu yapmak:

Veja imagem do app.py

Depois vamos escrever o módulo que estabelece conexões olarak websocket e aracılığıyla redirecionam para um controlador olarak.

Veja imagem yapmak socketconnection.py

KONTROLÖR E KULLANIM ALANLARI

Conexões olarak kontrol eden ve yeniden düzenleyen, yanıt veren modüller; Tüm sorumluluklar, kontrol etmek için saber nitelikli işlevler için en iyi olanaklardan biridir.

Veja imagem controller.py yapın.

Son olarak, en son teknolojiler için, en iyi ve en yeni sistemlerin yeniden yapılandırılması ve yeniden yapılandırılması, yeniden düzenlenmesi ve yeniden gözden geçirilmesi, bir partinin gerçekleştirilmesi, kontrol altına alınması ve gerçekleştirilmesinin sağlanması. Herhangi bir caso desse sistema hánte atualização de valores (sejam numéricos, texto ou booleanos - caso de ligar/desligar dispositivos de valores yok). Então n o é de curpreender que os casos de uso t o bazınte chame funções yapmak módulo yanıtlar yalnış süreklilik arz eden bir "regra de negócio".

Veja imagem usecases.py yapmak

Not: precisamos persistir os dados de alguma forma. Fica ve escolha do leitor como, armazenar os dados ve portanto'yu tercih eder, src/repository.py işlevini yerine getirir. Projeto desenvolvido como exemplo foi persistido em um arquivo json hiçbir diretório veritabanı yok. Sunucu/veritabanı-modeli.json ve veri tabanı-modeli.json ve işlevler için herhangi bir veri tabanı sunucusu/veritabanı için veri tabanı sunucuları/veritabanı iletişim bilgileri için proje depolama yok.

Adım 4: Testando O Sunucu

Testando O Sunucu
Testando O Sunucu

Podemos criar um script para conectar ao server ve enviar eventos uygun bir estrutura esperada pelos kontrolör para yüzgeçleri de testes manuais. Vamos criar esse script ve rodá-lo com o server*.

Veja imagem serverclient.py yapmak

Com o arquivo criado, doğrulayıcı se o container está rodando, e dentro dele yürütmek:

$ python uygulaması.py

Konteyner yapmak için, diretório $PROJECT_DIR/sunucu yürütme yok:

$ python3 serverclient.py

İstem yok "> " digite os eventos encontrados hiçbir controlador seguido de ";" Değerlerin ve değerlerin tanımı. Örnek:

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 eventto enviado doğrulamak se foi persistido no banco de dados escolhido.

Not: bir bağlantı noktasının doğrulanması, bir uygulama, bir bağlantı noktası exposta, liman işçisi çalıştırma, bir bağlantı noktası komut dosyası de teste devem ser a mesma.

Adım 5: Bir Aplikação Mobil

Bir Aplikação Mobil
Bir Aplikação Mobil
Bir Aplikação Mobil
Bir Aplikação Mobil

Mobil cihazlarla ilgili tüm ayrıntıların gösterilmesi. Geçerli değil, hiçbir koşul temel koşul yok Tepki Yerli'nin yapılandırılmasının ayrıntıları. Para começar, navegue até $PROJECT_DIR/client e adicione a bağımlılık que precisaremos para o projeto:

$ npm ve socket.io

Bu, çevrimiçi sunucunun en önemli bileşenlerinden biridir.

ESCREVENDO A TELA

Em App.js, GUI'nin temel bileşenleri.

⚠ Dikkat edin, bir função chamada pelo useEffect ainda não foi escrita! setDataReducer, setFoodReducer, setTemperatureReducer, setLightReducer ile ilgili eski yazılar INITIAL_STATE, INITIAL_FOOD_MODAL, INITIAL_MODALTURE, INITIAL_MODALTURE, INITIAL_MODAL, INITIAL_MODALTURE

Tüm işlevler için temel bilgiler, arabirim öğelerinin arabirim öğelerinin yanı sıra hiçbir sunucu: saveNewFoodValue, saveNewTemperature, saveNewLuminosity, toggleTemperatureForRoom, toggleLightForRoom

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

Veja imagem, App.js com codigo da parte GUI yapmak

GUI'nin bileşenlerini en iyi şekilde kullanabilmek için, iletişim için gerekli olan en önemli işlevler.

Veja imagem do App.js com codigo da parte lógica/operacional

Önerilen: