Tartalomjegyzék:
- 1. lépés: Materias Necessários
- 2. lépés: Sensores, Atuadores E Conexões
- 3. lépés: Aplicativo Para Controle Remoto
- 4. lépés: Criando Uma "coisa" Na AWS IoT
- 5. lépés: Programa Em Python
- 6. lépés: Finalização
Videó: Intelligens otthon indítása - Projeto döntő: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Projeto apresentado é parte do projeto final do curso de IoT app for 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 információk/dados das "coisas" szerver salvados felhő da AWS. Az elsődleges iteração com a DragonBoard és az IoT como um todo, decidiu-se fazer um system de 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.
1. lépés: Materias Necessários
- Helyezze el a DragonBoard -ot.
- 96Boards Linker Mezzanine
- A luminozidade Sensor de luminozidade (LDR) a Linker Mezzanine kísérője.
- A hőmérséklet -érzékelő a Linker Mezzanine kísérője.
- Botão touch que a Linker Mezzanine társaságában.
- Csatlakozzon a Linker Mezzanine -hez, utlizado para ligar o systema de A/C.
- A LED a Linker Mezzanine -t kíséri, amely képviseli az iluminação a ser ativada -t.
- Instalação das bibliotecas citadas no passo 5.
2. lépés: Sensores, Atuadores E Conexões
1. Linker Mezzanine:
Szükség esetén a mezzanine és sárkánytábla. Részletesen, olvassa el a linket
2. Érzékelő luminozidád (LDR)
Az érzékelő része a Kit da Linker Mezzanine és az ADC1 csatlakozónak. Részletes leírás:
3. Hőmérséklet érzékelő
A szenzor része a Kit da Linker Mezzanine és az ADC2 csatlakozónak. Részletes leírás:
4. Botão Touch
A szenzor része a Kit da Linker Mezzanine e deverá ser konnektornak a belépéshez D1. Este botão irá ligar/desligar o system como um todo. O acesso a este botão é somente local. Para részleteshes 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 system de A/C. Részletes leírás a tévéről:
6. LED
O LED é parte do kit Linker Mezzanine e deverá ser conactado na entrada D4. O LED reprezentálja vagy iluminação de uma casa, seja algum cômodo interno da casa ou externo, como and iluminação de um jardim. Ha úgy gondolja, hogy ellenállás 10 k 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. Részletes leírás:
7. Érzékelő de contato magnético
Ez az érzékelő a parte és a 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 szenzor é 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 or estado do sensor. O sensor utlizado neste projeto foi um N/A (normalmente aberto). Quando o imã não está próximo do sensor, o sensor reportará estado aberto. Quando o imã estiver próximo do sensor, vagy estado reportado será fechado.
3. lépés: Aplicativo Para Controle Remoto
Alkalmazás az Ionic Framework webhelyén, https://ionicframework.com/. Será mustár fazer o download e and instalação da ultima versão.
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 system 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 permanecerá ligado até a temperatura abaixar em 2 graus da tempreatura definida. Példaként, iremos Regardrar que a temperatura é de 23 graus. Quando a temperatura interior chegar a 24 graus, vagy A/C será ligado e permanecerá 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 é apenas informativa e mostra a temperatura do interior da casa.
- Luminosidade é apesas informativa e mostra o valor da luminosidade atual.
Segítség az anexo os arquivos home.html e home.ts contendos os códigos para comunicação com a cloud AWS e atualização do app.
4. lépés: Criando Uma "coisa" Na AWS IoT
A fazer vagy az IoT beállítása az AWS -hez, a keverék passos deverão és a seguidos:
1) Criar um projeto no AWS IoT atravé do link:
2) Kattintás "hozzon létre egy dolgot" e então, "Hozzon létre egyetlen dolgot". Dê o nome do projeto e clique em Next.
3) Na tela seguinte, kattintson ide "Hozzon létre egy dolgot tanúsítvány nélkül". 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. 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 a atualização dos dados a serem enviados para a Could, assim como é uma ótima ferramenta para hibaelhárítás. No código em Python que será apresentado em breve, foram utlizados alguns destes tópicos. Nas opções também podemos ver a "shadow", que nada mais e que a informationção que está na dragonboard refletida with AWS Cloud.
5. lépés: Programa Em Python
Mint seguintes bibliotecas serão needárias para a execução do program:
import spidevimport idő import naplózás import json import argparse
a libsoc import gpio -ból
időimportálás alvó állapotától a dátum -importálás dátumától, dátum -idő a gpio_96boards -tól importálja a GPIO -t az AWSIoTPythonSDK -ból. MQTTLib AWSIoTMQTTClient importálása az AWSIoTPythonSDK -ból.
Segue abaixo código complete the program:
import spidevimport idő import naplózás import json import argparse
a libsoc import gpio -ból
az időimportálástól a dátum -importálás dátumától, a dátumidőt a gpio_96boards -tól importálja a GPIO -t az AWSIoTPythonSDK -tól. MQTTLib importálja az AWSIoTMQTTClient -t az AWSIoTPythonSDK -ból.
GPIO_CS = GPIO.gpio_id ('GPIO_CS') #Analóg port
GOMB = GPIO.gpio_id ('GPIO_A') RELE = GPIO.gpio_id ('GPIO_C') LED = GPIO.gpio_id ('GPIO_G')
csapok = ((GPIO_CS, 'ki'), (BUTTON, „in”), (RELE, „out”), (LED, „out”),)
def setdevices (deltaMessagePython):
System_Status = deltaMessagePython ['SystemStatus'] Rele_Status = deltaMessagePython ['AC'] Led_Status = deltaMessagePython ['SisIlumi']
##### AC
ha Rele_Status == 1: gpio.digital_write (RELE, GPIO. HIGH)
ha Rele_Status == 0:
gpio.digital_write (RELE, GPIO. LOW)
##### Sistema de Iluminacao
ha Led_Status == 1: gpio.digital_write (LED, GPIO. HIGH) ha 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 - Hőmérséklet gpio.digital_write (GPIO_CS, GPIO. HIGH) adcout = (r [1] << 8) & 0b1100000000 adcout = adcout | (r [2] és 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 - Fényesség gpio.digital_write (GPIO_CS, GPIO. HIGH) adcoutldr = (r [1] << 8) & 0b1100000000 adcoutldr = adcoutldr | (r [2] & 0xff) adcoutldr = str (adcoutldr) now = datetime.utcnow () now_str = now.strftime ('%Y-%m-%dT%H:%M:%SZ') temperatura = "{:.2f} ". Format (adc_temp) payload_temp = '{" state ": {" toivott ": {" 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
míg igaz:
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 () if system_status == 1: value = readadc (gpio) print "SYSTEM_STATUS %d" %system_status time.sleep (3)
class shadowCallbackContainer:
def _init _ (self, deviceShadowInstance): self.deviceShadowInstance = deviceShadowInstance
# Egyéni Shadow visszahívás
def customShadowCallback_Delta (self, payload, responseStatus, token): print ("delta üzenet érkezett:") ### payload update script payloadDict = json.loads (payload) deltaMessage = json.dumps (payloadDict ["állapot"]) print "DELTA MESSAGE %s" %deltaMessage ### Kérés a bejelentett állapot frissítésére newPayload = '{"state": {"report":' + 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
####### A dolog meghatározása
# AWS IoT tanúsítványalapú kapcsolat
myMQTTClient = AWSIoTMQTTClient ("DBpyAWS1116") myMQTTClient.configureEndpoint ("a28rqf8gnpw7g.iot.us-west-2.amazonaws.com", 8883) myMQTTClient.configureCredentials ("//home/lin/s/"/home/lin/, "/home/linaro/shared/AWS/" SUA CHAVE "-private.pem.key", "/home/linaro/shared/AWS/" SEU CERTIFICADO "-certificate.pem.crt") myMQTTClient.configureOfflinePublishQueueing (- 1) # Végtelen offline közzététel sorban állás myMQTTClient.configureDrainingFrequency (2) # Leürítés: 2 Hz myMQTTClient.configureConnectDisconnectTimeout (10) # 10 mp coisajsb "," csatlakoztatva ", 0)
########################
####### Árnyék definíció
# Init AWSIoTMQTTShadowClient
myAWSIoTMQTTShadowClient = Nincs myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient ("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint ("SEU END-POINT.us-west-2T. WAWW/myaws.com CA.crt ","/home/linaro/shared/AWS/"SUA CHAVE" -private.pem.key ","/home/linaro/shared/AWS/"SEU CERTIFICADO-certificate.pem.crt")
# AWSIoTMQTTShadowClient konfigurációmyAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime (1, 32, 20) myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout (10) # 10 sec myAWSIoCQTT
# Csatlakozzon az AWS IoT -hez
myAWSIoTMQTTShadowClient.connect ()
# Készítsen eszközShadow állandó előfizetéssel
deviceShadowHandler = myAWSIoTMQTTShadowClient.createShadowHandlerWithName ("DBpyAWS1116", True) shadowCallbackContainer_Bot = shadowCallbackContainer (deviceShadowHandler)
# Figyelj a deltákra
deviceShadowHandler.shadowRegisterDeltaCallback (shadowCallbackContainer_Bot.customShadowCallback_Delta)
#########################
myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", '{"state": {"kívánt": {"SystemStatus": 1, "SisIlumi": 0, "AC": 0, "Garagem": "Fechada", "Temperatura": 25, "Luminosidade": 123}}} ', 0)
ha _név_ == "_fő_":
GPIO -val (csapok) gpio -ként: fuss (gpio)
6. lépés: Finalização
Após ter concluido os passos anteriores, deve-se inicializar o system executando o código fornecido no passo 5 e inicializar o app através do Ionic, usando o comando Ionic serve.
A hibaelhárításhoz javasoljuk, hogy használjon egy MQTT kliens TESZT-et az AWS-hez, és ellenőrizze, hogy lehet-e hitelesíteni, és menzagensként enviadas pela dragonboard-ot küldeni, hogy a formátumot korrigálja az AWS Cloud-ban:
Ajánlott:
Otto DIY osztály döntő: 4 lépés
Otto DIY osztály döntője: Ezt a projektet az Otto és az Athéni Műszaki Főiskola tette lehetővé. A kezdéshez először meg kell vásárolnia a készletet a következő linkről: https://www.ottodiy.com/store/products/49452, majd kövesse az alábbi lépéseket: https: //wikifactory.com/+OttoDIY/otto-diy
Távoli intelligens otthon: 5 lépés
Távoli intelligens otthon: Anyag: dunne gelamineerde hout platen. 1 x grondplaat és átmérőjű kisteherautó 1 cm -es nagels
Intelligens otthon Arduino -val: 11 lépés (képekkel)
Intelligens otthon Arduino -val: Helló. Megmutatom, hogyan kell saját intelligens otthonát építeni. Kijelzi a külső és belső hőmérsékletet, ha az ablak nyitva vagy csukva van, jelzi, ha esik az eső, és riaszt, ha a PIR -érzékelő mozog. Az alkalmazást androidra készítettem, hogy
Számítógépmérnöki döntő Simon szerint a játék: 3 lépés
Számítógépmérnöki döntő Simon Says Játék: Az én ötletem: A projektem a Simon Says játék. Ebben a játékban négy LED és négy gomb található. A zene a zümmögőből szól, míg a LED világít a zenének megfelelően. Ezután kezdődik a játék. Egy LED kigyullad, és a fenekére kell kattintani
Educaacion Proyecto döntő - Video Y TV Interactiva: 6 lépés
Educaacion Proyecto döntő - Video Y TV Interactiva: El producto ser á egy multimédiás interaktív rendszer, elektronikus szórakoztató á trav é s de un medio audiovisual y contar á az elemi szoftverek és a hardverek a manipulációhoz, n, teniendo en cuenta que su prop ó sito