جدول المحتويات:
- الخطوة 1: Materias Necessários
- الخطوة 2: Sensores، Atuadores E Conexões
- الخطوة 3: تطبيق Aplicativo Para Controle Remoto
- الخطوة 4: Criando Uma "coisa" Na AWS IoT
- الخطوة 5: Programa Em Python
- الخطوة 6: Finalização
فيديو: بدء المنزل الذكي - المشروع النهائي: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
Projeto apresentado é parte do projeto final do curso de IoT applicado a Smart Home
مشروع أكثر من جانب واحد يتم تقديمه نهائيًا من خلال عرض إنترنت الأشياء بمنزل ذكي ، كواحد من أجهزة الاستشعار e atuadores conectados na DrangonBoard + Linker Mezzanine، um aplicativo desenvolvido com o ionic (a ser incluido em breve) e as informações / dados das "coisas" serão salvados na cloud da AWS. Para uma primeira iteração com a DragonBoard و 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 -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: Materias Necessários
- ضع DragonBoard. https://www.amazon.com/DragonBoard-410C-IoT-Start …
- 96Bards Linker Mezzanine https://www.96boards.org/product/linkspritesensork …
- مستشعر luminozidade (LDR) 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. رابط الميزانين:
كونيكتار سيرا بالضرورة لوحة الميزانين على لوح التنين. إزالة الفقرة ، رابط الاستشارة
2. جهاز الاستشعار luminosidade (LDR)
O sensor é parte do Kit da Linker Mezzanine e deverá ser conectado na entrada ADC1. الفقرة detalhes técnicos:
3. مستشعر درجة الحرارة
O sensor é parte do Kit da Linker Mezzanine e deverá ser conectado na entrada ADC2. الفقرة detalhes técnicos:
4. بوتاو تاتش
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 local. الفقرة detalhes técnicos: https://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. الصمام
O LED é parte do kit da Linker Mezzanine e deverá ser conectado na entrada D4. O LED يمثلون 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áesentente para diminuir a corrente utilizada pelo sistema، já que em experienceências anteriores verificou-se conflitos com as portas analógicas. الفقرة detalhes técnicos:
7. مستشعر كوناتو مغناطيسي
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 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 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، o estado reportado será fechado.
الخطوة 3: تطبيق Aplicativo Para Controle Remoto
O aplicativo foi desenvolvido com o Ionic Framework، https://ionicframework.com/. لا بد من تنزيل الملفات من هنا.
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 ، مثل luzes se acenderão automaticamente. Quando a hyperidade 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. احتمالية تحديد شجاعة درجة الحرارة. Assim que a tempura da casa estiver maior do que a temperature de acionamento، o A / C será ligado e Permanentecerá ligado até a temperature abaixar em 2 graus da tempreatura Definida. على سبيل المثال ، يعتبر iremos que a tempsura é de 23 graus. Quando a temperatura chegar interior 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.
- درجة الحرارة ، 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
الفقرة 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) الزمرة "ابتكار الشيء" ، "ابتكر شيئًا واحدًا". قم بتنفيذ المشروع ثم قم بالتسجيل في التالي.
3) Na tela seguinte ، clique em "أنشئ شيئًا بدون شهادة". برنامج Nesse التعليمي não iremos useizar os certificados porquiryõ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 can، assim como é uma ótima ferramenta para الداخل. لا توجد طريقة لاستخدام Python que será apresentado em breve ، Foram utlizados alguns destes tópicos. يمكنك إنشاء نسخ من "الظل" ، يمكنك الحصول على معلومات حول لوحة التنين المعاد تدويرها في سحابة AWS.
الخطوة 5: Programa Em Python
كما seguintes bibliotecas serãoecessárias para a execução do programa:
استيراد spidevimport الوقت استيراد التسجيل استيراد json استيراد argparse
من libsoc استيراد gpio
من وقت استيراد السكون من تاريخ استيراد التاريخ والوقت ، تقوم datetime من لوحات gpio_96 باستيراد GPIO من AWSIoTPythonSDK. MQTTLib استيراد AWSIoTMQTTClient من AWSIoTPythonSDK. MQTTLib
Segue abaixo código Completeo do programa:
استيراد spidevimport الوقت استيراد تسجيل الاستيراد استيراد json argparse
من libsoc استيراد gpio
من وقت استيراد السكون من تاريخ استيراد التاريخ والوقت ، استورد datetime من لوحات gpio_96 GPIO من AWSIoTPythonSDK. MQTTLib استيراد AWSIoTMQTTClient من AWSIoTPythonSDK. MQTTLib استيراد AWSIoTMQTTShadowClient
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 ، "خارج") ،
(BUTTON، "in")، (RELE، "out")، (LED، "out")،)
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 = (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)
time.sleep (0.0002) gpio.digital_write (GPIO_CS، GPIO. LOW) r = spi.xfer2 ([0x01، 0x80، 0x00]) # ADC1 - اللمعان 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') درجة الحرارة = "{:.2f} ". format (adc_temp) payload_temp = '{" state ": {" required ": {" 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 (gpio):
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: القيمة = 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 ("Received a delta message:") ### تحميل البرنامج النصي لتحديث الحمولة 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 / linaro / root) ، "/ home / linaro / shared / AWS /" SUA CHAVE "-private.pem.key" ، "/ home / linaro / shared / AWS /" SEU CERTIFICADO "-certificate.pem.crt") myMQTTClient.configureOfflinePublishQueueing (- 1) # Infinite offline نشر قائمة الانتظار myMQTTClient.configureDrainingFrequency (2) # Draining: 2 هرتز myMQTTClient.configureConnectDisconnectTimeout (10) # 10 ثوانٍ myMQTTClient.configureMQTTOperationTimeout (5) coisajsb "،" متصل "، 0)
########################
####### تعريف الظل
# Init AWSIoTMQTTShadowClient
myAWSIoTMQTTShadowClient = لا شيء myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient ("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint ("SEU END-POINT.us-west-2.amazonaws.com" ، 8883T) مشترك AWSICADO / myAWSREDOCOW / 8883T. CA.crt "،" / home / linaro / shared / AWS / "SUA CHAVE" -private.pem.key "،" / home / linaro / shared / AWS / "SEU CERTIFICADO-Certificate.pem.crt")
# AWSIoTMQTTShadowClient تكوين myAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime (1 ، 32 ، 20) myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout (10) # 10 ثوانٍ myAWSIoTMQTTShadowClient.confation #
# الاتصال بـ AWS IoT
myAWSIoTMQTTShadowClient.connect ()
# إنشاء جهاز ظل مع الاشتراك المستمر
deviceShadowHandler = myAWSIoTMQTTShadowClient.createShadowHandlerWithName ("DBpyAWS1116" ، صحيح) shadowCallbackContainer_Bot = shadowCallbackContainer (deviceShadowHandler)
# استمع في دلتا
deviceShadowHandler.shadowRegisterDeltaCallback (shadowCallbackContainer_Bot.customShadowCallback_Delta)
#########################
myMQTTClient.publish ("$ aws / things / DBpyAWS1116 / shadow / update"، '{"state": {"required": {"SystemStatus": 1، "SisIlumi": 0، "AC": 0، "Garagem": "Fechada"، "Temperatura": 25، "Luminosidade": 123}}} '، 0)
إذا _name_ == "_main_":
باستخدام GPIO (دبابيس) مثل gpio: تشغيل (gpio)
الخطوة 6: Finalização
Após ter concluido os passos anteriores، deve-se inicializar o sistema Executiveando o código fornecido no passo 5 e inicializar o app através do Ionic، usando o comando Ionic service.
استكشاف الأخطاء وإصلاحها لأسباب محتملة ، أوصي باستخدام MQTT Client TEST ، أو AWS ، أو إمكانية التحقق من وجوده مثل بيئة الرجال ، dragonboard está atualizada de forma correta na AWS Cloud: https://us-west-2.console.aws.amazon.com / iotv2 / hom…
موصى به:
المنزل الذكي من Raspberry Pi: 5 خطوات (بالصور)
Smart Home من Raspberry Pi: هناك بالفعل العديد من المنتجات التي تجعل شقتك أكثر ذكاءً ، ولكن معظمها حلول مملوكة. ولكن لماذا تحتاج إلى اتصال بالإنترنت لتبديل الضوء بهاتفك الذكي؟ كان هذا أحد الأسباب التي دفعتني إلى بناء Smar الخاص بي
فتحت باب المرآب الذكي DIY + تكامل مساعد المنزل: 5 خطوات
فتحت باب المرآب الذكي DIY + تكامل مساعد المنزل: أدر باب المرآب العادي بذكاء باستخدام مشروع DIY هذا. سأوضح لك كيفية بنائه والتحكم فيه باستخدام Home Assistant (عبر MQTT) ولديه القدرة على فتح باب الجراج الخاص بك وإغلاقه عن بُعد. سأستخدم لوحة ESP8266 تسمى Wemos
نظام المنزل الذكي Alexa باستخدام وحدة الترحيل NodeMCU: 10 خطوات
نظام المنزل الذكي Alexa باستخدام وحدة NodeMCU Relay: في مشروع IoT هذا ، صنعت نظام Alexa Smart Home Automation باستخدام NodeMCU ESP8266 & amp؛ وحدة الترحيل. يمكنك التحكم بسهولة في الإضاءة والمروحة والأجهزة المنزلية الأخرى باستخدام الأمر الصوتي. لتوصيل مكبر الصوت الذكي Echo Dot بـ
المنزل الذكي البعيد: 5 خطوات
المنزل الذكي البعيد: المواد: dunne gelamineerde hout platen. 1 x grondplaat مع قطر een 1 سم kleine nagels2 x b breadbords plakbandveel kabels met قطر 0.3 cmveel jumper kabels gereedschap: boormachinelijmpistoolsoldeerboutschroevendra
كيفية جعل المنزل الذكي باستخدام وحدة التحكم في ترحيل Arduino - أفكار أتمتة المنزل: 15 خطوة (بالصور)
كيفية جعل المنزل الذكي باستخدام وحدة التحكم في ترحيل Arduino | أفكار أتمتة المنزل: في مشروع أتمتة المنزل هذا ، سنصمم وحدة ترحيل منزلية ذكية يمكنها التحكم في 5 أجهزة منزلية. يمكن التحكم في وحدة الترحيل هذه من الهاتف المحمول أو الهاتف الذكي أو جهاز التحكم عن بعد بالأشعة تحت الحمراء أو جهاز التحكم عن بعد في التلفزيون أو المفتاح اليدوي. يمكن لهذا التتابع الذكي أيضًا أن يستشعر r