Sadržaj:
- Korak 1: Materijali neophodni
- Korak 2: Senzori, Atuadores E Conexões
- Korak 3: Aplikacija Para Controle Remoto
- Korak 4: Criando Uma "koisa" na AWS IoT
- Korak 5: Programa Em Python
- Korak 6: Finalização
Video: Pokretanje pametne kuće - Projeto Konačno: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Projekat je predstavljen kao dio konačnog projekta koji koristi IoT aplikaciju Smart Home
O projektu mostrado a seguir é parte do projekto final i serprepresondo bez kursa IoT aplikacije Smart Home, koja se sastoji od senzora i atuadores povezanih na DrangonBoard + Linker Mezzanine, um primjenjiva desenvolvido com ionic (a ser incluido em breve) kao informacije/podaci o "coisas" servisima u oblaku u AWS -u. Para umara primera iteração com DragonBoard e IoT como um todo, decidiu-se fazer u sistemu de acendimento automático de luzes, com um senzor de luminosidade, uma chave liga/desliga para ativar um aparelho de ar-condicionado de acordo com temperatura temperature pre -setada i um senzor de proximidade que será instalado no portão de uma garagem, com a intenção de informar ao proprietário da casa se o portão encontra-se aberto ou fechado.
Korak 1: Materijali neophodni
- Postavite DragonBoard.
- 96Boards Linker Mezzanine
- Senzor luminozidade (LDR) prati i poveznicu u međuspratu.
- Senzor za temperaturu prati Linker Mezanin.
- Botão touch que acompanha a Linker Mezzanine.
- Dodatna oprema i poveznica u polukatu, potpuni paralelni sistem o A/C sistemu.
- LED dioda uključuje Linker Mezzanine, koji predstavlja i osvjetljenje i ativaciju servera.
- Instalação das bibliotecas citadas no passo 5.
Korak 2: Senzori, Atuadores E Conexões
1. Mezanin povezivača:
Será neophodário conectar a placa Mezzanine na dragonboard. Za detaljnije informacije, konsultantska veza
2. Senzor luminosidade (LDR)
O senzoru i paru do kompleta za Linker Mezzanine i deverá servisno povezivanje na ulazu ADC1. Za detaljnije informacije:
3. Senzor temperature
O senzoru i dijelu koji se nalazi u kompletu za Linker Mezzanine povežite servo priključak na ulazni ADC2. Za detaljnije informacije:
4. Botão dodir
Senzor i dio koji se nalazi u kompletu za Linker Mezzanine su povezani sa ulazom D1. Ovo je bolja informacija/deskriptor o sistemu u kojem možete raditi. O acesso a este botão é somente local. Za detaljnije informacije: https://linksprite.com/wiki/index.php5? Title = Touch_…
5. Relé
O relé é parte do Kit da Linker Mezzanine i deverá ser konektado na entrada D2. Ele será utiizado para ligar/desligar a system of A/C. Para detalje técnicos:
6. LED
O LED diodi i kompletu za Linker Mezzanine i povezivanje servera na ulaz D4. O LED predstavnicima sistema za osvjetljavanje u uma casa, koji su algum komodo interno da casa ili vanjski, kao i iluminação de um jardim. Da biste dodali otpornik od 10 k ohma, emitirajte ga ako postojite kako biste smanjili i ispravno iskoristili pelo sistema, a zatim ste iskusili anteriore koji su provjerili povjerljivost kao portove analitike. Za detaljnije informacije:
7. Sensor de contato magnético
Ovaj senzor je kompatibilan sa dijelovima Kit Kit za Linker Mezanin. Ele será usado em uma janela ou no portão de uma garagem para informar se a janela/garagem está aberta ou fechada. O senzoru je potrebno sastaviti 2 pequena peças (ver foto do Step acima), o senzoru koji se nalazi na ekranu i mora biti "imã", ao aproximar-se do senzora mijenja ili mijenja senzor. O senzor ne isporučuje projektovane foje N/A (normalno). Mora se osjetiti pristranost senzora ili izvještaja senzora. Morate sve što trebate učiniti sa senzorom, ili izvješće o stanju sercha fechado.
Korak 3: Aplikacija Para Controle Remoto
O aplikaciji za desenvolvido com o Ionic Framework, https://ionicframework.com/. Será neophodário fazer ili preuzmite i instalirajte krajnju verziju.
Da biste primijenili aplikaciju (ler e atualizar os dados) u oblaku u AWS (AWS IoT- https://aws.amazon.com/iot/), que posteriormente será acessada pela placa dragonboard para atualização dos status dos senzori i atuadores.
- Sistema de Iluminação mostra o estado do sitesma de iluminação, ligado ili desligado. Quando o nível de luminosidade baixar do valor configuration, as luzes se acenderão automaticamente. Quando an intenidade de luz aumentar além do valor definido, as luzes se apagarão.
- O aktivaciji ili otklanjanju klime u sistemu klimatizacije u sistemu za klimatizaciju. Também é possível definitivno valor smanjuje temperaturu. Odredite temperaturu da se, pa čak i više, postigne temperatura dejstva, o A/C servirano i trajno ligdo na temperaturi abaixar em 2 stepena do definisane tempreature. Na primer, iremos mora uzeti u obzir temperaturu od 23 grasa. Ako temperatura u unutrašnjosti bude 24 stepena, klima uređaj mora biti konstantan, a temperatura će se povećati na 20 stepeni, ali nije potrebno. Depois o ciklo se ponavlja.
- Garažna informacija i stvarna pozicija garaže, koja se nalazi u blizini.
- Temperatura je informativna i najviša temperatura u unutrašnjosti kuće.
- Luminosidade é apesas informativa e mostra o valor da luminosidade atual.
Odredite anexo os arquivos home.html i home.ts kontendos os kodigosa za komunikaciju u oblaku AWS i atualização do aplikacije.
Korak 4: Criando Uma "koisa" na AWS IoT
Kako biste podesili IoT na AWS -u, osigurate prolaz do servera:
1) Nema projektora za AWS IoT vezu na adresi:
2) Klikni "kreiraj stvar" e então, "Kreiraj jednu stvar". Dê o nome do projeto e clique em Next.
3) Na tela seguinte, kliknite na "Napravi stvar bez certifikata". Nesse tutorial ne koristi iremos koji koristi certifikate za provjeru korisničkih zahtjeva, ne preporučujemo vam da preporučite upotrebu IoT sem certifikata.
4) Nesse momento, sua "coisa" já estará criada. Clique no botão da "coisa" que foi criado para abrir a tela com as opções. Nessa tela podemos ver os tópicosMQTT que podem ser usados para fazer atualização dos dados a serem enviados para a Could, assim como é uma ótima ferramenta za rješavanje problema. No código em Python que será apresentado em breve, foram utlizados alguns destes tópicos. Naše tambem postavke su postavljene kao "sjena", pa vam je potrebno dati informacije o tome šta je to na dragonboard refleksiji u AWS Cloud -u.
Korak 5: Programa Em Python
Kako seguintes bibliotecas serão needárias para a execução do programa:
import spidevimport time import logging import json import argparse
iz libsoc import gpio
from time import sleep sleep from datetime import date, datetime from gpio_96boards import GPIO from AWSIoTPythonSDK. MQTTLib import AWSIoTMQTTClient from AWSIoTPythonSDK. MQTTLib
U nastavku pročitajte kompletan program:
import spidevimport time import logging import json import argparse
iz libsoc import gpio
from time import sleep sleep from datetime import date, datetime from gpio_96boards import GPIO from AWSIoTPythonSDK. MQTTLib import AWSIoTMQTTClient from AWSIoTPythonSDK. MQTTLib import AWSIoTMQTTShadowClient
GPIO_CS = GPIO.gpio_id ('GPIO_CS') #Analog Port
BUTTON = GPIO.gpio_id ('GPIO_A') RELE = GPIO.gpio_id ('GPIO_C') LED = GPIO.gpio_id ('GPIO_G')
pinovi = ((GPIO_CS, 'out'), (BUTTON, 'in'), (RELE, 'out'), (LED, 'out'),)
def setdevices (deltaMessagePython):
System_Status = deltaMessagePython ['SystemStatus'] Rele_Status = deltaMessagePython ['AC'] Led_Status = deltaMessagePython ['SisIlumi']
##### AC
ako je Rele_Status == 1: gpio.digital_write (RELE, GPIO. HIGH)
ako je Rele_Status == 0:
gpio.digital_write (RELE, GPIO. LOW)
##### Sistema de Iluminacao
ako je Led_Status == 1: gpio.digital_write (LED, GPIO. HIGH) ako je Led_Status == 0: gpio.digital_write (LED, GPIO. LOW)
def readadc (gpio):
gpio.digital_write (GPIO_CS, GPIO. HIGH)
time.sleep (0,0002) gpio.digital_write (GPIO_CS, GPIO. LOW) r = spi.xfer2 ([0x01, 0xA0, 0x00])#ADC2 - Temperatura gpio.digital_write (GPIO_CS, GPIO. HIGH) adcout = (r [1] << 8) & 0b1100000000 adcout = adcout | (r [2] & 0xff) adc_temp = (adcout *5.0/1023-0.5) *100
gpio.digital_write (GPIO_CS, GPIO. HIGH)
time.sleep (0.0002) gpio.digital_write (GPIO_CS, GPIO. LOW) r = spi.xfer2 ([0x01, 0x80, 0x00])#ADC1 - Svjetlost gpio.digital_write (GPIO_CS, GPIO. HIGH) adcoutldr = (r [1] << 8) & 0b1100000000 adcoutldr = adcoutldr | (r [2] & 0xff) adcoutldr = str (adcoutldr) sada = datetime.utcnow () now_str = now.strftime ('%Y-%m-%dT%H:%M:%SZ') temperatura = "{:.2f} ". Format (adc_temp) payload_temp = '{" stanje ": {" željeno ": {" Luminosidade ":' + adcoutldr + '," Temperatura ":' + temperatura + '}}}' myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", payload_temp, 0) return r
def desliga ():
gpio.digital_write (RELE, GPIO. LOW) gpio.digital_write (LED, GPIO. LOW)
def run (gpio):
system_status = 1
dok je True:
time.sleep (2) button_value = gpio.digital_read (BUTTON) ispis ("----") time.sleep (0.25) if button_value == 1: if system_status == 0: system_status = 1 else: system_status = 0 desliga () if system_status == 1: value = readadc (gpio) ispišite "SYSTEM_STATUS %d" %system_status time.sleep (3)
klasa shadowCallbackContainer:
def _init _ (self, deviceShadowInstance): self.deviceShadowInstance = deviceShadowInstance
# Prilagođeni povratni poziv u sjeni
def customShadowCallback_Delta (self, payload, responseStatus, token): print ("Primljena delta poruka:") ### skripta ažuriranja korisnog opterećenja payloadDict = json.loads (korisni teret) deltaMessage = json.dumps (payloadDict ["stanje"]) ispis "DELTA MESSAGE %s" %deltaMessage ### Zahtjev za ažuriranje prijavljenog stanja newPayload = '{"stanje": {"prijavljeno":' + deltaMessage + '}}' deltaMessagePython = json.loads (deltaMessage) setdevices (deltaMessagePython)
spi = spidev. SpiDev ()
spi.open (0, 0) spi.max_speed_hz = 10000 spi.mode = 0b00 spi.bits_per_word = 8
####### Definicija stvari
# Veza zasnovana na AWS IoT certifikatu
myMQTTClient = AWSIoTMQTTClient ("DBpyAWS1116") myMQTTClient.configureEndpoint ("a28rqf8gnpw7g.iot.us-west-2.amazonaws.com", 8883) myMQTTClient.configureCredentiS ("/home/, "/home/linaro/shared/AWS/" SUA CHAVE "-private.pem.key", "/home/linaro/shared/AWS/" SEU CERTIFICADO "-certificate.pem.crt") myMQTTClient.configureOfflinePublishQueueing (- 1) # Beskonačno van mreže Objavite u redu čekanja myMQTTClient.configureDrainingFrequency (2) # Ispuštanje: 2 Hz myMQTTClient.configureConnectDisconnectTimeout (10) # 10 sec myMQTTClient.configureMQTTOperationTimeout.myQ (QQ) (5Q) coisajsb "," povezano ", 0)
########################
####### Definicija sjene
# Init AWSIoTMQTTShadowClient
myAWSIoTMQTTShadowClient = Nema myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient ("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint ("SEU END-POINT.us-west-2.amazonaws.com", 8883) myAWSIoTMQTTShadowClient.configureCredentials ("/ home / Linaro / shared / AWS / root- CA.crt ","/home/linaro/shared/AWS/"SUA CHAVE" -private.pem.key ","/home/linaro/shared/AWS/"SEU CERTIFICADO-certificate.pem.crt")
# AWSIoTMQTTShadowClient konfiguracijamyAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime (1, 32, 20) myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout (10) #IQMonTiConTiMonTiConTimTonMonTimTonMonTonTimeout
# Povežite se na AWS IoT
myAWSIoTMQTTShadowClient.connect ()
# Napravite sjenu uređaja s trajnom pretplatom
deviceShadowHandler = myAWSIoTMQTTShadowClient.createShadowHandlerWithName ("DBpyAWS1116", True) shadowCallbackContainer_Bot = shadowCallbackContainer (deviceShadowHandler)
# Slušajte na deltama
deviceShadowHandler.shadowRegisterDeltaCallback (shadowCallbackContainer_Bot.customShadowCallback_Delta)
#########################
myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", '{"stanje": {"željeno": {"SystemStatus": 1, "SisIlumi": 0, "AC": 0, "Garagem": "Fechada", "Temperatura": 25, "Luminosidade": 123}}} ', 0)
if _name_ == "_main_":
sa GPIO (pinovi) kao gpio: run (gpio)
Korak 6: Finalização
Após ter compleido os passos anteriores, deve-se inicializar o sistemu executando o codigo fornecido no passo 5 e inicializar o app através do Ionic, usando o comando Ionic serve.
Za rješavanje problema, preporučujemo da koristite funkcionalni TEST MQTT klijenta do AWS-a, ako je potrebno provjeriti da li je potrebno poslati obavijesti na dragonboard ili poslati ispravku u AWS Cloud:
Preporučuje se:
Alexa sistem pametne kuće koji koristi NodeMCU relejni modul: 10 koraka
Alexa pametni kućni sistem koji koristi NodeMCU relejni modul: U ovom IoT projektu napravio sam Alexa Alexa automatizacijski sistem koristeći NodeMCU ESP8266 & Relejni modul. Glasovnom naredbom možete lako kontrolirati svjetlo, ventilator i druge kućanske aparate. Za povezivanje Echo Dot pametnog zvučnika sa
SmartBox - Sistem pametne kuće za vašu sobu: 6 koraka
SmartBox - sistem pametne kuće za vašu sobu: Pozdrav svima! U ovom uputstvu ću vam objasniti kako napraviti sistem pametne sobe. Ovaj sistem sadrži dva uređaja. Opći uređaj sa senzorom vlažnosti i senzorom temperature koji mjeri trenutni kvalitet života u vašoj prostoriji. Ti ćeš
ForgetMeNot - Platforma za obavještavanje pametne kuće: 14 koraka (sa slikama)
ForgetMeNot - Platforma za obavještavanje pametne kuće: Kao zaposleni studenti, trčeći između časova, poslova i porodičnih obaveza, skloni smo zaboraviti male stvari. Rođendan dolazi i odlazi a da mi to ne primijetimo, važan rok se propušta zbog čistog zaborava, a ponekad, samo
Automatizacija pametne kuće sa utičnicama Energenie - utičnice u blizini: 4 koraka
Automatizacija pametne kuće s utičnicama Energenie - blizinske utičnice: Uvod Postoji puno primjera pametne kućne automatizacije, ali ovaj je jednostavan i djelovao je vrlo učinkovito godinu dana u mojoj kući pa se nadam da vam se sviđa. Kad završite, imat ćete uređaj koji može skenirati mrežu
Vodič Završni projekt Do Curso IoT Aplikacija pametne kuće Inatel / Novembar 2017: 4 koraka (sa slikama)
Vodič Do Finalnog Projekta Za Curso IoT Aplikaciju Pametne Kuće Inatel / Novembar 2017: Nema desenvolvimento desse projeto foi koji se koristi na plataformama hibrida, već je neophodan kao dodatak za ponavljanje plataformacija na Androidu ili iOS -u. Kako biste koristili računalo sa tipovima prijenosnih računara sa windows 10. Essa plataforma chama-se Ionic, q