Përmbajtje:
- Hapi 1: Materialet e nevojshme
- Hapi 2: Sensores, Atuadores E Conexões
- Hapi 3: Aplikoni për Kontrollin Remoto
- Hapi 4: Criando Uma "coisa" Na AWS IoT
- Hapi 5: Programi Em Python
- Hapi 6: Përfundimi
Video: Fillimi i një shtëpie të zgjuar - Projeto Final: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:21
Projekto paraqitjen është pjesë e projektit përfundimtar të kursit të aplikimit të IoT në Smart Home
Ojekti më i zakonshëm është seguir é parte do të përfundojë një shërbim të paraqitur pa kursin e aplikimit të IoT në një Smart Home, që përbëhet nga sensores e atuadores conectados në DrangonBoard + Linker Mezzanine, um aplicativo desenvolvido com o ionic (a ser incluido em) informações/dados das "coisas" serão salvados na cloud da AWS. Para uma Primeira iteração com a DragonBoard e IoT como todo, decidiu-se fazer um sistemi 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 temperaturë -setada e um sensor de proximidade që është instaluar pa porta të uma garagem, si një informacion për një pronësi të mundshme që ju lejon të hyni në mbyllje të seancës ose funksionimit.
Hapi 1: Materialet e nevojshme
- Vendi DragonBoard.
- 96Boards Linker Mezzanine
- Sensori i ndriçimit luminozidade (LDR) që shoqëron një Mezzanine Linker.
- Sensori i temperaturës që shoqërohet me një kat të ndërmjetëm.
- Bëj prekje që shoqëron një Linker Mezzanine.
- Relo acompanha a Linker Mezzanine, mund të përdoret për një sistem të A/C.
- Kompani LED me një kat të ndërmjetëm, që përfaqëson një iluminação dhe një shërbim.
- Instalação das bibliotecas citadas no passo 5.
Hapi 2: Sensores, Atuadores E Conexões
1. Linker Mezzanine:
Será needário conectar a placa Mezzanine në dragonboard. Për më shumë detaje, lidhja e këshilltarit
2. Sensori luminosidade (LDR)
O sensor é parte do Kit da Linker Mezzanine e deverá ser conectado na entrada ADC1. Për detajet e teknikave:
3. Sensori i Temperaturës
O sensor é parte do Kit da Linker Mezzanine e deverá në lidhjen me entradën ADC2. Për detajet e teknikave:
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. Oceso a este botão é somente lokale. Për më shumë hollësi teknike: 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. Përdorimi i ligar/desligar o sistema de A/C. Para detalhes técnicos:
6. LED
O LED part parte do kit për Linker Mezzanine e deverá në lidhjen me entradën D4. O LED përfaqësues i sistemit të iluminação në uma casa, sealgum cômodo interno da casa ou externo, como a iluminação de um jardim. Për më tepër, një rezistencë prej 10k ohm i kemi arritur në një sistem ekzistues për të zvogëluar një përdorim të sistemeve të përdorimit të sistemit, si një përvojë anteriores verificou-se conflitos com si porta analogicas. Për detajet e teknikave:
7. Sensor de contato magnético
Este sensor foi comprado a parte e não faz parte do Kit da Linker Mezzanine. Mund të përdorni një umë të vogël ose të mos përdorni ndonjë informacion për një informacion të mëparshëm se të përdorni një garazh ose të përdorni një fechada. O sensor është unt um unt unt unt ado ado por 2 2 2 2 ver ver ver ver ver ver ver ver ver ver ver ver ver ver ver ver ver ver ver ver ver ver ver o o o o sensor o sensor o sensor sensor sensor sensor sensor sensor sensor sensor sensor O sensor mund të përdoret për të gjetur N/A (normalmente aberto). Quando o imã não está próximo do sensor, ose sensor reportará estado aberto. Quando o imã estiver próximo do sensor, ose estado reportado será fechado.
Hapi 3: Aplikoni për Kontrollin Remoto
Përdorni aplikimet për Kornizën Jonike, https://ionicframework.com/. Áshtë e nevojshme të shkarkoni një instalim dhe të instaloni një version të fundit.
Aplikativo irá se comunicar (ler e atualizar os dados) com a cloud da AWS (AWS IoT- https://aws.amazon.com/iot/), në mënyrë të mëvonshme për të hyrë në plaza dragonboard para atualização dos status dos sensores e atuadores Me
- Sistema e Iluminação mostra o estado do sitesma iluminação, ligado ose desligado. Quando o nível de luminosidade baixar do valor configurado, si luzes se acenderão automatamente. 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 sistemi de A/C da casa. Também é possível definir o valor desejado da temperatura. Pritet që temperatura të jetë në temperaturën më të lartë të temperaturës së ajrit, ose A/C të lidhura me një lidhje të vazhdueshme në një temperaturë të ulur në 2 graus da tempreatura definida. Për shembull, iremos konsideruar temperaturën é de 23 graus. Mbani një temperaturë të brendshme për 24 graus, ose A/C será ligado e permanecerá ligado até a temperatura chegar a 20 graus, desligando então. Depois ciclo se repetirá.
- Garagem informon një pozicion të vazhdueshëm për garagem, se aberta ou fechada.
- Temperatura é apenas informativa e mostra a temperatura do interier da casa.
- Luminosidade é apesas informativa dhe mostra o valor da luminosidade atual.
Zgjedhja e faqeve tona në shtëpi. Html dhe home.ts konkurrojnë në programet e komunikimit në lidhje me një cloud AWS dhe atualização për aplikacionin.
Hapi 4: Criando Uma "coisa" Na AWS IoT
Para fazës ose konfigurimit të IoT në AWS, në seguintes passos deverão ser seguidos:
1) Criar um projeto pa AWS IoT atravé bëni lidhjen:
2) Kliko "krijoni një gjë" dhe pastaj, "Krijoni një gjë të vetme". Dê o nome do projeto e clique em Next.
3) Na zgjidhni, zgjidhni "Krijoni një gjë pa certifikatë". Mësime të thjeshta që nuk përdorin certifikata për kërkime práticas, por ne nuk rekomandojmë një fazë ose përdorim të certifikatave të IoT.
4) Nesse momento, sua "coisa" já estará criada. Clique no botão da "coisa" que foi criado para abrir a tela com si opções. Ju mund të përdorni një skedar MQTT për të përdorur shërbimet e përdorura për një fazë të caktuar të përdorimit të të dhënave paraprake për një Could, assim com é uma ótima ferramenta për zgjidhjen e problemeve. No código em Python que será apresentado em breve, foram utlizados alguns destes tópicos. Ju mund të lexoni podemos në një "hije", që mund të jetë një informacion që ju lejon të rifilloni dragonboard në AWS Cloud.
Hapi 5: Programi Em Python
As seguintes bibliotecas serão needárias para një ekzekutimi të programit:
import spidevimport kohë import logging import json import argparse
nga gbio importi libsoc
nga koha e importimit gjumi nga data e importimit të datës, koha e datës nga gpio_96boards import GPIO nga AWSIoTPythonSDK. MQTTLib import AWSIoTMQTTClient nga AWSIoTPythonSDK. MQTTLib
Segue abaixo código completeo do programa:
import spidevimport kohë import log log import json import argparse
nga gbio importi libsoc
nga koha e importimit fle nga data e importit data data, ora data nga gpio_96board import GPIO nga AWSIoTPythonSDK. MQTTLib import AWSIoTMQTTClient nga AWSIoTPythonSDK. MQTTLib import AWSIoTMQTTShadowClient
GPIO_CS = GPIO.gpio_id ('GPIO_CS') #Port Analog
BUTTON = GPIO.gpio_id ('GPIO_A') RELE = GPIO.gpio_id ('GPIO_C') LED = GPIO.gpio_id ('GPIO_G')
kunjat = ((GPIO_CS, 'jashtë'), (BUTONI, "brenda"), (RELE, "jashtë"), (LED, "jashtë"),)
def setdevices (deltaMessagePython):
System_Status = deltaMessagePython ['SystemStatus'] Rele_Status = deltaMessagePython ['AC'] Led_Status = deltaMessagePython ['SisIlumi']
##### AC
nëse Rele_Status == 1: gpio.digital_write (RELE, GPIO. HIGHT)
nëse Rele_Status == 0:
gpio.digital_write (RELE, GPIO. LOW)
##### Sistema e Iluminacao
nëse Led_Status == 1: gpio.digital_write (LED, GPIO. HIGH) nëse 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. HIGHT) adcout = (r] << 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 - Shkëlqim gpio.digital_write (GPIO_CS, GPIO. HIGHT) adcoutldr = (] << 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 = '{" gjendja ": {" e dëshiruar ": {" Luminosidade ":' + adcoutldr + '," Temperatura ":' + temperatura + '}}}' myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", payload_temp, 0) kthehu r
def desliga ():
gpio.digital_write (RELE, GPIO. LOW) gpio.digital_write (LED, GPIO. LOW)
def run (gpio):
statusi i sistemit = 1
ndërsa e vërtetë:
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 tjetër: system_status = 0 desliga () nëse system_status == 1: value = readadc (gpio) print "SYSTEM_STATUS %d" %system_status time.sleep (3)
klasa shadowCallbackContainer:
def _init _ (vetë, pajisjeShadowInstance): self.deviceShadowInstance = pajisjeShadowInstance
# Kthimi i thirrjes me porosi Shadow
def customShadowCallback_Delta (vetë, ngarkesë, përgjigjeStatus, shenjë): print ("Marrë një mesazh delta:") ### skript i përditësimit të ngarkesës payloadDict = json.loads (payload) deltaMessage = json.dumps (payloadDict ["state"]) print "DELTA MESSAGE %s" %deltaMessage ### Kërkesë për përditësimin e gjendjes së raportuar newPayload = '{"state": {"raportuar":' + deltaMessage + '}}' deltaMessagePython = json.loads (deltaMessage) setdevices (deltaMessagePython)
spi = spidev. SpiDev ()
spi.hapur (0, 0) spi.max_speed_hz = 10000 spi.mode = 0b00 spi.bits_per_word = 8
####### Përkufizimi i gjërave
# Lidhje e bazuar në certifikatën AoS IoT
myMQTTClient = AWSIoTMQTTClient ("DBpyAWS1116") myMQTTClient.configureEndpoint ("a28rqf8gnpw7g.iot.us-west-2.amazonaws.com", 8883) myMQTTClient.configureCredentials ("/home/lin/CA/lin/, "/home/linaro/shared/AWS/" SUA CHAVE "-private.pem.key", "/home/linaro/shared/AWS/" SEU CERTIFICADO "-certificate.pem.crt") myMQTTClient.configureOfflinePublishQueueing (- 1) # Infinite offline Publish queue myMQTTClient.configureDrainingFrekuenca (2) # Kullimi: 2 Hz myMQTTClient.configureConnectDisconnectTimeout (10) # 10 sec myMQTTClient.configureMQTTOperationTimeout (5) # myconconTQ coisajsb "," lidhur ", 0)
########################
####### Përkufizimi i hijes
# Filloni AWSIoTMQTTShadowClient
myAWSIoTMQTTShadowClient = Asnjë myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient ("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint ("SEU END-POINT.us-west-2.amazonaws.com", 8883) myAWSIoTMQTTShadowClient.configureCredentials ("/ home / linaro / ndarë / AWS / root- CA.crt ","/home/linaro/shared/AWS/"SUA CHAVE" -private.pem.key ","/home/linaro/shared/AWS/"SEU CERTIFICADO-certificate.pem.crt")
# AWSIoTMQTTShadowClient configurationmyAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime (1, 32, 20) myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout (10) # 10 secow
# Lidhu me AWS IoT
myAWSIoTMQTTShadowClient.connect ()
# Krijoni një pajisjeShije me pajtim të vazhdueshëm
deviceShadowHandler = myAWSIoTMQTTShadowClient.createShadowHandlerWithName ("DBpyAWS1116", E vërtetë) shadowCallbackContainer_Bot = shadowCallbackContainer (pajisjeShadowHandler)
# Dëgjoni në delta
pajisjeShadowHandler.shadowRegisterDeltaCallback (hijeCallbackContainer_Bot.customShadowCallback_Delta)
#########################
myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", '{"gjendja": {"e dëshiruar": {"SystemStatus": 1, "SisIlumi": 0, "AC": 0, "Garagem": "Fechada", "Temperatura": 25, "Luminosidade": 123}}} ', 0)
nëse _name_ == "_majt_":
me GPIO (kunjat) si gpio: drejto (gpio)
Hapi 6: Përfundimi
Após ter concluido os passos anteriores, deve-se inicializar ose sistemi ekzekutues i código fornecido no passo 5 dhe inicializar o app através do Ionic, usando o comando Ionic serve.
Për të zgjidhur problemet, rekomandoni të përdorni një funksionalitet të MQTT Client TEST në AWS, nëse është e mundur të verifikoni si mjete të menjëhershme të dragonboard-it për të dërguar një formë të formës së AWS Cloud: https://us-west-2.console.aws.amazon.com/iotv2/hom…
Recommended:
Dritë LED e tavolinës së zgjuar - Ndriçim i zgjuar W/ Arduino - Hapësira e punës Neopixels: 10 hapa (me fotografi)
Dritë LED e tavolinës së zgjuar | Ndriçim i zgjuar W/ Arduino | Neopixels Workspace: Tani një ditë ne po kalojmë shumë kohë në shtëpi, duke studiuar dhe punuar virtualisht, kështu që pse të mos e bëjmë hapësirën tonë të punës më të madhe me një sistem ndriçimi të personalizuar dhe të zgjuar të bazuar në LED Arduino dhe Ws2812b. Këtu po ju tregoj se si të ndërtoni Smart tuaj Drita LED e tavolinës që
Ora me alarm e ngritur e zgjuar Drita e zgjuar: 8 hapa (me fotografi)
Ora me Alarm të Upcycled Light Light: Në këtë projekt unë nxjerr në qarkullim një orë alarmi të thyer plotësisht të erës. Faqja e orës zëvendësohet me 12 LED, të ndriçuara nga një shirit LED rreth buzës së orës. 12 LED tregojnë kohën dhe shiriti LED është programuar të veprojë si një alarm, duke u kthyer
(2) Fillimi për të bërë një lojë - Bërja e një ekrani spërkatës në Unity3D: 9 hapa
(2) Fillimi për të bërë një lojë - Krijimi i një spërkatjeje në Unity3D: Në këtë Instructable do të mësoni se si të bëni një ekran të thjeshtë spërkatjeje në Unity3D. Së pari, ne do të hapim Unitetin
Kopshtari i zgjuar i bazuar në IoT dhe Bujqësia e Zgjuar duke përdorur ESP32: 7 hapa
Kopshtari i zgjuar i bazuar në IoT dhe Bujqësia e Zgjuar Duke përdorur ESP32: Bota po ndryshon me kalimin e kohës dhe kështu bujqësinë. Në ditët e sotme, njerëzit po integrojnë elektronikën në çdo fushë dhe bujqësia nuk është përjashtim për këtë. Ky bashkim i elektronikës në bujqësi po ndihmon fermerët dhe njerëzit që menaxhojnë kopshtet. Në këtë
Telefonimi i zgjuar - një telefon tradicional i zgjuar automatikisht: 8 hapa
Telefonimi i mençur-një telefon inteligjent tradicional që korrigjon: Smart Dial është një telefon inteligjent që korrigjohet automatikisht, i krijuar për të moshuarit me nevoja të veçanta dhe u mundëson të moshuarve të telefonojnë drejtpërdrejt nga telefonat tradicionalë me të cilët janë mësuar. Ishte vetëm përmes vullnetarizmit në një qendër lokale të kujdesit për të moshuarit që unë