![התחלת בית חכם - גמר Projeto: 6 שלבים התחלת בית חכם - גמר Projeto: 6 שלבים](https://i.howwhatproduce.com/images/006/image-17142-14-j.webp)
תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-23 14:46
![התחלת בית חכם - גמר Projeto התחלת בית חכם - גמר Projeto](https://i.howwhatproduce.com/images/006/image-17142-15-j.webp)
Projeto apresentado é parte do projeto final do curso de IoT aplicado a בית חכם
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 incluido em breve) e as informações/dados das "coisas" serão salvados ב- cloud da AWS. Para uma primeira iteração com a DragonBoard e IoT como um todo, decidiu-se fazer um system 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 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
![Materias Necessários Materias Necessários](https://i.howwhatproduce.com/images/006/image-17142-16-j.webp)
![Materias Necessários Materias Necessários](https://i.howwhatproduce.com/images/006/image-17142-17-j.webp)
- מקום DragonBoard.
- 96 Boards Linker Mezzanine
- Sensor de luminozidade (LDR) que acompanha a Linker Mezzanine.
- חיישן טמפרטורה קיבולת ביניים.
- Botão touch que acompanha a Linker Mezzanine.
- Relé acompanha a Linker Mezzanine, utlizado para ligar or systema de A/C.
- LED acompanha a Mellker Mezzanine, que representará a iluminação a ser ativada.
- Instalação das bibliotecas citadas no passo 5.
שלב 2: חיישנים, Atuadores E Conexões
![חיישנים, Atuadores E Conexões חיישנים, Atuadores E Conexões](https://i.howwhatproduce.com/images/006/image-17142-18-j.webp)
![חיישנים, Atuadores E Conexões חיישנים, Atuadores E Conexões](https://i.howwhatproduce.com/images/006/image-17142-19-j.webp)
1. ביניים מקשרת:
הכרחית הכריתה של אזור הביניים על דרקונבורד. בשביל פרטים, קישור ליועץ
2. Luminosidade חיישן (LDR)
O sensor é parte do Kit da Linker Mezzanine e deverá ser conectado and entrada ADC1. לפרטים נוספים:
3. חיישן דה טמפרטורה
O sensor é parte do Kit da Linker Mezzanine e deverá ser conectado and entrada ADC2. לפרטים נוספים:
4. בוטאו טאץ '
O sensor é parte do Kit da Linker Mezzanine e deverá ser conectado na entrada D1. Este botão irá ligar/desligar o systema como um todo. O acesso a este botão é somente local. לפרטים נוספים על הטכנולוגיה: 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ái utiizado for ligar/desligar o sistema de A/C. Para detalhes técnicos:
6. לד
O LED é parte do kit da Linker Mezzanine e deverá ser conectado and entrada D4. O LED representará o systemema 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 for diminuir a corrente utilizada pelo system, yes que em experiências anteriores verificou-se conflitos com as portas analógicas. לפרטים נוספים:
7. Sensor de contato magnético
חיישן Este 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. חיישן אחד יכול להכין 2 צורות (ניתן לראות את הצעדים בשלב זה), או את החיישן המתאים לזה "אימאו", וחייבים אותו בחיינו. O sensor utlizado next projeto foi um N/A (normalmente aberto). חיישן או חיישן, או דיווחים על חיישן. חיישן זה יכול לספק חיישנים, או לאפשר דיווחים.
שלב 3: Aplicativo Para Controle Remoto
![Aplicativo Para Controle Remoto Aplicativo Para Controle Remoto](https://i.howwhatproduce.com/images/006/image-17142-20-j.webp)
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, 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. אנו יכולים להעריך את הטמפרטורה של הטמפרטורה, כי תעריפי מיזוג האוויר יכולים להיות קבועים בטמפרטורה של 2 טמפרטורות. לדוגמא, אפשר לקחת בחשבון טמפרטורה של 23 מעלות. כמו כן, חומץ פנימי טמפרטורה 24 גרם, מזגן או מזגן קבוע וטמפרטורה של חומץ 20 גרם. Depois o ciclo se repetirá.
- Garagem informará a atual posição da garagem, se aberta ou fechada.
- טמפרטורות אינפורמטיביות וטמפרטורות פנימיות.
- 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 ענן AWS e atualização do app.
שלב 4: Criando Uma "coisa" Na AWS IoT
![קריאנדו אומה קריאנדו אומה](https://i.howwhatproduce.com/images/006/image-17142-21-j.webp)
עבור ההתקנה של IoT ב- AWS, או מספר התייחסויות:
1) Criar um projeto no AWS IoT atravé do link:
2) לחץ על "צור דבר" והתחבר, "צור דבר אחד". לא ניתן לבצע פרוייקטים או ללחוץ על הבא.
3) לאחר מכן, לחץ על "צור דבר ללא תעודה". מדריך לא ניתן להשתמש בשירותי תעודה עבור שאלות ותשובות, ועוד המלצות מומלצות או תעודות IoT.
4) Nesse momento, sua "coisa" já estará criada. Click 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 fora fazer a atualização dos dados a serem enviados for a Could, assim como é uma ótima ferramenta fora troubleshooting. אין צורך ב Python que será apresentado em breve, foram utlizados alguns destes tópicos. אנו יכולים להציג פודמים של "צל", כיוון שאפשר להודיע על מידע על דרגוןבורד על AWS Cloud.
שלב 5: Programa Em Python
כפי שנאמר bibliotecas serão needsárias para a execução do programa:
יבוא spidevimport זמן יבוא רישום יבוא json יבוא argparse
מ- libsoc import gpio
מעת זמן ייבוא שינה מתאריך הייבוא של datetime, datetime מ- gpio_96boards ייבוא GPIO מ- AWSIoTPythonSDK. MQTTLib ייבוא AWSIoTMQTTClient מ- AWSIoTPythonSDK. MQTTLib
תכונה מלאה של התוכנית:
יבוא spidevimport זמן יבוא רישום יבוא json יבוא argparse
מ- libsoc import gpio
ממועד ייבוא שינה מתאריך הייבוא של datetime, datetime מ- gpio_96boards ייבוא 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, 'החוצה'), (כפתור, 'in'), (RELE, 'out'), (LED, 'out'),)
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 - טמפרטורה 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 - Luminosity gpio.digital_write (GPIO_CS, GPIO. HIGH) adcoutldr = (r [1] << 8) & 0b1100000000 adcoutldr = adcoutldr | (r [2] & 0xff) adcoutldr = str (adcoutldr) עכשיו = datetime.utcnow () now_str = now.strftime ('%Y-%m-%dT%H:%M:%SZ') temperatura = "{:.2f} ". Format (adc_temp) payload_temp = '{" state ": {" wanted ": {" Luminosidade ":' + adcoutldr + '," Temperatura ":' + temperatura + '}}}' myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", payload_temp, 0) return r
def desliga ():
gpio.digital_write (RELE, GPIO. LOW) gpio.digital_write (LED, GPIO. LOW)
הפעלה def (gpio):
מערכת_סטטוס = 1
בעוד שזה נכון:
time.sleep (2) button_value = gpio.digital_read (BUTTON) הדפסה ("----") time.sleep (0.25) אם button_value == 1: אם 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 classCallbackContainer:
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": {"reported":' + 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 ("/CA/home/"/home/"/home/, "/home/linaro/shared/AWS/" SUA CHAVE "-private.pem.key", "/home/linaro/shared/AWS/" SEU CERTIFICADO "-certificate.pem.crt") myMQTTClient.configureOfflinePublishQueueing (-- 1) # אינסוף לא מקוון פרסם תור myMQTTClient.configureDrainingFrequency (2) # Drrain: 2 Hz myMQTTClient.configureConnectDisconnectTimeout (10) # 10 sec myMQTTClient.configureMQTTOperationTimeout (5) # 5 secTCTC (פרסם) myQMlTl.cntl (פרק my. MlTl). coisajsb "," מחובר ", 0)
########################
######## הגדרת צללים
# Init AWSIoTMQTTShadowClient
myAWSIoTMQTTShadowClient = אין myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient ("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint ("SEU END- POINT.us-WS./SonSon.awSon.awSon/wSon/ws. CA.crt ","/home/linaro/shared/AWS/"SUA CHAVE" -private.pem.key ","/home/linaro/shared/AWS/"SEU CERTIFICADO-certificate.pem.crt")
# תצורת AWSIoTMQTTShadowClientmyAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime (1, 32, 20) myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout (10) # 10 sec myAWSIoTMQThout (5) sec.
# התחבר ל- 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": {"wanted": {"SystemStatus": 1, "SisIlumi": 0, "AC": 0, "Garagem": "Fechada", "Temperatura": 25, "Luminosidade": 123}}} ', 0)
אם _name_ == "_ עיקר_":
עם GPIO (סיכות) בתור gpio: הפעלה (gpio)
שלב 6: סיום
![Finalização Finalização](https://i.howwhatproduce.com/images/006/image-17142-22-j.webp)
אנו יכולים לבטל את הסיכויים לאתר הנושאים האחרונים, לאפשר הרשמה של מערכת ההפעלה של מערכת ההפעלה או לתפקד ביונית.
על מנת לפתור בעיות, מומלץ להשתמש במבחן לקוח MQTT של AWS, ואפשר גם לוודא שסימני הגדרות של דרגוןבורד אפשר לשלוח את פורמט קורא ל- AWS Cloud: https://us-west-2.console.aws.amazon.com/iotv2/hom …
מוּמלָץ:
בית חכם מאת Raspberry Pi: 5 שלבים (עם תמונות)
![בית חכם מאת Raspberry Pi: 5 שלבים (עם תמונות) בית חכם מאת Raspberry Pi: 5 שלבים (עם תמונות)](https://i.howwhatproduce.com/images/001/image-202-j.webp)
בית חכם של Raspberry Pi: יש כבר כמה מוצרים שהופכים את הדירה שלך לחכמה יותר, אך רובם פתרונות קנייניים. אבל למה אתה צריך חיבור לאינטרנט כדי להחליף אור עם הסמארטפון שלך? זו הייתה סיבה אחת בשבילי לבנות סמאר משלי
יסודות VBScript - התחלת התסריטים, העיכובים ועוד !: 5 שלבים
![יסודות VBScript - התחלת התסריטים, העיכובים ועוד !: 5 שלבים יסודות VBScript - התחלת התסריטים, העיכובים ועוד !: 5 שלבים](https://i.howwhatproduce.com/preview/how-it-works/10385919-vbscript-basics-starting-your-scripts-delays-and-more-5-steps-0.webp)
יסודות VBScript - התחלת התסריטים, העיכובים ועוד!: ברוכים הבאים להדרכה הראשונה שלי כיצד ליצור VBScripts עם פנקס רשימות. עם קבצי vbs, אתה יכול ליצור כמה מתיחות מצחיקות או וירוסים קטלניים. במדריך זה אני אראה לך פקודות בסיסיות כמו הפעלת התסריט שלך, פתיחת קבצים ועוד. ב- t
(2) התחלת יצירת משחק - יצירת מסך התזה ביחידות 3D: 9 שלבים
![(2) התחלת יצירת משחק - יצירת מסך התזה ביחידות 3D: 9 שלבים (2) התחלת יצירת משחק - יצירת מסך התזה ביחידות 3D: 9 שלבים](https://i.howwhatproduce.com/images/009/image-25743-j.webp)
(2) התחלת יצירת משחק - יצירת מסך התזה ב- Unity3D: במדריך זה תלמד כיצד להכין מסך התזה פשוט ב- Unity3D. ראשית, נפתח את אחדות
פי חסר ראש - התחלת הפי פטל שלך ללא חומרה נוספת: 4 שלבים (עם תמונות)
![פי חסר ראש - התחלת הפי פטל שלך ללא חומרה נוספת: 4 שלבים (עם תמונות) פי חסר ראש - התחלת הפי פטל שלך ללא חומרה נוספת: 4 שלבים (עם תמונות)](https://i.howwhatproduce.com/images/001/image-1534-168-j.webp)
פי חסר ראש - התחלת הפי פטל שלך ללא חומרה נוספת: היי, הסיבה לכך שנחתת כאן היא, אני מניח, שאתה דומה לי מאוד! אתה לא רוצה ללכת בקלות על ה- Pi שלך - חבר את ה- Pi למסך, חבר מקלדת ועכבר וואלה! &Hellip; Pfft, מי עושה את זה ?! אחרי הכל, Pi הוא &
התחלת תכנות עם תרשים זרימה: 7 שלבים
![התחלת תכנות עם תרשים זרימה: 7 שלבים התחלת תכנות עם תרשים זרימה: 7 שלבים](https://i.howwhatproduce.com/preview/how-and-what-to-produce/11124094-starting-programming-with-a-flow-chart-7-steps-j.webp)
התחלת תכנות עם תרשים זרימה: מתחילים להשתמש בבקרי מיקרו PIC לפרויקטים שלך? הם שימושיים מאוד אך מתסכלים מאוד כאשר התוכנית שלך פשוט לא עובדת. זוהי דרך אחת למיין את הרעיונות שלך על ידי ציור תרשים זרימה. כך בדרך כלל מתכנתים מקצועיים