![Starta ett smart hem - Projeto Final: 6 steg Starta ett smart hem - Projeto Final: 6 steg](https://i.howwhatproduce.com/images/006/image-17142-14-j.webp)
Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:11
![Starta ett smart hem - Projeto Final Starta ett smart hem - Projeto Final](https://i.howwhatproduce.com/images/006/image-17142-15-j.webp)
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 och 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.
Steg 1: Materias Necessários
![Materias Necessários Materias Necessários](https://i.howwhatproduce.com/images/006/image-17142-16-j.webp)
![Materias Necessários Materias Necessários](https://i.howwhatproduce.com/images/006/image-17142-17-j.webp)
- Placera DragonBoard. https://www.amazon.com/DragonBoard-410C-IoT-Start …
- 96Boards Linker Mezzanine
- Sensor de luminozidade (LDR) som acompanha a Linker Mezzanine.
- Sensor de temperatura que acompanha a Linker 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.
Steg 2: Sensorer, Atuadores E Conexões
![Sensores, Atuadores E Conexões Sensores, Atuadores E Conexões](https://i.howwhatproduce.com/images/006/image-17142-18-j.webp)
![Sensores, Atuadores E Conexões Sensores, Atuadores E Conexões](https://i.howwhatproduce.com/images/006/image-17142-19-j.webp)
1. Linker Mezzanine:
Será needsário conectar a placa Mezzanine and dragonboard. Para detalhes, konsultlänk
2. Sensor luminosidade (LDR)
O sensor é parte do Kit da Linker Mezzanine e deverá ser conectado na entrada ADC1. Para detalhes técnicos:
3. Temperaturgivare
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. Para detalhes técnicos: 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 sistema de A/C.
6. LED
O LED é parte do kit da Linker Mezzanine e deverá ser conectado na entrada D4. O LED -representar o system av iluminação de uma casa, seja algum cômodo interno da casa ou externo, como a 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, já 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 foto 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ästa projeto foi um N/A (normalmente aberto). Om det finns en sensor eller en sensor som rapporterar det. Om det finns en sensor eller en rapport som ser ser fechado ut.
Steg 3: Aplicativo Para Controle Remoto
![Aplicativo Para Controle Remoto Aplicativo Para Controle Remoto](https://i.howwhatproduce.com/images/006/image-17142-20-j.webp)
O aplicativo foi desenvolvido com o Ionic Framework, https://ionicframework.com/. Det är nödvändigt att ladda ner och installera i slutändan.
O aplicativo irá se comunicar (ler e atualizar os dados) com a 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. Det är möjligt att uppnå en temperatur som överensstämmer med en temperatur som kan fungera som A/C -temperatur och permanenta temperaturer för två temperaturer. Exemplo, iremos considerar que a temperatura é de 23 grader. Känna en temperatur inuti vinäger på 24 grader, A/C será ligado e permanentecerá ligado até a temperatura chegar a 20 graus, desligando então. Depois o ciclo se repetirá.
- Garagem informará a atual posição da garagem, se aberta ou fechada.
- Temperatura och 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 a cloud AWS e atualização do app.
Steg 4: Criando Uma "coisa" Na AWS IoT
![Criando Uma Criando Uma](https://i.howwhatproduce.com/images/006/image-17142-21-j.webp)
Para fazer o setup för IoT och AWS, vi kan också säga att vi kan göra följande:
1) Criar um projeto no AWS IoT atravé do link:
2) Klicka på "skapa en sak" e então, "Skapa en enda sak". Dé o nome do projeto e clique em Next.
3) Klicka på "Skapa en sak utan certifikat". Nesse tutorial não iremos utilizar os certificados por questões práticas, porém não é recomendado fazer o uso de IoT sem certificados.
4) Nesse momento, sua "coisa" já estará criada. Klicka inte 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 a atualização dos dados a serem enviados para a Could, assim como é uma ótima ferramenta para felsökning. No código em Python que será apresentado em breve, foram utlizados alguns destes tópicos. Det finns en "skugga" som kan ge information om dragonboard -refletida och AWS Cloud.
Steg 5: Programa Em Python
Som seguintes bibliotecas serão necessárias para a execução do programa:
import spidevimport tid import loggning import json import argparse
från libsoc import gpio
från tid importera sömn från datetime importdatum, datetime från gpio_96boards importera GPIO från AWSIoTPythonSDK. MQTTLib importera AWSIoTMQTTClient från AWSIoTPythonSDK. MQTTLib
Segue abaixo código completeo to programa:
import spidevimport tid import loggning import json import argparse
från libsoc import gpio
från tid importera sömn från datetime importdatum, datetime från gpio_96boards importera GPIO från AWSIoTPythonSDK. MQTTLib import AWSIoTMQTTClient från AWSIoTPythonSDK. MQTTLib import AWSIoTMQTTShadowClient
GPIO_CS = GPIO.gpio_id ('GPIO_CS') #Analog port
KNAPP = GPIO.gpio_id ('GPIO_A') RELE = GPIO.gpio_id ('GPIO_C') LED = GPIO.gpio_id ('GPIO_G')
pins = ((GPIO_CS, 'out'), (KNAPP, 'in'), (RELE, 'ut'), (LED, 'ut'),)
def setdevices (deltaMessagePython):
System_Status = deltaMessagePython ['SystemStatus'] Rele_Status = deltaMessagePython ['AC'] Led_Status = deltaMessagePython ['SisIlumi']
##### AC
om Rele_Status == 1: gpio.digital_write (RELE, GPIO. HIGH)
om Rele_Status == 0:
gpio.digital_write (RELE, GPIO. LOW)
##### Sistema de Iluminacao
om Led_Status == 1: gpio.digital_write (LED, GPIO. HIGH) om 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 ": {" wanted ": {" 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
medan det är sant:
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 () om system_status == 1: värde = readadc (gpio) skriv ut "SYSTEM_STATUS %d" %system_status time.sleep (3)
klass shadowCallbackContainer:
def _init _ (self, deviceShadowInstance): self.deviceShadowInstance = deviceShadowInstance
# Anpassad skuggåteruppringning
def customShadowCallback_Delta (self, payload, responseStatus, token): print ("Har tagit emot ett delta -meddelande:") ### nyttolast uppdateringsskript payloadDict = json.loads (nyttolast) deltaMessage = json.dumps (payloadDict ["state"]) print "DELTA MESSAGE %s" %deltaMessage ### Begäran om att uppdatera det rapporterade tillståndet 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
####### Thing definition
# AWS IoT -certifikatbaserad anslutning
myMQTTClient = AWSIoTMQTTClient ("DBpyAWS1116") myMQTTClient.configureEndpoint ("a28rqf8gnpw7g.iot.us-west-2.amazonaws.com", 8883) myMQTTClient.configureCredentials ("/home/"/home/"/home/"/home/"/CA/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/CA/home/, "/home/linaro/shared/AWS/" SUA CHAVE "-private.pem.key", "/home/linaro/shared/AWS/" SEU CERTIFICADO "-certificate.pem.crt") myMQTTClient.configureOfflinePublishQueueing (- 1) # Infinite offline Publicera kö myMQTTClient.configureDrainingFrequency (2) # Dränering: 2 Hz myMQTTClient.configureConnectDisconnectTimeout (10) # 10 sec myMQTTClient.configureMQTTOperationTimeout (5) # 5 secTConnect (publicera my. MlTlMlKlIntMlQMlTlKlIntClIntClIntClIntClIntClient) coisajsb "," ansluten ", 0)
########################
######## Skuggdefinition
# Init AWSIoTMQTTShadowClient
myAWSIoTMQTTShadowClient = Inga myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient ("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint/onSonSonSonSonSon.amn./sammankoppling/sammanträde-signon/signon/signon/total-total-total-total-tjänst-tjänst. 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.
# Anslut till AWS IoT
myAWSIoTMQTTShadowClient.connect ()
# Skapa en enhet Skugga med ihållande prenumeration
deviceShadowHandler = myAWSIoTMQTTShadowClient.createShadowHandlerWithName ("DBpyAWS1116", True) shadowCallbackContainer_Bot = shadowCallbackContainer (deviceShadowHandler)
# Lyssna på deltor
deviceShadowHandler.shadowRegisterDeltaCallback (shadowCallbackContainer_Bot.customShadowCallback_Delta)
#########################
myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", '{"state": {"wanted": {"SystemStatus": 1, "SisIlumi": 0, "AC": 0, "Garagem": "Fechada", "Temperatura": 25, "Luminosidade": 123}}} ', 0)
om _name_ == "_ huvud_":
med GPIO (pins) som gpio: kör (gpio)
Steg 6: Finalização
![Finalização Finalização](https://i.howwhatproduce.com/images/006/image-17142-22-j.webp)
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 eventuell felsökning, rekommendera och använd en MQTT Client TEST för AWS, onde é possível 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 …
Rekommenderad:
Starta ett program automatiskt när du ansluter en bärbar dator till en dockningsstation: 5 steg
![Starta ett program automatiskt när du ansluter en bärbar dator till en dockningsstation: 5 steg Starta ett program automatiskt när du ansluter en bärbar dator till en dockningsstation: 5 steg](https://i.howwhatproduce.com/images/001/image-1182-5-j.webp)
Starta ett program automatiskt när du ansluter en bärbar dator till en dockningsstation: Den här instruktionsboken handlar om hur du kör ett program eller ett program när du kopplar din bärbara dator till en dockningsstation.I det här exemplet använder jag Lenovo T480 Windows 10
Hur man gör ett smart hem med Arduino -styrrelämodul - Hemmautomationsidéer: 15 steg (med bilder)
![Hur man gör ett smart hem med Arduino -styrrelämodul - Hemmautomationsidéer: 15 steg (med bilder) Hur man gör ett smart hem med Arduino -styrrelämodul - Hemmautomationsidéer: 15 steg (med bilder)](https://i.howwhatproduce.com/images/003/image-6810-j.webp)
Hur man gör ett smart hem med Arduino -styrrelämodul | Hemmautomationsidéer: I detta hemautomatiseringsprojekt kommer vi att designa en smart hemrelämodul som kan styra fem hushållsapparater. Denna relämodul kan styras från mobil eller smartphone, IR -fjärrkontroll eller TV -fjärrkontroll, manuell omkopplare. Detta smarta relä kan också känna av
Smart hem med Arduino MKR1000 och M.I.T. Android -app: 4 steg
![Smart hem med Arduino MKR1000 och M.I.T. Android -app: 4 steg Smart hem med Arduino MKR1000 och M.I.T. Android -app: 4 steg](https://i.howwhatproduce.com/images/006/image-17301-j.webp)
Smart hem med Arduino MKR1000 och M.I.T. Android App: I den här självstudien beskriver jag hur du kan förbättra ditt smarta hem med bara några komponenter. Hjärtat i denna smarta hemdesign är Arduino MKR1000 -kortet, styrt med en app, designad på utvecklingswebbplatsen för M.I.T. (Massachusetts Institute
Lågpris smart hem - kontroll överallt i VÄRLDEN: 6 steg
![Lågpris smart hem - kontroll överallt i VÄRLDEN: 6 steg Lågpris smart hem - kontroll överallt i VÄRLDEN: 6 steg](https://i.howwhatproduce.com/images/009/image-24995-j.webp)
Lågpris smart hem - kontroll överallt i världen: Om nuförtiden arbetar båda föräldrarna för att få ett bekvämt liv för familjen. Så vi har många elektroniska apparater som värmare, AC, tvättmaskin, etc. i vårt hem. När de återvänder till hemmet ska de känna sig väldigt bekväma i ter
Smart hem med Amazon Alexa: 5 steg
![Smart hem med Amazon Alexa: 5 steg Smart hem med Amazon Alexa: 5 steg](https://i.howwhatproduce.com/images/001/image-1709-36-j.webp)
Smart hem med Amazon Alexa: Grundtanken bakom detta projekt är att styra en elektronisk apparat med Amazon Alexa eller via sin app var som helst i världen. Vi kommer att använda en Node MCU V1.0 för detta. All kod kommer att finnas på min Github -sida. Om du inte gör det någon gång