Բովանդակություն:
- Քայլ 1: Անհրաժեշտ նյութեր
- Քայլ 2: Sensores, Atuadores E Conexões
- Քայլ 3. Կիրառեք հեռակառավարման վահանակը
- Քայլ 4. Criando Uma «coisa» Na AWS IoT
- Քայլ 5: Programa Em Python
- Քայլ 6: Վերջնականացում
Video: Խելացի տուն սկսել - Projeto Final: 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Առաջարկում ենք ներկայացնել մի մաս, որը կներկայացնի խելացի տուն IoT- ի կիրառումը:
O projeto mostrado a seguir é parte do projeto final a ser apresentado no curso de IoT aplicada a Smart Home- ը, որը բաղկացած է sensores e atuadores conectados- ից DrangonBoard + Linker Mezzanine, um aplicativo desenvolvido com o ionic em bre (eve incluido) informações/dados das "coisas" serão salvados na cloud da AWS. Para uma Primeira iteração com a DragonBoard e IoT como um todo, 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 -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: Անհրաժեշտ նյութեր
- Տեղադրեք DragonBoard- ը:
- 96Boards Linker Mezzanine
- Սենսոր de luminozidade (LDR) que 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- ը, որն օգտագործվում է A/C համակարգում:
- LED ընկերություն և Linker Mezzanine, որը ներկայացնում է իր լուսավորությունն ու ծառայությունը:
- Instalação das bibliotecas citadas no passo 5.
Քայլ 2: Sensores, Atuadores E Conexões
1. Linker Mezzanine:
Será needário conectar a placa Mezzanine na dragonboard: Մանրամասների համար, խորհրդատվական հղում
2. Սենսոր luminosidade (LDR)
O sensor é parte do Kit da Linker Mezzanine e deverá ser conectado na entrada ADC1. Մանրամասները տեխնիկայի մասին.
3. Sensor de Temperatura
O sensor é parte do Kit da Linker Mezzanine e deverá ser conectado na entrada ADC2. Մանրամասները տեխնիկայի մասին.
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 տեղական. Մանրամասները տեխնիկայի մասին. Http: //linksprite.com/wiki/index.php5? Title = Touch_…
5. Ռելե
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. Para detalhes técnicos:
6. LED
O LED é parte do kit da Linker Mezzanine e deverá ser conectado na entrada D4. O LED- ի ներկայացուցչությունը, որը ներկայացնում է համակարգերի դե -լուսավորումը, կարող է օգտագործվել որպես արտաքին կամ արտաքին միջավայրի, ինչպես նաև լուսավորության տարրեր: Եթե մենք դիմում ենք այն 10k ohm em sério com o já գոյություն ունեցող պարամետրերի նվազեցման համար, որոնք կօգնեն օգտագործել ձեր համակարգը, այն կարող է օգտագործվել որպես անալոգիկ անալիզներ: Մանրամասները տեխնիկայի մասին.
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 um unt conj unt por 2 2 2 2 2 ver ver (ver foto do Step acima), o sensor proprimamente dito e um pequeno "imã", que ao aproximar-se do sensor iná 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 sensor reportará estado aberto: Quando o imã estiver próximo do sensor, o estado reportado será fechado:
Քայլ 3. Կիրառեք հեռակառավարման վահանակը
Olicanto foi desenvolvido com o Ionic Framework, https://ionicframework.com/: Será needário fazer o download and a 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 կամ 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 permanecerá ligado até a temperatura abaixar em 2 graus da tempreatura definida. Ex exemplo, iremos konsiderrar que a temperatura é de 23 graus. Quando a temperatura Interior chegar a 24 graus, o A/C será ligado e permanecerá ligado até 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:
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.
Քայլ 4. Criando Uma «coisa» Na AWS IoT
Para fazer o setup do IoT na AWS, os seguintes passos deverão ser seguidos:
1) Criar um projeto no AWS IoT atravé do link:
2) Կտտացրեք «ստեղծել մի բան» և նախ ՝ «Ստեղծել մեկ բան»: Dê o nome do projeto e clique em Հաջորդ.
3) Na tela seguinte, սեղմեք «Ստեղծեք իր առանց վկայագրի»: Nesse tutorial não iremos utilisar os certificados for questões pricáticas, porém não é ome recéndandado 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. MQTT, որն օգտագործվում է մեր օգտվողների համար, քանի որ դա կարող է առաջանալ, քանի որ դա կարող է տեղի ունենալ, ինչպես նաև կարող է լուծել խնդիրները լուծելու համար: 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", որը թույլ է տալիս ստանալ տեղեկատվություն dragonboard refletida- ի և AWS Cloud- ի մասին:
Քայլ 5: Programa Em Python
As seguintes bibliotecas serão needárias para a execução do programa:
ներմուծել spidevimport ժամանակ ներմուծել անտառահատումներ ներմուծել json ներմուծել argparse
libsoc ներմուծման gpio- ից
ժամանակից ներմուծում քուն տվյալների ժամի ներմուծման ամսաթվից, տվյալների ժամ gpio_96 տախտակներից GPIO ներմուծում AWSIoTPythonSDK. MQTTLib ներմուծում AWSIoTMQTTClient AWSIoTPythonSDK. MQTTLib
Segue abaixo código complete programa:
ներմուծել spidevimport ժամանակ ներմուծել անտառահատումներ ներմուծել json ներմուծել argparse
libsoc ներմուծման gpio- ից
ժամանակից ներմուծում քնում տվյալների ժամից
GPIO_CS = GPIO.gpio_id ('GPIO_CS') #Անալոգային նավահանգիստ
BUTTON = GPIO.gpio_id ('GPIO_A') RELE = GPIO.gpio_id ('GPIO_C') LED = GPIO.gpio_id ('GPIO_G')
կապում = ((GPIO_CS, «դուրս»), (ԿՈUTՅԹ, «ներս»), (RELE, «դուրս»), (LED, «դուրս»),)
def setdevices (deltaMessagePython):
System_Status = deltaMessagePython ['SystemStatus'] Rele_Status = deltaMessagePython ['AC'] Led_Status = deltaMessagePython ['SisIlumi']
##### AC
եթե Rele_Status == 1: gpio.digital_write (RELE, GPIO. HIGH)
եթե Rele_Status == 0:
gpio.digital_write (RELE, GPIO. LOW)
##### Sistema de Iluminacao
եթե Led_Status == 1: gpio.digital_write (LED, GPIO. HIGH) եթե 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 - gերմաստիճանի gpio.digital_write (GPIO_CS, GPIO. HIGH) 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 - Luminosity gpio.digital_write (GPIO_CS, GPIO. HIGH) 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 = '{" պետություն ": {" ցանկալի ": {" Luminosidade ":' + adcoutldr + '," Temperatura ":' + temperatura + '}}}' myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", payload_temp, 0) վերադարձ r
def desliga ():
gpio.digital_write (RELE, GPIO. LOW) gpio.digital_write (LED, GPIO. LOW)
def run (gpio):
համակարգի_կարգավիճակ = 1
իսկ ճշմարիտ:
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 ուրիշ: system_status = 0 desliga () եթե system_status == 1: value = readadc (gpio) տպել "SYSTEM_STATUS %d" %system_status time.sleep (3)
class shadowCallbackContainer:
def _init _ (self, deviceShadowInstance): self.deviceShadowInstance = deviceShadowInstance
# Պատվերով ստվերային հետադարձ
def customShadowCallback_Delta (self, payload, respondStatus, token): print («Ստացվել է դելտայի հաղորդագրություն») ### payload update script payloadDict = json.loads (payload) deltaMessage = json.dumps (payloadDict ["state"]) print "DELTA MESSAGE %s" %deltaMessage ### Հայցված վիճակի թարմացման խնդրանք 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
####### Բանի սահմանում
# AWS IoT վկայագրի վրա հիմնված կապ
myMQTTClient = AWSIoTMQTTClient ("DBpyAWS1116") myMQTTClient.configureEndpoint ("a28rqf8gnpw7g.iot.us-west-2.amazonaws.com", 8883) myMQTTClient.configureCredentials ("/home/lin/CA. lin/CA. " 1) # Անսահման անցանց Հրապարակել հերթ իմ coisajsb »,« կապված », 0)
########################
####### Ստվերային սահմանում
# Սկսեք AWSIoTMQTTShadowClient- ը
myAWSIoTMQTTShadowClient = None myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient («DBpyAWS1116») myAWSIoTMQTTShadowClient.configureEndpoint («seu END-POINT.us-west-2.amazonaws.com», 8883) myAWSIoTMQTTShadowClient.configureCredentials ("/ տուն / linaro / կիսում / Հայջրմուղկոյուղի / 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 վրկ myAWSIoTMQTTShadowClient.configureMQTTOperationTimeout (5) # 5 վրկ
# Միացեք AWS IoT- ին
myAWSIoTMQTTShadowClient.connect ()
# Ստեղծեք սարք Ստվեր համառ բաժանորդագրությամբ
deviceShadowHandler = myAWSIoTMQTTShadowClient.createShadowHandlerWithName ("DBpyAWS1116", True) shadowCallbackContainer_Bot = shadowCallbackContainer (deviceShadowHandler)
# Լսիր դելտաներով
deviceShadowHandler.shadowRegisterDeltaCallback (shadowCallbackContainer_Bot.customShadowCallback_Delta)
#########################
myMQTTClient.publish ("$ aws/things/DBpyAWS1116/ստվեր/թարմացում", '{"վիճակ": {"ցանկալի": {"SystemStatus": 1, "SisIlumi": 0, "AC": 0, "Garagem" ՝ «Fechada», «Temperatura» ՝ 25, «Luminosidade» ՝ 123}}} ', 0)
եթե _name_ == "_ հիմնական_":
GPIO- ով (կապում) որպես gpio: վազում (gpio)
Քայլ 6: Վերջնականացում
Após ter concluido os passos anteriores, deve-se inicializar o sistema execandando o código fornecido no passo 5 e inicializar o app através do Ionic, usando o comando Ionic ծառայել:
Որպեսզի հնարավոր լինի լուծել խնդիրները, առաջարկեք օգտագործել MQTT Client TEST- ի գործառույթները AWS- ով, այն կարող է հաստատվել որպես dragonboard- ի ուղիղ փոխանցում ՝ օգտագործելով AWS Cloud- ը ՝
Խորհուրդ ենք տալիս:
Հեռավոր խելացի տուն ՝ 5 քայլ
Հեռավոր խելացի տուն. Նյութեր. Dunne gelamineerde hout platen. 1 x grondplaat met een diameter van 1 cmkleine nagels2 x breadbords plakbandveel kabels հանդիպել տրամագիծը 0.3 cmveel jumper kabels gereedschap: boormachinelijmpistoolsoldeerboutschroevendra
Ինչպես դարձնել խելացի տուն ՝ օգտագործելով Arduino կառավարման ռելեի մոդուլը - Տնային ավտոմատացման գաղափարներ. 15 քայլ (նկարներով)
Ինչպես դարձնել խելացի տուն ՝ օգտագործելով Arduino կառավարման ռելեի մոդուլը | Տան ավտոմատացման գաղափարներ. Տան ավտոմատացման այս նախագծում մենք նախագծելու ենք խելացի տան ռելեի մոդուլ, որը կարող է կառավարել 5 կենցաղային տեխնիկա: Այս ռելեի մոդուլը կարող է կառավարվել բջջայինից կամ սմարթֆոնից, IR հեռակառավարման վահանակից կամ հեռուստատեսության հեռակառավարիչից, ձեռքով անջատիչից: Այս խելացի էստաֆետը կարող է զգալ նաև
Խելացի տուն Arduino- ով. 11 քայլ (նկարներով)
Smart Home Arduino- ով. Բարև: Ես ձեզ ցույց կտամ, թե ինչպես կառուցել ձեր սեփական խելացի տունը: Այն ցույց է տալիս ջերմաստիճանը ինչպես ներսում, այնպես էլ դրսից, եթե պատուհանը բաց է կամ փակ, ցույց է տալիս անձրևի ժամանակ և ահազանգ է տալիս, երբ շարժվում է PIR տվիչի զգայարանները: Ես դիմումը արեցի android- ում ՝
Խելացի տուն Arduino MKR1000- ով և M.I.T.- ով Android հավելված ՝ 4 քայլ
Խելացի տուն Arduino MKR1000- ով և M.I.T.- ով Android հավելված. Այս ձեռնարկում ես նկարագրում եմ, թե ինչպես բարելավել ձեր խելացի տունը ընդամենը մի քանի բաղադրիչով: Այս խելացի տան դիզայնի սիրտը Arduino MKR1000 տախտակն է, որը կառավարվում է հավելվածով, որը մշակված է M.I.T.- ի զարգացման կայքում: (Մասաչուսեթսի ինստիտուտ
HackerBox 0054: Խելացի տուն. 8 քայլ
HackerBox 0054: Smart Home. Ողջույններ HackerBox ցանցահեններին ամբողջ աշխարհում: HackerBox 0054- ը ուսումնասիրում է տան ավտոմատացումը խելացի անջատիչների, տվիչների և այլնի միջոցով: Կարգավորեք Sonoff WiFi խելացի անջատիչները: Փոփոխեք խելացի անջատիչները ՝ ծրագրավորման վերնագրեր ավելացնելու և այլընտրանքային ծրագրակազմը լուսավորելու համար