সুচিপত্র:
- ধাপ 1: ম্যাটেরিয়াস প্রয়োজনীয়তা
- ধাপ 2: Sensores, Atuadores E Conexões।
- ধাপ 3: অ্যাপলিক্যাটিভো প্যারা কন্ট্রোল রিমোটো
- ধাপ 4: ক্রিয়েন্দো উমা "coisa" Na AWS IoT
- ধাপ 5: প্রোগ্রাম এম পাইথন
- ধাপ 6: Finalização
ভিডিও: একটি স্মার্ট হোম শুরু করা - প্রজেটো ফাইনাল: 6 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:01
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) 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 amar-condicionado -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: ম্যাটেরিয়াস প্রয়োজনীয়তা
- ড্রাগন বোর্ড রাখুন।
- 96 বোর্ড লিঙ্কার মেজানাইন
- Sensor 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, utlizado para ligar o 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।
ধাপ 2: Sensores, Atuadores E Conexões।
1. লিঙ্কার মেজানাইন:
Será essentialário conectar a placa Mezzanine na dragonboard। প্যারা ডিটেইলস, কনসালটারের লিঙ্ক
2. সেন্সর luminosidade (LDR)
O সেন্সর é parte do Kit da Linker Mezzanine e deverá ser conectado na entrada ADC1। প্যারা ডিটেলেস টেকনিক:
3. সেন্সর ডি টেম্পেরাটুরা
O সেন্সর é parte do Kit da Linker Mezzanine e deverá ser conectado na entrada ADC2। প্যারা ডিটেলেস টেকনিকো:
4. Botão টাচ
O সেন্সর é 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। প্যারা ডিটেলেশ টেকনিক: https://linksprite.com/wiki/index.php5? Title = টাচ_…
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. Para detalhes técnicos:
6. LED
O LED é parte do kit da Linker Mezzanine e deverá ser conectado na entrada D4। O LED representará o sistema de 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 sistema, já que em experiências anteriores verificou-se conflitos com as portas analógicas। প্যারা ডিটেলেস টেকনিকো:
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 সেন্সর m 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 সেন্সর 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, o estado reportado será fechado।
ধাপ 3: অ্যাপলিক্যাটিভো প্যারা কন্ট্রোল রিমোটো
O aplicativo foi desenvolvido com o Ionic Framework, https://ionicframework.com/। Será essentialário fazer o download e 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 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। Assim que a temperatura da casa estiver maior do que a temperatura de acionamento, o A/C será ligado e permanentecerá ligado até a temperatura abaixar em 2 graus da tempreatura definida। উদাহরণস্বরূপ, iremos বিবেচনা করা হয় একটি তাপমাত্রা 23 ডি 23 গ্রাস। Quando a temperatura অভ্যন্তরীণ চেগার a 24 graus, o 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 é 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: ক্রিয়েন্দো উমা "coisa" Na AWS IoT
Para fazer o setup do IoT na AWS, os seguintes passos deverão ser seguidos:
ক্রিয়ার উম প্রজেটো কোন এডব্লিউএস আইওটি অ্যাট্রাভ লিঙ্ক:
2) "একটি জিনিস তৈরি করুন" এবং "একক জিনিস তৈরি করুন" ক্লিক করুন। Dê o nome do projeto e clique em Next।
3) না তেলা সেগুইন্ট, চক্র em "সার্টিফিকেট ছাড়া একটি জিনিস তৈরি করুন"। 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) নেসেস মোমেন্টো, সুয়া "কোইসা" জে এস্টার ক্রিডা। 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 troubleshooting। No código em Python que será apresentado em breve, foram utlizados alguns destes tópicos। Nas opções também podemos ver a "ছায়া", que nada mais é que a informação que está na dragonboard refletida na AWS Cloud।
ধাপ 5: প্রোগ্রাম এম পাইথন
যেমন seguintes bibliotecas serão requárias para a execução do programma:
আমদানি spidevimport সময় আমদানি লগিং আমদানি json আমদানি argparse
libsoc আমদানি gpio থেকে
সময় থেকে আমদানি ঘুম ডেটটাইম আমদানি তারিখ থেকে, gpio_96boards থেকে ডেটাটাইম AWSIoTPythonSDK থেকে GPIO আমদানি করে। MQTTLib আমদানি AWSIoTMQTTClient থেকে AWSIoTPythonSDK. MQTTLib
Segue abaixo código সম্পূর্ণ করার জন্য প্রোগ্রাম:
আমদানি spidevimport সময় আমদানি লগিং আমদানি json আমদানি argparse
libsoc আমদানি gpio থেকে
সময় থেকে আমদানি ঘুম ডেটটাইম আমদানি তারিখ থেকে, gpio_96boards থেকে ডেটাটাইম AWSIoTPythonSDK থেকে 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, 'আউট'), (বাটন, 'ইন'), (RELE, 'আউট'), (LED, 'আউট'),)
def setdevices (deltaMessagePython):
System_Status = deltaMessagePython ['SystemStatus'] Rele_Status = deltaMessagePython ['AC'] Led_Status = deltaMessagePython ['SisIlumi']
##### এসি
যদি Rele_Status == 1: gpio.digital_write (RELE, GPIO. HIGH)
যদি Rele_Status == 0:
gpio.digital_write (RELE, GPIO. LOW)
##### সিস্টেমা ডি ইলুমিনাকাও
যদি 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 - তাপমাত্রা gpio.digital_write (GPIO_CS, GPIO. HIGH) adcout = (rc = 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 = 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} "। ("$ aws/things/DBpyAWS1116/shadow/update", payload_temp, 0) রিটার্ন r
def desliga ():
gpio.digital_write (RELE, GPIO. LOW) gpio.digital_write (LED, GPIO. LOW)
ডিফ রান (জিপিও):
system_status = 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 else: system_status = 0 desliga () যদি system_status == 1: value = readadc (gpio) প্রিন্ট "SYSTEM_STATUS %d" %system_status time.sleep (3)
ক্লাস শ্যাডো কলব্যাক কনটেইনার:
def _init _ (self, deviceShadowInstance): self.deviceShadowInstance = deviceShadowInstance
# কাস্টম শ্যাডো কলব্যাক
def customShadowCallback_Delta (self, payload, responseStatus, token): print ("একটি ডেল্টা মেসেজ পেয়েছি") ### payload update script payloadDict = json.loads (payload) deltaMessage = json.dumps (payloadDict ["state"]) প্রিন্ট "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.configure/homecreds/homecreds/homecreds/", "/home/linaro/shared/AWS/" SUA CHAVE "-private.pem.key", "/home/linaro/shared/AWS/" SEU CERTIFICADO "-certificate.pem.crt") myMQTTClient.configureOfflinePublishQue 1) # অসীম অফলাইন প্রকাশ করুন সারিবদ্ধ myMQTTClient.configureDrainingFrequency (2) # ড্রেনিং: 2 Hz myMQTTClient.configureConnectDisconnectTimeout (10) # 10 সেকেন্ড myMQTTClient.configureMQTTOperationTimeout # 5Q. Qnect (MyQQTQ # 5Q এবং MyQQT # 5Q. Qnect (MyQTQ # 5Q. Qnect_MQ030Q) coisajsb "," সংযুক্ত ", 0)
########################
####### ছায়া সংজ্ঞা
# Init AWSIoTMQTTShadowClient
myAWSIoTMQTTShadowClient = কোনটি myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient ("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint ("সেউ END-POINT.us-west-2.amazonaws.com", 8883) myAWSIoTMQTTShadowClient.configureCredentials ("/ হোম / linaro / শেয়ারকৃত / ডেস্কটপ AWS / root- CA.crt ","/home/linaro/shared/AWS/"SUA CHAVE" -private.pem.key ","/home/linaro/shared/AWS/"SEU CERTIFICADO-certificate.pem.crt")
# AWSIoTMQTTShadowClient কনফিগারেশন আমার AWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime (1, 32, 20) myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout (10) # 10 SecureToSQSQTQSQTQSQTQ
# AWS IoT- এর সাথে সংযোগ করুন
myAWSIoTMQTTShadowClient.connect ()
# ক্রমাগত সাবস্ক্রিপশন সহ একটি ডিভাইসশ্যাডো তৈরি করুন
deviceShadowHandler = myAWSIoTMQTTShadowClient.createShadowHandlerWithName ("DBpyAWS1116", True) shadowCallbackContainer_Bot = shadowCallbackContainer (deviceShadowHandler)
# ডেল্টাসে শুনুন
deviceShadowHandler.shadowRegisterDeltaCallback (shadowCallbackContainer_Bot.customShadowCallback_Delta)
#########################
myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", '{"state": {"इच्छित": {"SystemStatus": 1, "SisIlumi": 0, "AC": 0, "Garagem": "ফেচাদা", "টেম্পেরাটুরা": 25, "লুমিনোসিডেড": 123}}} ', 0)
যদি _name_ == "_main_":
GPIO (পিন) সহ gpio: run (gpio)
ধাপ 6: Finalização
Após ter concluido os passos anteriores, deve-se inicializar o systemema execando o código fornecido no passo 5 e inicializar o app através do Ionic, usando o comando Ionic serve।
Para um possível troubleshoot, recomenda-se usar a função MQTT Client TEST do AWS, onde é possível verificar e as mensagens enviadas pela dragonboard está sento atualizada de forma correta na AWS Cloud:
প্রস্তাবিত:
কিভাবে Arduino কন্ট্রোল রিলে মডিউল ব্যবহার করে স্মার্ট হোম তৈরি করবেন - হোম অটোমেশন আইডিয়া: 15 টি ধাপ (ছবি সহ)
কিভাবে Arduino কন্ট্রোল রিলে মডিউল ব্যবহার করে স্মার্ট হোম তৈরি করবেন | হোম অটোমেশন আইডিয়া: এই হোম অটোমেশন প্রকল্পে, আমরা একটি স্মার্ট হোম রিলে মডিউল ডিজাইন করব যা 5 টি হোম যন্ত্রপাতি নিয়ন্ত্রণ করতে পারে। এই রিলে মডিউলটি মোবাইল বা স্মার্টফোন, আইআর রিমোট বা টিভি রিমোট, ম্যানুয়াল সুইচ থেকে নিয়ন্ত্রণ করা যায়। এই স্মার্ট রিলেটিও বুঝতে পারে
(2) একটি গেম তৈরি করা শুরু করা - ইউনিটি 3 ডি: 9 ধাপে একটি স্প্ল্যাশ স্ক্রিন তৈরি করা
(2) একটি গেম তৈরি করা শুরু করা - ইউনিটি 3 ডি -তে একটি স্প্ল্যাশ স্ক্রিন তৈরি করা: এই নির্দেশনায় আপনি ইউনিটি 3 ডি -তে একটি সাধারণ স্প্ল্যাশ স্ক্রিন তৈরি করতে শিখবেন। প্রথমত, আমরা ityক্য খুলব
হোম অটোমেশন দিয়ে শুরু করা: হোম অ্যাসিস্ট্যান্ট ইনস্টল করা: 3 টি ধাপ
হোম অটোমেশন দিয়ে শুরু করা: হোম অ্যাসিস্ট্যান্ট ইনস্টল করা: আমরা এখন হোম অটোমেশন সিরিজ শুরু করতে যাচ্ছি, যেখানে আমরা একটি স্মার্ট হোম তৈরি করব যা আমাদের লাইট, স্পিকার, সেন্সর ইত্যাদি নিয়ন্ত্রণ করতে দেবে ভয়েস সহকারী। এই পোস্টে, আমরা শিখব কিভাবে ইনস
HDMI ছাড়া রাস্পবেরি পাই 3 বি তে রাস্পবিয়ান ইনস্টল করা - রাস্পবেরি পাই 3B দিয়ে শুরু করা - আপনার রাস্পবেরি পাই 3: 6 ধাপ সেট আপ করা হচ্ছে
HDMI ছাড়া রাস্পবেরি পাই 3 বি তে রাস্পবিয়ান ইনস্টল করা | রাস্পবেরি পাই 3B দিয়ে শুরু করা | আপনার রাস্পবেরি পাই 3 সেট আপ করা: আপনারা কেউ কেউ জানেন যে রাস্পবেরি পাই কম্পিউটারগুলি বেশ দুর্দান্ত এবং আপনি কেবলমাত্র একটি ছোট বোর্ডে পুরো কম্পিউটারটি পেতে পারেন। 1.2 GHz এ ঘড়ি। এটি পাই 3 কে মোটামুটি 50 রাখে
[HASS.IO] কোডিং ছাড়াই আপনার স্মার্ট হোম নির্মাণ শুরু করুন, 100 ডলারেরও কম: 6 টি ধাপে
[HASS.IO] কোডিং ছাড়াই আপনার স্মার্ট হোম নির্মাণ শুরু করুন, 100 ডলারেরও কম মূল্যে: সম্প্রতি আমি চারপাশে গোলমাল করছি এবং সফলভাবে আমার ঘরকে " ইডিয়োটিক " তাই আমি একটি কম দামের ট্যাগ, উচ্চ সামঞ্জস্যতা যা নির্বিঘ্নে এবং স্থিতিশীলভাবে চলবে তা দিয়ে কীভাবে একটি স্মার্ট হোম সিস্টেম তৈরি করা যায় তা ভাগ করতে যাচ্ছি