Indholdsfortegnelse:
- Trin 1: Materias Necessários
- Trin 2: Sensorer, Atuadores E Conexões
- Trin 3: Aplicativo Para Controle Remoto
- Trin 4: Criando Uma "coisa" Na AWS IoT
- Trin 5: Programa Em Python
- Trin 6: Finalização
Video: Start af et smart hjem - Projeto Final: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Projeto apresentado é parte do projeto final do curso de IoT aplicado a Smart Home
O projeto mostrado a seguir é parte do projeto final a ser apresentado no curso de IoT aplicada a Smart Home, que consiste de sensores e atuadores conectados na DrangonBoard + Linker Mezzanine, um aplicativo desenvolvido com o ionic (a ser incluido em breve) e as informações/dados das "coisas" serão salvados og cloud da AWS. Para uma primeira iteração com a DragonBoard e IoT como um todo, decidiu-se fazer um system of acendimento automático de luzes, com um sensor de luminosidade, uma chave liga/desliga para ativar um aparelho de ar-condicionado de acordo com uma temperatura pre -setada e um sensor 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.
Trin 1: Materias Necessários
- Placer DragonBoard.
- 96Boards Linker Mezzanine
- Sensor de luminozidade (LDR) er acompanha og Linker Mezzanine.
- Temperatursensor som ledsager og mezzanine.
- Botão touch que acompanha a Linker Mezzanine.
- Relé acompanha a Linker Mezzanine, utlizado para ligar or systema de A/C.
- LED acompanha a Linker Mezzanine, que representará a iluminação a ser ativada.
- Instalação das bibliotecas citadas no passo 5.
Trin 2: Sensorer, Atuadores E Conexões
1. Linker Mezzanine:
Será nødvendigár conectar a placa Mezzanine and dragonboard. For detaljer, konsulentlink
2. Sensor luminosidade (LDR)
O sensor é parte do Kit da Linker Mezzanine e deverá ser conectado na entrada ADC1. Para detalhes técnicos:
3. Sensor de Temperatura
O sensor é parte do Kit da Linker Mezzanine e deverá ser conectado na entrada ADC2. Para detalhes técnicos:
4. Botão Touch
O sensor é parte do Kit da Linker Mezzanine e deverá ser conectado na entrada D1. Este botão irá ligar/desligar o sistema como um todo. O acesso a este botão é somente local. Til detaljer om teksten: https://linksprite.com/wiki/index.php5? Title = Touch_…
5. Relé
O relé é parte do Kit da Linker Mezzanine e deverá ser conectado na entrada D2. Ele será utiizado para ligar/desligar o systemema de A/C.
6. LED
O LED er et sæt til sæt fra Linker Mezzanine og deverá ser conectado på entrada D4. O LED -repræsentation af et system til iluminação de uma casa, der kan bruges som intern eller intern ekstern, som en iluminação de um jardim. Foi adicionado um resistor de 10k ohm em sério com o já existente para diminuir a corrente utilizada pelo system, ja que em experiências anteriores verificou-se conflitos com as portas analógicas. Para detalhes técnicos:
7. Sensor de contato magnético
Este sensor foi comprado a parte e não faz parte do Kit da Linker Mezzanine. Ele será usado em uma janela ou no portão de uma garagem para informar se a janela/garagem está aberta ou fechada. O sensor é um conjunto formado por 2 pequenas peças (ver photo do Step acima), o sensor proprimamente dito e um pequeno "imã", que ao aproximar-se do sensor irá alterar o estado do sensor. O sensor utlizado næste projeto foi um N/A (normalment aberto). Der er en sensor, der kan registrere en sensor. Der kan bruges en sensor eller en rapport, der er i stand til at fungere.
Trin 3: Aplicativo Para Controle Remoto
O aplicativo foi desenvolvido com o Ionic Framework, https://ionicframework.com/. Det er nødvendigt, at du downloader og installerer det ultimative.
O aplicativo irá se comunicar (ler e atualizar os dados) com en cloud da AWS (AWS IoT- https://aws.amazon.com/iot/), que posteriormente será acessada pela placa dragonboard para atualização dos status dos sensores e atuadores.
- Sistema de Iluminação mostra o estado do sitesma de iluminação, ligado ou desligado. Quando o nível de luminosidade baixar do valor configurado, as luzes se acenderão automaticamente. Quando a intensidade de luz aumentar além do valor definido, as luzes se apagarão.
- O botão A/C acionará o relé, que por sua vez acionará o sistema de A/C da casa. Também é possível definir o valor desejado da temperatura. Assim que a temperatura da casa estiver maior do que a temperatura de acionamento, o A/C será ligado e permanentecerá ligado até a temperatura abaixar em 2 graus da tempreatura definida. Eksempelvis kan der overvejes en temperatur på 23 grader. Når temperaturen i indersiden er 24 grader, kan der bruges en A/C -temperatur og en temperatur på 20 gram, som kan bruges. Depois o ciclo se repetirá.
- Garagem informará a atual posição da garagem, se aberta ou fechada.
- Temperatura é apenas informativa e mostra a temperatura do interior da casa.
- Luminosidade é apesas informativa e mostra o valor da luminosidade atual.
Segue em anexo os arquivos home.html e home.ts contendos os códigos para comunicação com en cloud AWS e atualização do app.
Trin 4: Criando Uma "coisa" Na AWS IoT
Para fazer o opsætning af IoT og AWS, og vi kan også fortælle følgende:
1) Criar um projeto no AWS IoT atravé do link:
2) Klik "opret en ting" og então, "Opret en enkelt ting". Klik på Næste.
3) Klik derefter på "Opret en ting uden certifikat". Nesse -vejledning til, hvordan vi kan bruge certifikater til spørgsmål, der kan bruges som anbefalinger til brug af IoT som certifikater.
4) Nesse momento, sua "coisa" já estará criada. Klik 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 and atualização dos dados a serem enviados para a Could, assim como é uma ótima ferramenta para troubleshooting. No código em Python que será apresentado em breve, foram utlizados alguns destes tópicos. Der vises også en "skygge", der kan informeres om, at Dragonboard -refletida kan bruges til AWS Cloud.
Trin 5: Programa Em Python
Som beskrevet i bibliotecas serão necessárias para a execução do programa:
import spidevimport tid import logning import json import argparse
fra libsoc import gpio
fra tid import søvn fra datetime import dato, datetime fra gpio_96boards importer GPIO fra AWSIoTPythonSDK. MQTTLib import AWSIoTMQTTClient fra AWSIoTPythonSDK. MQTTLib
Segue abaixo código completeo to programa:
import spidevimport tid import logning import json import argparse
fra libsoc import gpio
fra tid import søvn fra datetime import dato, datetime fra gpio_96boards importer GPIO fra AWSIoTPythonSDK. MQTTLib import AWSIoTMQTTClient fra 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')
pins = ((GPIO_CS, 'out'), (KNAP, 'ind'), (RELE, 'ud'), (LED, 'ud'),)
def setdevices (deltaMessagePython):
System_Status = deltaMessagePython ['SystemStatus'] Rele_Status = deltaMessagePython ['AC'] Led_Status = deltaMessagePython ['SisIlumi']
##### AC
hvis Rele_Status == 1: gpio.digital_write (RELE, GPIO. HIGH)
hvis Rele_Status == 0:
gpio.digital_write (RELE, GPIO. LOW)
##### Sistema de Iluminacao
hvis Led_Status == 1: gpio.digital_write (LED, GPIO. HIGH) hvis 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 - Temperatur 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 - Luminosity gpio.digital_write (GPIO_CS, GPIO. HIGH) adcoutldr = (r [1] << 8) & 0b1100000000 adcoutldr = adcoutldr | (r [2] & 0xff) adcoutldr = str (adcoutldr) nu = datetime.utcnow () now_str = now.strftime ('%Y-%m-%dT%H:%M:%SZ') temperatura = "{:.2f} ". Format (adc_temp) payload_temp = '{" state ": {" ønsket ": {" 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 kørsel (gpio):
system_status = 1
mens det er sandt:
time.sleep (2) button_value = gpio.digital_read (BUTTON) print ("----") time.sleep (0.25) if button_value == 1: if system_status == 0: system_status = 1 else: system_status = 0 desliga () hvis system_status == 1: værdi = readadc (gpio) udskriver "SYSTEM_STATUS %d" %system_status time.sleep (3)
klasse shadowCallbackContainer:
def _init _ (self, deviceShadowInstance): self.deviceShadowInstance = deviceShadowInstance
# Custom Shadow callback
def customShadowCallback_Delta (self, payload, responseStatus, token): print ("Modtog en delta -meddelelse:") ### payload update script payloadDict = json.loads (payload) deltaMessage = json.dumps (payloadDict ["state"]) print "DELTA MESSAGE %s" %deltaMessage ### Anmodning om opdatering af den rapporterede tilstand newPayload = '{"state": {"reported":' + 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
######## Tingdefinition
# AWS IoT -certifikatbaseret forbindelse
myMQTTClient = AWSIoTMQTTClient ("DBpyAWS1116") myMQTTClient.configureEndpoint ("a28rqf8gnpw7g.iot.us-west-2.amazonaws.com", 8883) myMQTTClient.configureCredentials ("/CA/root/"/home/"/home/"/home/"/home/"/home/"/home/, "/home/linaro/shared/AWS/" SUA CHAVE "-private.pem.key", "/home/linaro/shared/AWS/" SEU CERTIFICADO "-certificate.pem.crt") myMQTTClient.configureOfflinePublishQueueing (- 1) # Uendelig offline Udgiv kø i myMQTTClient.configureDrainingFrequency (2) # Dræning: 2 Hz myMQTTClient.configureConnectDisconnectTimeout (10) # 10 sec myMQTTClient.configureMQTTOperationTimeout (5) # 5 secTCTC) og publicer my. MilTilKlientMinTilKlientMinTilKlientMinTilKlientMinTilkobling coisajsb "," forbundet ", 0)
########################
######## Skygge definition
# Init AWSIoTMQTTShadowClient
myAWSIoTMQTTShadowClient = Ingen myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient ("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint/online/signon/signon/signon/status/8/signon/signon/signon/signon/signon/signon/stjernetilbage CA.crt ","/home/linaro/shared/AWS/"SUA CHAVE" -private.pem.key ","/home/linaro/shared/AWS/"SEU CERTIFICADO-certificate.pem.crt")
# AWSIoTMQTTShadowClient -konfigurationmyAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime (1, 32, 20) myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout (10) # 10 sec myAWSIoTMQTht.
# Opret forbindelse til AWS IoT
myAWSIoTMQTTShadowClient.connect ()
# Opret en enhedsskygge med vedvarende abonnement
deviceShadowHandler = myAWSIoTMQTTShadowClient.createShadowHandlerWithName ("DBpyAWS1116", True) shadowCallbackContainer_Bot = shadowCallbackContainer (deviceShadowHandler)
# Lyt til deltaer
deviceShadowHandler.shadowRegisterDeltaCallback (shadowCallbackContainer_Bot.customShadowCallback_Delta)
#########################
myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", '{"state": {"ønsket": {"SystemStatus": 1, "SisIlumi": 0, "AC": 0, "Garagem": "Fechada", "Temperatura": 25, "Luminosidade": 123}}} ', 0)
hvis _name_ == "_main_":
med GPIO (pins) som gpio: kør (gpio)
Trin 6: Finalização
Após ter concluido os passos anteriores, deve-se inicializar o sistema executando o código fornecido no passo 5 e inicializar o app através do Ionic, usando o comando Ionic serve.
Para um eventuel fejlfinding, anbefalings-brug af en funktionalitet MQTT Client TEST til AWS, onde é possibler verificar e as mensagens enviadas for dragonboard está sendo atualizada de forma correta na AWS Cloud: https://us-west-2.console.aws.amazon.com/iotv2/hom …
Anbefalede:
Sådan laver du et smart hjem ved hjælp af Arduino -kontrolrelæmodul - Idéer til hjemmeautomatisering: 15 trin (med billeder)
Sådan laver du et smart hjem ved hjælp af Arduino -kontrolrelæmodul | Idéer til hjemmeautomatisering: I dette hjemmeautomatiseringsprojekt vil vi designe et smart hjemrelæmodul, der kan styre 5 husholdningsapparater. Dette relæmodul kan styres fra mobil eller smartphone, IR -fjernbetjening eller fjernsynsfjernbetjening, manuel switch. Dette smarte relæ kan også mærke r
Smart hjem med Arduino MKR1000 og M.I.T. Android App: 4 trin
Smart hjem med Arduino MKR1000 og M.I.T. Android App: I denne vejledning beskriver jeg, hvordan du kan forbedre dit smarte hjem med blot nogle få komponenter. Hjertet i dette smarte hjemdesign er Arduino MKR1000 -kortet, der styres med en app, designet på udviklingswebstedet for M.I.T. (Massachusetts Institu
Lavpris smart hjem - kontrol overalt i verden: 6 trin
Lavpris smart hjem - kontrol overalt i verden: Om nu arbejder begge forældre på at få et behageligt liv for familien. Så vi har mange elektroniske apparater som varmelegeme, AC, vaskemaskine osv. I vores hjem. Når de vender tilbage til hjemmet, skal de føle sig meget godt tilpas i ter
[HASS.IO] Start med at bygge dit smarte hjem uden kodning, for mindre end $ 100: 6 trin
[HASS.IO] Start med at bygge dit smarte hjem uden kodning, for mindre end $ 100: For nylig har jeg rodet rundt og med succes gjort mit hus mindre " idiotisk ". Så jeg vil dele, hvordan man laver et smart hjemmesystem med en lav pris, høj kompatibilitet, der ville køre problemfrit og stabilt
Sikr dit smart hjem smart: 14 trin
Smart Secure Your Smart Home: Jeg konkurrerer om den sikre konkurrence. Hvis du kan lide min instruerbare, skal du stemme på den! Jeg vil vise dig, hvordan du nemt og billigt kan sikre dit hjem og dets omgivelser.Det indeholder segmenter, hvor du vil lære at: 1. Konfigurer y