![Memulakan Rumah Pintar - Projeto Akhir: 6 Langkah Memulakan Rumah Pintar - Projeto Akhir: 6 Langkah](https://i.howwhatproduce.com/images/006/image-17142-14-j.webp)
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:01
![Memulakan Rumah Pintar - Projeto Final Memulakan Rumah Pintar - Projeto Final](https://i.howwhatproduce.com/images/006/image-17142-15-j.webp)
Projeto apresentado is parte do projeto final do curso de IoT aplicado sebuah Rumah Pintar
O projeto mostrado a seguir é parte do projeto final a ser apresentado no curso de IoT aplicada a Smart Home, que αποτελείταιe de sensores e atuadores conectados na DrangonBoard + Linker Mezzanine, um aplicativo desenvolvido com o ionic (ser incluido em breve) 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 pra -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.
Langkah 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)
- Tempatkan DragonBoard.
- 96Boards Linker Mezzanine
- 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.
Langkah 2: Sensores, Atuadores E Conexões
![Sensores, Atuadores E Conexões Sensores, Atuadores E Conexões](https://i.howwhatproduce.com/images/006/image-17142-18-j.webp)
![Sensores, Atuadores E Conexões Sensores, Atuadores E Conexões](https://i.howwhatproduce.com/images/006/image-17142-19-j.webp)
1. Mezzanine penghubung:
Sera mustário conectar placa Mezzanine na dragonboard. Para detalhes, pautan perunding
2. Sensor luminosidade (LDR)
Sensor O Parte do Kit da Linker Mezzanine dan deverá ser conectado na entrada ADC1. Para detalhes técnicos:
3. Sensor de Temperatura
Sensor o parte do Kit da Linker Mezzanine dan de cone con conectado na entrada ADC2. Para detalhes técnicos:
4. Botão Touch
Sensor o parte do Kit da Linker Mezzanine dan deverá ser conectado na entrada D1. Este botão irá ligar / desligar o sistema como um todo. O acesso a este botão adalah sesuatu yang tempatan. Para detalhes técnicos: https://linksprite.com/wiki/index.php5? Title = Sentuh_…
5. Relé
Lihatlah Kit da Linker Mezzanine e deverá ser conectado na entrada D2. Ele será utiizado para ligar / desligar o sistema de A / C. Para melepaskan técnicos:
6. LED
O LED adalah komponen kit da Linker Mezzanine e deverá ser conectado na entrada D4. O LED representasi 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á υπάρχον untuk para penguasaan sebuah corente utilizada pelo sistema, já que em experências anteriores verificou-se conflitos com sebagai portas analógicas. Para detalhes técnicos:
7. Sensor de contato magnético
Sensor Este juga merangkumi bahagian dan Kit Kit 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.
Langkah 3: Remoto Aplicativo Para Controle
![Aplicativo Para Controle Remoto Aplicativo Para Controle Remoto](https://i.howwhatproduce.com/images/006/image-17142-20-j.webp)
O aplicativo juga desenvolvido com o Ionic Framework, https://ionicframework.com/. Será mustário fazer o muat turun dan 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, seperti 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. Oleh contoh, iremos mempertimbangkan suhu sebagai 23 graus. Quando a temperatura interior chegar 24 graus, o A / C será ligado dan permanecerá ligado at a temperatura chegar 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.
Langkah 4: Criando Uma "coisa" Na AWS IoT
![Criando Uma Criando Uma](https://i.howwhatproduce.com/images/006/image-17142-21-j.webp)
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) Clique "buat sesuatu" e então, "Buat satu perkara". Dê o nome do projeto e clique em Seterusnya.
3) Na tela seguinte, klik "Buat sesuatu tanpa sijil". 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) Nesse momento, sua "coisa" já estará criada. Clique no botão da "coisa" que foi criado para abrir a tela com sebagai opções. Nessa tela podemos ver os tópicosMQTT que podem ser usados para fazer a atualização dos dados serem enviados para a Could, assim como é uma ótima ferramenta untuk menyelesaikan masalah. Tidak ada cidigo em Python que será apresentado em breve, foram utlizados alguns destes tópicos. Nas opções também podemos ver a "shadow", que nada mais é que a informação que está na dragonboard refletida na AWS Cloud.
Langkah 5: Programa Em Python
Sebagai seguintes bibliotecas serão requárias para a execução do programa:
import spidevimport time import logging import json import argparse
dari libsoc import gpio
dari waktu import import dari tarikh import datetime, datetime dari gpio_96boards import GPIO dari AWSIoTPythonSDK. MQTTLib import AWSIoTMQTTClient dari AWSIoTPythonSDK. MQTTLib
Segue abaixo código completeo do programa:
import spidevimport time import logging import json import argparse
dari libsoc import gpio
dari waktu import impas dari tarikh import datetime, datetime dari gpio_96boards import GPIO dari AWSIoTPythonSDK. MQTTLib import AWSIoTMQTTClient dari AWSIoTPythonSDK. MQTTLib import AWSIoTMQTTShadowClient
GPIO_CS = GPIO.gpio_id ('GPIO_CS') #Analog Port
BUTTON = GPIO.gpio_id ('GPIO_A') RELE = GPIO.gpio_id ('GPIO_C') LED = GPIO.gpio_id ('GPIO_G')
pin = ((GPIO_CS, 'keluar'), (BUTTON, 'in'), (RELE, 'out'), (LED, 'out'),)
def setdevices (deltaMessagePython):
System_Status = deltaMessagePython ['SystemStatus'] Rele_Status = deltaMessagePython ['AC'] Led_Status = deltaMessagePython ['SisIlumi']
##### AC
jika Rele_Status == 1: gpio.digital_write (RELE, GPIO. HIGH)
jika Rele_Status == 0:
gpio.digital_write (RELE, GPIO. LOW)
##### Sistema de Iluminacao
jika Led_Status == 1: gpio.digital_write (LED, GPIO. HIGH) jika 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 - Suhu 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) now = datetime.utcnow () now_str = now.strftime ('% Y-% m-% dT% H:% M:% SZ') temperatura = "{:.2f} ". Format (adc_temp) payload_temp = '{" state ": {" dikehendaki ": {" Luminosidade ":' + adcoutldr + '," Temperatura ":' + temperatura + '}}}' myMQTTClient.publish ("$ aws / things / DBpyAWS1116 / shadow / kemas kini", payload_temp, 0) kembali r
def desliga ():
gpio.digital_write (RELE, GPIO. LOW) gpio.digital_write (LED, GPIO. LOW)
larian def (gpio):
sistem_status = 1
Walaupun Betul:
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 yang lain: system_status = 0 desliga () jika system_status == 1: nilai = readadc (gpio) cetak "SYSTEM_STATUS% d"% system_status time.sleep (3)
bayangan kelasCallbackContainer:
def _init _ (diri, deviceShadowInstance): self.deviceShadowInstance = deviceShadowInstance
# Panggilan balik Bayangan Tersuai
def customShadowCallback_Delta (diri, muatan, responsStatus, token): cetak ("Menerima mesej delta:") ### skrip kemas kini payloadDict = json.loads (muatan) deltaMessage = json.dumps (payloadDict ["state"]) cetak "DELTA MESSAGE% s"% deltaMessage ### Permintaan untuk mengemas kini keadaan yang dilaporkan newPayload = '{"state": {"dilaporkan":' + 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
####### Definisi perkara
# Sambungan berasaskan sijil AWS IoT
myMQTTClient = AWSIoTMQTTClient ("DBpyAWS1116") myMQTTClient.configureEndpoint ("a28rqf8gnpw7g.iot.us-west-2.amazonaws.com", 8883) myMQTTClient.configureCredentials ("/ rumah / AWSrow /, "/ home / linaro / shared / AWS /" SUA CHAVE "-private.pem.key", "/ home / linaro / shared / AWS /" SEU CERTIFICADO "-certificate.pem.crt") myMQTTClient.configureOfflinePublishQueueing (- 1) # Terbit luar talian Terbitkan beratur myMQTTClient.configureDrainingFrequency (2) # Draining: 2 Hz myMQTTClient.configureConnectDisconnectTimeout (10) # 10 sec myMQTTClient.configureMQTTOperationTimeout (5) # 5titikonPerhatian.connect coisajsb "," bersambung ", 0)
########################
####### Definisi bayangan
# Init AWSIoTMQTTShadowClient
myAWSIoTMQTTShadowClient = Tidak ada myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient ("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint ("SEU END-POINT.us-west-2.amazonaws.com" / osandua / oConderAsmedia/Asmedia/Asmedia/Asmedia/rsmt/wsws/smbb) CA.crt "," / home / linaro / shared / AWS / "SUA CHAVE" -private.pem.key "," / home / linaro / shared / AWS / "SEU CERTIFICADO-sijil.pem.crt")
# AWSIoTMQTTShadowClient konfigurasimyAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime (1, 32, 20) myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout (10) # 10 saat myAWSIoTMQTTShadowClient (5)
# Sambung ke AWS IoT
myAWSIoTMQTTShadowClient.connect ()
# Buat peranti Bayangkan dengan langganan berterusan
deviceShadowHandler = myAWSIoTMQTTShadowClient.createShadowHandlerWithName ("DBpyAWS1116", True) shadowCallbackContainer_Bot = shadowCallbackContainer (perantiShadowHandler)
# Dengarkan di delta
deviceShadowHandler.shadowRegisterDeltaCallback (shadowCallbackContainer_Bot.customShadowCallback_Delta)
#########################
myMQTTClient.publish ("$ aws / things / DBpyAWS1116 / shadow / update", '{"state": {"dikehendaki": {"SystemStatus": 1, "SisIlumi": 0, "AC": 0, "Garagem": "Fechada", "Temperatura": 25, "Luminosidade": 123}}} ', 0)
jika _nama_ == "_main_":
dengan GPIO (pin) sebagai gpio: run (gpio)
Langkah 6: Finalização
![Finalização Finalização](https://i.howwhatproduce.com/images/006/image-17142-22-j.webp)
Após ter concluido os passos anteriores, deve-se inicializar o sistema executando o código fornecido no passo 5 e inicializar o app através do Ionic, usando o comando Ionic melayani.
Selesaikan permasalahan, umpan balik dengan menggunakan FunQão MQTT Client TEST do AWS, onde é possível verificar e as mensagens enviadas pela dragonboard está sendo atualizada de forma correta na AWS Cloud: https://us-west-2.console.aws.amazon.com / iotv2 / hom…
Disyorkan:
Memulakan Permulaan Dengan Bascom AVR: 5 Langkah
![Memulakan Permulaan Dengan Bascom AVR: 5 Langkah Memulakan Permulaan Dengan Bascom AVR: 5 Langkah](https://i.howwhatproduce.com/images/002/image-5332-j.webp)
Memulakan Permulaan Dengan Bascom AVR: Ini adalah permulaan siri untuk mengajar anda memprogram mikrokontroler AVR anda dengan Bascom AVR. Mengapa saya melakukan ini. Sebilangan besar contoh program dalam siri ini dapat anda buat dengan Arduino. Ada yang lebih mudah dan lebih sukar, tetapi pada akhirnya kedua-duanya akan
Asas VBScript - Memulakan Skrip, Kelewatan dan Banyak Lagi !: 5 Langkah
![Asas VBScript - Memulakan Skrip, Kelewatan dan Banyak Lagi !: 5 Langkah Asas VBScript - Memulakan Skrip, Kelewatan dan Banyak Lagi !: 5 Langkah](https://i.howwhatproduce.com/preview/how-it-works/10385919-vbscript-basics-starting-your-scripts-delays-and-more-5-steps-0.webp)
Asas VBScript - Memulakan Skrip, Kelewatan dan Banyak Lagi !: Selamat datang ke tutorial pertama saya tentang cara membuat VBScript dengan notepad. Dengan fail.vbs, anda boleh membuat beberapa lelucon lucu atau virus yang mematikan. Dalam tutorial ini, saya akan menunjukkan kepada anda arahan asas seperti memulakan skrip anda, membuka fail dan banyak lagi. Pada t
Cara Membuat Rumah Pintar Menggunakan Modul Arduino Control Relay - Idea Automasi Rumah: 15 Langkah (dengan Gambar)
![Cara Membuat Rumah Pintar Menggunakan Modul Arduino Control Relay - Idea Automasi Rumah: 15 Langkah (dengan Gambar) Cara Membuat Rumah Pintar Menggunakan Modul Arduino Control Relay - Idea Automasi Rumah: 15 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/003/image-6810-j.webp)
Cara Membuat Rumah Pintar Menggunakan Modul Arduino Control Relay | Idea Automasi Rumah: Dalam projek automasi rumah ini, kami akan merancang modul relai rumah pintar yang dapat mengawal 5 peralatan rumah. Modul relay ini dapat dikendalikan dari telefon bimbit atau telefon pintar, jauh IR atau TV jauh, suis manual. Relay pintar ini juga dapat merasakan
Pengecaman Muka Masa Nyata: Projek Akhir ke Akhir: 8 Langkah (dengan Gambar)
![Pengecaman Muka Masa Nyata: Projek Akhir ke Akhir: 8 Langkah (dengan Gambar) Pengecaman Muka Masa Nyata: Projek Akhir ke Akhir: 8 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/002/image-4873-66-j.webp)
Pengecaman Wajah Masa Nyata: Projek Akhir-ke-Akhir: Pada tutorial terakhir saya yang meneroka OpenCV, kami mempelajari TRACKING OBJEK VISI AUTOMATIK. Sekarang kami akan menggunakan PiCam kami untuk mengenali wajah dalam masa nyata, seperti yang anda lihat di bawah: Projek ini dilakukan dengan " Perpustakaan Penglihatan Komputer Sumber Terbuka & hebat ini
Cara Memulakan Laman Web / Pelayan Rumah: 5 Langkah
![Cara Memulakan Laman Web / Pelayan Rumah: 5 Langkah Cara Memulakan Laman Web / Pelayan Rumah: 5 Langkah](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10769892-how-to-start-a-home-websiteserver-5-steps-j.webp)
Cara Memulakan Laman Web / Pelayan Rumah: Saya melakukan ini pada hujung minggu kerana bosan jadi nikmatilah