Orodha ya maudhui:
- Hatua ya 1: Materias Necessários
- Hatua ya 2: Uchunguzi, Mtaalam E Conexões
- Hatua ya 3: Aplicativo Para Controle Remoto
- Hatua ya 4: Criando Uma "coisa" Na AWS IoT
- Hatua ya 5: Programu Em Python
- Hatua ya 6: Finalização
Video: Kuanzisha Nyumba ya Smart - Mwisho wa Projeto: Hatua 6
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:53
Projeto apresentado ni sehemu ya mwisho kufanya mpango wa IoT aplicado Smart Home
Kwa sababu hii kuna uwezekano mkubwa wa kumaliza mpango wa mwisho wa huduma inayotumiwa na Nyumba ya Smart, ambayo inajumuisha vituo vya DrangonBoard + Kiunganishi cha Mezzanine, ambayo inaweza kutumika kama sehemu ya kupendeza. informações / dados das "coisas" serão salvados na wingu la AWS. Para uma primeira iteração com a DragonBoard na IoT como umodo, decidiu-se fazer um sistema 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 ya utaftaji wa kifaa cha karibu na eneo la uma, kwa kutumia habari inayofaa kwa habari inayofaa kwa sababu ya kufanya hivyo.
Hatua ya 1: Materias Necessários
- Weka DragonBoard. https://www.amazon.com/DragonBoard-410C-IoT-Start …….
- 96Bodi Kiungo Mezzanine
- Sensor de luminozidade (LDR) ni kampuni ya Linker Mezzanine.
- Sensor de temperatura ni nini kinachounganisha Mezzanine.
- Bonyeza kugusa acompanha ya Kiunganishi Mezzanine.
- Relé acompanha a Linker Mezzanine, utlizado para ligar o systema de A / C.
- LED acompanha na Kiunganishi Mezzanine, ambayo inawakilisha orodha mpya ya huduma.
- Instalação das bibliotecas citadas no passo 5.
Hatua ya 2: Uchunguzi, Mtaalam E Conexões
1. Kiunganishi Mezzanine:
Será needário conectar a placa Mezzanine na joka. Para detalhes, kiungo cha ushauri
2. Mwangaza wa sensorer (LDR)
Kihisi ni sehemu ya Kit da Linker Mezzanine na itabadilisha mfumo wa kuingiza ADC1. Para detalhes técnicos:
3. Sensor de Temperatura
Kihisi ni sehemu ya Kit da Linker Mezzanine na itabadilisha mfumo wa kuingiza ADC2. Para detalhes técnicos:
4. Botão Kugusa
Kihisi ni sehemu ya Kit da Linker Mezzanine na itabadilisha muundo wa D1. Este botão irá ligar / desligar o sistema como um todo. Oesso a este botão é somente local. Para detalhes técnicos: https://linksprite.com/wiki/index.php5? Title = Touch_…
5. Jamaa tena
Unashirikiana na Kit da Linker Mezzanine na ubadilishe njia ya kuingiza D2. Ele será utiizado para ligar / desligar o sistema de A / C. Para detalhes técnicos:
6. LED
O LED ni sehemu ya kit na Kiunganishi cha Mezzanine na itabadilisha muundo wa D4. O inawakilisha wawakilishi wa LED kwa iluminação de uma casa, seja algum cômodo interno da casa ou externo, como a iluminação de um jardim. Kwa sababu ya kupinga 10k ohm em sério com o já existente para diminuir a corrente utilizada pelo sistema, jé que em experiências anteriores verificou-se conflitos com as portas analógicas. Para detalhes técnicos:
7. Sensor de contato magnético
Kihisi hiki kinajumuisha sehemu moja ya sehemu ya Kit da Linker Mezzanine. Ele será usado em uma janela ou no portão de uma garagem for informar se a janela / garagem está aberta ou fechada. O sensor con um conjunto formado for 2 pequenas peças (ver foto do Step acima), o sensor proprimamente dito e um pequeno "imã", ni nini eneo la karibu la kufanya sensorer ya kifaa chako. O sensor sensizado neste projeto foi um N / A (kawaida ya kawaida). Quando o mã não está próximo do sensor, o sensor reportará estado aberto. Quando o imã estiver próximo do sensor, au estado reportado será fechado.
Hatua ya 3: Aplicativo Para Controle Remoto
O aplicativo foi desenvolvido com o Mfumo wa Ionic, https://ionicframework.com/. Huduma hii inahitaji kupakuliwa na kutekelezwa kwa njia ya mwisho.
O aplicativo irá se comunicar (ler e atualizar os dados) com a wingu da AWS (AWS IoT- https://aws.amazon.com/iot/), ikiwa ni pamoja na huduma hii inaweza kutumika wakati wa kuweka ubao wa jadi kwa atualização dos status dos sensores e atuadores.
- Sistema de Iluminação mostra o estado do sitema de iluminação, ligado ou desligado. Quando o nível de luminosidade bastrong do valor configurado, as luzes se acenderão automaticamente. Quando a intensidade de luz aumentar além do valor definition, as luzes se apagarão.
- O botão A / C inahusiana tena, ikiwa ni pamoja na maoni yako juu ya A / C kwa kila siku. Também é possível definir o valor desejado da temperatura. Assim que a temperatura da casa estiver maior do the temperatura de acionamento, o A / C será ligado e permanecerá ligado at a temperatura abaixar em 2 graus da tempreatura definida. Kwa mfano, maelezo zaidi ni kama ilivyo kwa 23 graus. Quando a temperatura interior chegar a 24 graus, o A / C será ligado na permanecerá ligado at a temperatura chegar a 20 graus, desligando então. Depois o ciclo se repetirá.
- Garagem inapeana nafasi ya kawaida ya karakana, se aberta ou fechada.
- Temperatura in the apenas informativa and mostra a temperatura do interior da casa.
- Luminosidade ni apesas informativa na most valor da luminosidade atual.
Segue em anexo os arquivos home.html na home.ts contendos os códigos kwa comunicação com wingu AWS na programu ya kufanya.
Hatua ya 4: Criando Uma "coisa" Na AWS IoT
Usanidi wa mpango wa kuanzisha IOT na AWS, unaweza kuchagua njia zingine za kufanya kazi:
1) Criar um projeto hakuna AWS IoT inayofaa kiungo:
2) Clique "tengeneza kitu" e então, "Unda kitu kimoja". Je, wewe ni mtu kufanya projeto na sehemu nyingine Ijayo.
3) Tazama, angalia "Unda kitu bila cheti". Mafunzo haya ni ya matumizi ya vyeti vya kutafakari kwa vitendo, kwa sababu hiyo ni kumbukumbu ya habari ya uso wa IOTT.
4) Nesse momento, sua "coisa" unaweza kusoma. Tutaangalia "coisa" hii kwa sababu tunatafuta njia mpya ya kufanya kazi. Nessa inawasilisha maoni yako juu ya maoni ya MQTT ikiwa ni pamoja na huduma kwa wahusika kwa sababu inaweza kutumika kwa njia inayowezekana, ikiwa ni pamoja na uamuzi wa utatuzi wa suluhisho. Hakuna código em Python ikiwa ni pamoja na hii, kwa ajili ya utaftaji wa habari wa hali ya juu. Nas opções também podemos ver a "shadow", ni kwa nini tunataka kujua kuhusu maelezo haya ya dragonboard refletida na AWS Cloud.
Hatua ya 5: Programu Em Python
Kama seguintes bibliotecas serão needárias para a execução do programa:
kuagiza spidevimport wakati kuagiza kuagiza logi kuagiza json kuagiza argparse
kutoka kwa libsoc kuagiza gpio
kutoka wakati wa kuagiza usingizi kutoka tarehe ya kuagiza ya wakati, wakati wa gpio_96 kuagiza GPIO kutoka AWSIoTPythonSDK. MQTTLib kuagiza AWSIoTMQTTClient kutoka AWSIoTPythonSDK. MQTTLib
Soma abaixo código completo kufanya programu:
kuagiza spidevimport wakati kuagiza kuagiza logi kuagiza json kuagiza argparse
kutoka kwa libsoc kuagiza gpio
kutoka wakati wa kuagiza usingizi kutoka kwa tarehe ya kuagiza ya wakati, wakati wa gpio_96 kuagiza GPIO kutoka AWSIoTPythonSDK. MQTTLib ingiza AWSIoTMQTTClient kutoka AWSIoTPythonSDK. MQTTLib ingiza AWSIoTMQTTShadow
GPIO_CS = GPIO.gpio_id ('GPIO_CS') # Analog Port
BUTTON = GPIO.gpio_id ('GPIO_A') RELE = GPIO.gpio_id ('GPIO_C') LED = GPIO.
pini = ((GPIO_CS, 'nje'), (BUTTON, 'in'), (RELE, 'nje'), (LED, 'nje'),)
def setdevices (deltaMessagePython):
System_Status = deltaMessagePython ['SystemStatus'] Rele_Status = deltaMessagePython ['AC'] Led_Status = deltaMessagePython ['SisIlumi']
##### AC
ikiwa Rele_Status == 1: gpio.digital_write (RELE, GPIO. HIGH)
ikiwa Rele_Status == 0:
gpio.digital_write (RELE, GPIO. LOW)
##### Sistema de Iluminacao
ikiwa Led_Status == 1: gpio.digital_write (LED, GPIO. HIGH) ikiwa Led_Status == 0: gpio.digital_write (LED, GPIO. LOW)
def readadc (gpio):
gpio.digital_write (GPIO_CS, GPIO. HIGH)
wakati. kulala (0.0002) gpio.digital_write (GPIO_CS, GPIO. LOW) r = spi.xfer2 ([0x01, 0xA0, 0x00]) # ADC2 - Joto 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)
saa. (0.0002) gpio.digital_write (GPIO_CS, GPIO. LOW) r = spi.xfer2 ([0x01, 0x80, 0x00]) # ADC1 - Mwangaza gpio.digital_write (GPIO_CS, GPIO. HIGH) adcoutldr = (r [1] << 8) & 0b1100000000 adcoutldr = adcoutldr | (r [2] & 0xff) adcoutldr = str (adcoutldr) sasa = datetime.utcnow () now_str = sasa. wakati wa saa ('% Y-% m-% dT% H:% M:% SZ') temperatura = "{ ".2f}" ("$ aws / mambo / DBpyAWS1116 / kivuli / sasisho", payload_temp, 0) kurudi r
def desliga ():
gpio.digital_write (RELE, GPIO. LOW) gpio.digital_write (LED, GPIO. LOW)
kukimbia (gpio):
mfumo_status = 1
wakati Kweli:
time.sleep (2) button_value = gpio.digital_read (BUTTON) chapa ("----") time.sleep (0.25) if button_value == 1: if system_status == 0: system_status = 1 else: system_status = 0 desliga () ikiwa system_status == 1: value = readadc (gpio) chapa "SYSTEM_STATUS% d"% system_status time.lala (3)
kivuli cha darasaCallbackContainer:
def _init _ (binafsi, kifaaShadowInstance): self.deviceShadowInstance = deviceShadowInstance
# Upigaji Kelele wa kawaida
def customShadowCallback_Delta (ubinafsi, malipo, jibu, ishara): chapisha ("Nimepokea ujumbe wa delta:") # # "DELTA UJUMBE% s"% deltaMessage ### Omba kusasisha hali iliyoripotiwa newPayload = '{"state": {"reported":' + deltaMessage + '}}' deltaMessagePython = json.loads (deltaMessage) setdevices (deltaMessagePython)
spi = spidev. SpiDev ()
kufungua (0, 0) spi.max_speed_hz = 10000 spi.mode = 0b00 spi.bits_per_word = 8
####### Ufafanuzi wa kitu
Uunganisho msingi wa cheti # AWS
myMQTTClient = AWSIoTMQTTClient ("DBpyAWS1116") myMQTTClient.configureEndpoint ("a28rqf8gnpw7g.iot.us-west-2.amazonaws.com", 8883) myMQTTClient.configureCredentials (/ / home / / / / / /, "/ home / linaro / shared / AWS /" SUA CHAVE "-private.pem.key", "/ home / linaro / shared / AWS /" SEU CERTIFICADO "-certificate.pem.crt") myMQTTClient.configureOfflinePublishQueueing (- 1) # Infinite offline Chapisha foleni ya myMQTTClient.configureDrainingFrequency (2) # Kuondoa: 2 Hz myMQTTClient.configureConnectDisconnectTimeout (10) # 10 sec myMQTTClient.configureMQTTOperationTimeout (5) # 5 sec #const. coisajsb "," imeunganishwa ", 0)
########################
####### Ufafanuzi wa kivuli
# Init AWSIoTMQTTShadowMteja
myAWSIoTMQTTShadowClient = Hakuna myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient ("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint ("SEU END-POINT.us-west-2.amazonaws.com", 8883) myAWSIoTMQTTShadowClient.configureCredentials ("/ nyumbani / linaro / pamoja / AWS / root- CA.crt "," / nyumba / linaro / iliyoshirikiwa / AWS / "SUA CHAVE" -private.pem.key "," / home / linaro / shared / AWS / "SEU CERTIFICADO-certificate.pem.crt")
# AWSIo TMQTTShadowClient ConfigurationmyAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime (1, 32, 20) myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout (10) # 10 sec myAWSIoTMQTTSHodentClient
# Unganisha na AWS IoT
myAWSIoTMQTTShadowClient.connect ()
# Unda Kionyeshi cha kifaa na usajili unaoendelea
kifaaShadowHandler = myAWSIoTMQTTShadowClient.createShadowHandlerWithName ("DBpyAWS1116", True) shadowCallbackContainer_Bot = shadowCallbackContainer (kifaaShadowHandler)
# Sikiza kwenye deltas
kifaaShadowHandler.shadowRegisterDeltaCallback (shadowCallbackContainer_Bot.customShadowCallback_Delta)
#########################
myMQTTClient.publish ("$ aws / things / DBpyAWS1116 / shadow / update", '{"state": {"taka": {"SystemStatus": 1, "SisIlumi": 0, "AC": 0, "Garagem": "Fechada", "Temperatura": 25, "Luminosidade": 123}}}} ', 0)
ikiwa _name_ == "_main_":
na GPIO (pini) kama gpio: kukimbia (gpio)
Hatua ya 6: Finalização
Após ter concluido os passos anteriores, deve-se inicializar o sistema executando o código fornecido no passo 5 and inicializar o app através do Ionic, usando o comando Ionic serve.
Ili kupata shida, tumia tena Jaribio la Mteja wa MQTT kufanya AWS, iweze kutambuliwa kama njia ya kutumia mensagens enviadas kwenye joka la joka inayoweza kutekelezwa na fomu ya AWS Cloud: https://us-west-2.console.aws.amazon.com / iotv2 / hom…
Ilipendekeza:
Chomeka na Cheza Uonyesho wa Sura ya CO2 Pamoja na NodeMCU / ESP8266 ya Shule, Bustani za Nyumba au Nyumba Yako: Hatua 7
Chomeka na Cheza Onyesho la Sura ya CO2 Pamoja na NodeMCU / ESP8266 kwa Shule, Bustani za Nyumba au Nyumba Yako: Nitaenda kukuonyesha jinsi ya kujenga haraka kuziba & cheza sensa ya CO2 ambapo vitu vyote vya mradi vitaunganishwa na nyaya za DuPont. Kutakuwa na vidokezo 5 tu ambavyo vinahitaji kuuzwa, kwa sababu sikuuza kabla ya mradi huu kabisa
Nyumba ya Smart Smart: Hatua 5
Nyumba ya Smart Smart: Materialen: dunne gelamineerde hout platen. 1 x grondplaat alikutana na kipenyo cha van 1 cmkleine nagels 2 x mikanda ya mkate mikate ya plakbandveel alikutana na kipenyo 0.3 cmveel jumper kabels gereedschap: boormachinelijmpistoolsoldeerboutschroevendra
Misingi ya VBScript - Kuanzisha Hati zako, Ucheleweshaji na Zaidi !: Hatua 5
Misingi ya VBScript - Kuanzisha Maandiko Yako, Kuchelewesha na Zaidi !: Karibu kwenye mafunzo yangu ya kwanza juu ya jinsi ya kutengeneza VBScript na notepad. Na faili za.vbs, unaweza kuunda pranks za kuchekesha au virusi hatari. Katika mafunzo haya, nitakuonyesha amri za msingi kama kuanza hati yako, kufungua faili na mengi zaidi. Katika t
Kuanzisha OS ya MotionEye kwenye Raspberry Pi Zero W: Hatua 5
Kuanzisha OS ya MotionEye kwenye Raspberry Pi Zero W: Baada ya kujaribu bodi ya ESP32-CAM kwenye video zilizopita, ni salama kusema kwamba ubora wa video sio mzuri sana. Ni bodi thabiti na yenye gharama kubwa sana ambayo pia ni rahisi kutumia na hii inafanya kuwa kamili kwa Kompyuta. Lakini
Nyumba ya Android (dhibiti Nyumba Yako Kutoka Kwenye Simu Yako): Hatua 4
Nyumba ya Android (dhibiti Nyumba Yako Kutoka Kwenye Simu Yako): Mpango wangu wa mwisho ni kuwa na nyumba yangu mfukoni, swichi zake, sensorer na usalama. halafu auto mate itUtangulizi: Halo Ich bin zakriya na hii " Nyumba ya Android " ni mradi wangu, mradi huu ni wa kwanza kutoka kwa mafundisho manne yanayokuja, Katika