Πίνακας περιεχομένων:
- Βήμα 1: Απαιτήσεις υλικών
- Βήμα 2: Sensores, Atuadores E Conexões
- Βήμα 3: Aplicativo Para Controller Remoto
- Βήμα 4: Criando Uma "coisa" Na AWS IoT
- Βήμα 5: Programa Em Python
- Βήμα 6: Finalização
Βίντεο: Έναρξη έξυπνου σπιτιού - Τελικός Projeto: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Προεπισκόπηση é parte do projeto final do curso de IoT aplicado a Smart Home
Όσο για το τελευταίο και για το τελευταίο, μπορείτε να χρησιμοποιήσετε το IoT για το Smart Home, που αποτελείται από τις αρχές και τις συνδέσεις με το DrangonBoard + Linker Mezzanine, και τις εφαρμογές που χρειάζεστε για να το κάνετε αυτό informações/dados das "coisas" serão salvados na cloud da AWS. Para uma Primeira iteração com a DragonBoard e IoT como 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
- 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.
- Βοηθήστε τον σύνδεσμο στον ημιώροφο, που χρησιμοποιείται για τη σύνδεση του συστήματος κλιματισμού.
- LED acompanha a 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 και 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 ή sistema como um todo. O acesso a este botão é somente local. Για περισσότερες λεπτομέρειες: https://linksprite.com/wiki/index.php5? Title = Touch_…
5. Relé
O relé é parte do Kit da Linker Mezzanine e deverá ser conectado na entrada D2. Ελέγξτε τη χρήση των συστημάτων 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 εκπρόσωπος του συστήματος φωτισμού για το uma casa, το οποίο μπορεί να χρησιμοποιηθεί για εσωτερικούς χώρους ή εξωτερικούς χώρους, καθώς και για εικονογράφηση του χώρου. Λόγω της αντίστασης 10k ohm em sério com ή já υπάρχουσα για να μειώσετε τη χρήση ενός συστήματος, μπορείτε να δοκιμάσετε 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 sensor é um um unt unt unt ado 2 2 2 2 2 2 2 ver ver ver (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, ή estado reportado será fechado.
Βήμα 3: Aplicativo Para Controller Remoto
Εφαρμογή για την εφαρμογή του Ionic Framework, https://ionicframework.com/. Είναι απαραίτητο να κατεβάσετε και να εγκαταστήσετε μια τελευταία έκδοση.
Εφαρμόζοντας την επικοινωνία (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. Για παράδειγμα, μπορείτε να λάβετε υπόψη σας μια θερμοκρασία 23 βαθμών. Διατηρήστε μια εσωτερική θερμοκρασία για 24 ώρες, για κλιματισμό και κλιματισμό, για θερμοκρασία και θερμοκρασία 20 βαθμών, αν θέλετε. 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.
Επιλέξτε την αρχική σελίδα home.html e home.ts contendos os códigos για την επικοινωνία με ένα cloud AWS και atualização για εφαρμογή.
Βήμα 4: Criando Uma "coisa" Na AWS IoT
Για την εγκατάσταση του IoT και του AWS, ορίστε τις δυνατότητες που σας αφορούν:
1) Criar um projeto no AWS IoT atravé do link:
2) Κλικ "δημιουργήστε ένα πράγμα" και μετά, "Δημιουργήστε ένα μόνο πράγμα". Dê o nome do projeto e clique em Next.
3) Επιλέξτε, επιλέξτε "Δημιουργήστε ένα πράγμα χωρίς πιστοποιητικό". Nesse tutorial που δεν χρησιμοποιούν τα πιστοποιητικά για την αναζήτηση περιπτώσεων, δεν μπορούν να προταθούν για τη χρήση των πιστοποιητικών IoT.
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 Could, assim como uma ótima ferramenta για την αντιμετώπιση προβλημάτων. No código em Python que será apresentado em breve, foram utlizados alguns destes tópicos. Λάβετε υπόψη σας ότι μπορείτε να βρείτε μια "σκιά", που θα σας πληροφορήσει ότι θα βρείτε πληροφορίες για το dragonboard refletida στο AWS Cloud.
Βήμα 5: Programa Em Python
Ως seguintes bibliotecas serão needárias para a execução do programa:
εισαγωγή spidevimport ώρα εισαγωγής καταγραφής εισαγωγή json εισαγωγή argparse
από libsoc εισαγωγή gpio
από ώρα εισαγωγής ύπνου από ημερομηνία ημερομηνίας εισαγωγής ημερομηνία, ημερομηνία ώρας από gpio_96boards εισαγωγή GPIO από AWSIoTPythonSDK. MQTTLib εισαγωγή AWSIoTMQTTClient από AWSIoTPythonSDK. MQTTLib
Segue abaixo código completeo programa:
εισαγωγή spidevimport ώρα εισαγωγής καταγραφής εισαγωγή json εισαγωγή argparse
από libsoc εισαγωγή gpio
από ώρα εισαγωγής ύπνου από ημερομηνία εισαγωγής ημερομηνίας, ώρα δεδομένων από gpio_96boards εισαγωγή GPIO από AWSIoTPythonSDK. MQTTLib εισαγωγή AWSIoTMQTTClient από AWSIoTPythonSDK. MQTTLib εισαγωγή AWSIoTMQTTShadowClient
GPIO_CS = GPIO.gpio_id ('GPIO_CS') #Αναλογική θύρα
ΚΟΥΜΠΙ = GPIO.gpio_id ('GPIO_A') RELE = GPIO.gpio_id ('GPIO_C') LED = GPIO.gpio_id ('GPIO_G')
καρφίτσες = ((GPIO_CS, 'out'), (ΚΟΥΜΠΙ, "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)
##### 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 - Temperature 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) return r
def desliga ():
gpio.digital_write (RELE, GPIO. LOW) gpio.digital_write (LED, GPIO. LOW)
def run (gpio):
system_status = 1
ενώ True:
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)
class shadowCallbackContainer:
def _init _ (self, deviceShadowInstance): self.deviceShadowInstance = deviceShadowInstance
# Προσαρμοσμένη επανάκληση σκιάς
def customShadowCallback_Delta (self, payload, respondStatus, token): print ("Έλαβε ένα δέλτα μήνυμα:") ### payloadDcript 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
####### Πράξη ορισμός
# Σύνδεση βασισμένη σε πιστοποιητικό IoT # AWS
myMQTTClient = AWSIoTMQTTClient ("DBpyAWS1116") myMQTTClient.configureEndpoint ("a28rqf8gnpw7g.iot.us-west-2.amazonaws.com", 8883) myMQTTClient.configureCredentials ("/home/lin/CA/lin/, "/home/linaro/shared/AWS/" SUA CHAVE "-private.pem.key", "/home/linaro/shared/AWS/" SEU CERTIFICADO "-certificate.pem.crt") myMQTTClient.configureOfflinePublishQueueing (- 1) # Infinite offline Publish queue myMQTTClient.configureDrainingFrequency (2) # Draining: 2 Hz myMQTTClient.configureConnectDisconnectTimeout (10) # 10 sec myMQTTClient.configureMQTTOperationTimeout (5) coisajsb "," συνδεδεμένο ", 0)
########################
####### Ορισμός σκιάς
# Έναρξη AWSIoTMQTTShadowClient
myAWSIoTMQTTShadowClient = Καμία myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient ("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint ("SEU END-POINT.us-west-2.amazonaws.com", 8883) myAWSIoTMQTTShadowClient.configureCredentials ("/ home / linaro / μοιράστηκε / AWS / 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 SecureMainTow
# Συνδεθείτε στο 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", '{"κατάσταση": {"επιθυμητό": {"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 ή sistema exeando o código fornecido no passo 5 και inicializar o app através do Ionic, usando o comando Ionic σερβίρισμα.
Για να μπορέσετε να αντιμετωπίσετε προβλήματα, συνιστάται να χρησιμοποιήσετε μια λειτουργία MQTT Client TEST για AWS, μπορείτε να επιβεβαιώσετε ότι μπορείτε να στείλετε μια μορφή από το dragonboard στο AWS Cloud:
Συνιστάται:
SmartBox - Σύστημα έξυπνου σπιτιού για το δωμάτιό σας: 6 βήματα
SmartBox - Smart Home System for Your Room: Γεια σε όλους! Σε αυτό το διδακτικό, θα σας εξηγήσω πώς να φτιάξετε ένα έξυπνο σύστημα δωματίου. Αυτό το σύστημα περιέχει δύο συσκευές. Μια γενική συσκευή με αισθητήρα υγρασίας και αισθητήρα θερμοκρασίας που μετρά την τρέχουσα ποιότητα ζωής στο δωμάτιό σας. Εσύ
Το πλήρες πρόσθετο έξυπνου σπιτιού: 8 βήματα
The Complete Smart Home Addon: Το προηγούμενο έργο μου " The Complete Smart Home " λειτουργεί με επιτυχία για σχεδόν 5 χρόνια χωρίς κανένα πρόβλημα. Τώρα που αποφάσισα να προσθέσω μια ανατροφοδότηση στο ίδιο χωρίς καμία τροποποίηση στο παρόν κύκλωμα και σχηματικό. Αυτό λοιπόν το add on pro
Σύστημα έξυπνου σπιτιού Arduino: 7 βήματα
Arduino Smart Home System: Σε αυτό το Instructable θα σας δείξουμε πώς να δημιουργήσετε το δικό σας σύστημα έξυπνου σπιτιού με το App Designer της MATLAB με έναν πίνακα Sparkfun Red. Αυτό το Instructable μπορεί να χρησιμοποιηθεί για να σας βοηθήσει να αποκτήσετε μια βασική κατανόηση του App Designer του MATLAB, καθώς και να χρησιμοποιήσετε μια φωτογράφιση
Σύστημα έξυπνου σπιτιού: 6 βήματα
Smart Home System: Αυτό το διδακτικό θα σας βοηθήσει να εξηγήσετε πώς να ρυθμίσετε και να χρησιμοποιήσετε το Smart Home System χρησιμοποιώντας το λογισμικό Matlab και το υλικό Raspberry Pi. Στο τέλος αυτού του οδηγού, θα πρέπει να μπορείτε να χρησιμοποιείτε πλήρως το προϊόν μας με ευκολία
Φθηνό και εύκολο σύστημα έξυπνου σπιτιού: 7 βήματα
Φθηνό και εύκολο σύστημα έξυπνου σπιτιού: Γεια σας! Είμαι ο Ed είμαι ένας 15χρονος με πάθος για υπολογιστές, προγραμματισμό και ηλεκτρολογία. Δεδομένου ότι είμαι αρκετά νέος, ζω στο σπίτι των γονιών μου, αυτό το έργο ξεκίνησε όταν αποφάσισα να μετακομίσω στο Δωμάτιο Σοφίτα/ Σοφίτα, στην πορεία της σχεδίασης