Sisällysluettelo:
- Vaihe 1: Materias Necessários
- Vaihe 2: Sensores, Atuadores E Conexões
- Vaihe 3: Aplicativo Para Controle Remoto
- Vaihe 4: Criando Uma "coisa" Na AWS IoT
- Vaihe 5: Ohjelma Em Python
- Vaihe 6: Finalização
Video: Älykkään kodin aloittaminen - Projeto -finaali: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Projeto apresentado é parte do projeto final to 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 breve) e tiedot/isät "coisas", joka sisältää AWS: n pilven. Paras vaihtoehto on DragonBoard ja 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.
Vaihe 1: Materias Necessários
- Aseta DragonBoard.
- 96Boards Linker Mezzanine
- LDR (Sensor de luminozidade) sisältää Linker Mezzanine -laitteen.
- Lämpötila -anturi liittyy Linker Mezzanineen.
- Botão touch que mukana Linker Mezzanine.
- Yhdistä Linker Mezzanine -laitteeseen, jossa on ilmastointi tai ilmastointijärjestelmä.
- LED -merkkivalo ja Linker Mezzanine, jotka edustavat iluminaaão a ser ativada.
- Instalação das bibliotecas citadas no passo 5.
Vaihe 2: Sensores, Atuadores E Conexões
1. Linkkerin mezzanine:
Välttämättömässä tilassa on Mezzanine ja dragonboard. Yksityiskohdat, katso linkki
2. Anturivalaistus (LDR)
O anturi, joka on osa Part Kit Link Link Mezzanine -laitetta ja se on yhdistetty ADC1 -järjestelmään. Lisätietoja yksityiskohdista:
3. Lämpötila -anturi
O -anturi, joka on osa Part Kit Link Link Mezzanine -laitetta ja se on yhdistetty ADC2 -laitteeseen. Lisätietoja yksityiskohdista:
4. Botão Touch
O -anturi, osa Part Kit Link Link Mezzanine ja deverá ser -liitäntä D1. Este botão irá ligar/desligar o system como um todo. O acesso a este botão é somente local. Yksityiskohtaisia tietoja: https://linksprite.com/wiki/index.php5? Title = Touch_…
5. Relé
Vaihtoehtoisesti voit valita Kit da Linker Mezzanine e deverá ser conactado na entrada D2. Ele será utiizado para ligar/desligar o system de A/C. Para detalhes técnicos:
6. LED
O LED -osasarja, jossa on Linker Mezzanine ja deverá ser conactado na Entrada D4. O LED edustaa järjestelmän valaistusta uma casa, seja algum cômodo interno da casa ou externo, como and illuminação de um jardim. Jos vastus on 10 k ohmia, se voi olla yhteensopiva pelin järjestelmän kanssa, ja sen käyttö on sallittua, ja kokemukset anteriores verificou-se conflitos com as portas analógicas. Lisätietoja yksityiskohdista:
7. Sensor de contato magnético
Tämä anturi on tarkoitettu osalle ja faz parte do Kit da Linker Mezzanine -laitteelle. Ele será usado em uma janela ou no portão de uma garagem para informar se a janela/garagem está aberta ou fechada. O anturi on yhdistetty kahdelle eri pequenas (ver foto do Step acima), o sensori proprimamente dito e um pequeno "imã", que ao aproximar-se do sensor on alterar or estado do sensor. O -anturin käyttö ei ole mahdollista (ei normaalia). Quando o imã não está próximo do sensor, o sensor reportará estado aberto. Quando o imã estiver próximo do sensor, tai estado reportado será fechado.
Vaihe 3: Aplicativo Para Controle Remoto
Sovellus Ionikehyksen kehittämiseen, https://ionicframework.com/. Pakollinen fazer -lataus tai lataus ja asennuksen viimeinen versio.
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 tai 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 system 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, or A/C será ligado and permanecerá ligado até a temperatura abaixar em 2 graus da tempreatura definida. Esimerkiksi, iremos harkitsija on lämpötila 23 vuotta. Quando a temperatura interior chegar a 24 graus, or A/C será ligado and permanecerá 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.
- Lämpötila ja tiedotustekniikka ja suurin lämpötila ja sisätilojen lämpötila.
- Luminosidade é apesas informativa e mostra o valor da luminosidade atual.
Selaa em anexo os arquivos home.html ja home.ts contendos os códigos para comunicação com a cloud AWS e atualização do app.
Vaihe 4: Criando Uma "coisa" Na AWS IoT
Fazer tai setup do IoT na AWS, os seguintes passos deverão ser seguidos:
1) Criar um projeto no AWS IoT atravé do link:
2) Napsauta "luo asia" ja aloita, "Luo yksi asia". Dê o nome do projeto e clique em Next.
3) Valitse seuraava "Luo asia ilman varmennetta". Nesse -opetusohjelma, jossa käytetään sertifikaatteja, jotka on tarkoitettu etsinnöille, ei suositella fazerin tai IoT -sertifikaatin käyttöä.
4) Nesse momento, sua "coisa" já estará criada. Napsauta "botti", jossa on "coisa" que foi criado para abrir a tela com as opsões. Nessa tela podemos ver os topiaicos Ei cytigo em Python que será apresentado em breve, foram utlizados alguns destes tópicos. Nas opções também podemos ver "varjo", que nada mais é que a informação que está na dragonboard refletida with AWS Cloud.
Vaihe 5: Ohjelma Em Python
Kuten seguintes bibliotecas serão välttämättömyys para a execução do program:
tuonti spidevimport aika tuonti kirjaaminen tuonti json tuonti argparse
libsoc import gpio -ohjelmasta
ajan tuonnin lepotilasta päivämäärän tuontipäivästä, päivämäärän gpio_96boards -tuonnista GPIO: n tuonti AWSIoTPythonSDK: sta.
Segue abaixo código complete program:
tuonti spidevimport aika tuonti kirjaaminen tuonti json tuonti argparse
libsoc import gpio -ohjelmasta
ajan tuonnin lepotilasta päivämäärän tuontipäivästä, päivämäärän gpio_96boardsista tuo GPIO: n AWSIoTPythonSDK: sta. MQTTLib Tuo AWSIoTMQTTClient AWSIoTPythonSDK: sta.
GPIO_CS = GPIO.gpio_id ('GPIO_CS') #Analog Port
PAINIKE = GPIO.gpio_id ('GPIO_A') RELE = GPIO.gpio_id ('GPIO_C') LED = GPIO.gpio_id ('GPIO_G')
nastat = ((GPIO_CS, 'ulos'), (BUTTON, 'in'), (RELE, 'out'), (LED, 'out'),)
def set Devices (deltaMessagePython):
System_Status = deltaMessagePython ['SystemStatus'] Rele_Status = deltaMessagePython ['AC'] Led_Status = deltaMessagePython ['SisIlumi']
##### AC
jos Rele_Status == 1: gpio.digital_write (RELE, GPIO. HIGH)
jos Rele_Status == 0:
gpio.digital_write (RELE, GPIO. LOW)
##### Sistema de Iluminacao
jos Led_Status == 1: gpio.digital_write (LED, GPIO. HIGH) jos 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 - Lämpötila 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') lämpötila = "{:.2f} ". Format (adc_temp) payload_temp = '{" state ": {" toivottu ": {" Luminosidade ":' + adcoutldr + '," Temperatura ":' + lämpötila + '}}}' myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", hyötykuorma_temp, 0) return r
def desliga ():
gpio.digital_write (RELE, GPIO. LOW) gpio.digital_write (LED, GPIO. LOW)
def run (gpio):
system_status = 1
vaikka totta:
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 () if system_status == 1: value = readadc (gpio) print "SYSTEM_STATUS %d" %system_status time.sleep (3)
luokka shadowCallbackContainer:
def _init _ (self, deviceShadowInstance): self.deviceShadowInstance = deviceShadowInstance
# Muokattu Shadow -soittopyyntö
def customShadowCallback_Delta (self, payload, responseStatus, token): print ("Vastaanotettu delta -viesti:") ### payload update script payloadDict = json.loads (hyötykuorma) deltaMessage = json.dumps (payloadDict ["tila"]) print "DELTA MESSAGE %s" %deltaMessage ### Ilmoitetun tilan päivityspyyntö 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
####### Asian määritelmä
# AWS IoT -varmennepohjainen yhteys
myMQTTClient = AWSIoTMQTTClient ("DBpyAWS1116") myMQTTClient.configureEndpoint ("a28rqf8gnpw7g.iot.us-west-2.amazonaws.com", 8883) myMQTTClient.configureCredentials ("/home/root/lin/)/"/home/lin/, "/home/linaro/shared/AWS/" SUA CHAVE "-private.pem.key", "/home/linaro/shared/AWS/" SEU CERTIFICADO "-certificate.pem.crt") myMQTTClient.configureOfflinePublishQueueing (- 1) # Infinite offline Julkaise jono myMQTTClient.configureDrainingFrequency (2) # Tyhjennys: 2 Hz myMQTTClient.configureConnectDisconnectTimeout (10) # 10 s myMQTTClient.configureMQTTOperationTimeout (5) #tunnus #yhteys coisajsb "," kytketty ", 0)
########################
####### Varjon määritelmä
# Init AWSIoTMQTTShadowClient
myAWSIoTMQTTShadowClient = Ei mitään myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient ("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint ("SEU END-POINT.us-west-2T.aw) CA.crt ","/home/linaro/shared/AWS/"SUA CHAVE" -private.pem.key ","/home/linaro/shared/AWS/"SEU CERTIFICADO-certificate.pem.crt")
# AWSIoTMQTTShadowClient -määrityksetAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime (1, 32, 20) myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout (10) # 10 sekunnin myAWSIoCTQT
# Yhdistä AWS IoT: hen
myAWSIoTMQTTShadowClient.connect ()
# Luo laiteShadow jatkuvalla tilauksella
deviceShadowHandler = myAWSIoTMQTTShadowClient.createShadowHandlerWithName ("DBpyAWS1116", True) shadowCallbackContainer_Bot = shadowCallbackContainer (deviceShadowHandler)
# Kuuntele deltat
deviceShadowHandler.shadowRegisterDeltaCallback (shadowCallbackContainer_Bot.customShadowCallback_Delta)
#########################
myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", '{"state": {"toivottu": {"SystemStatus": 1, "SisIlumi": 0, "AC": 0, "Garagem": "Fechada", "Temperatura": 25, "Luminosidade": 123}}} ', 0)
jos _nimi_ == "_pää_":
GPIO (nastat) gpio: run (gpio)
Vaihe 6: Finalização
Após ter concluido os passos anteriores, deve-se inicializar or system executando o código fornecido no passo 5 e inicializar or app através do Ionic, usando o comando Ionic serve.
Mahdollisten vianmääritysten yhteydessä on suositeltavaa käyttää MQTT-asiakasohjelman testausta AWS-palvelussa, todentaa varmenteet ja todentaa ne mielikuvitukseksi enviadas pelata lohikäärmettä ja lähettää sen muodonmuutos AWS-pilveen:
Suositeltava:
Älykkään kodin tekeminen Arduino -ohjausrelemoduulin avulla - Koti -automaatioideoita: 15 vaihetta (kuvilla)
Kuinka tehdä älykäs koti Arduino -ohjausrelemoduulin avulla | Koti -automaatioideoita: Tässä kodin automaatioprojektissa suunnittelemme älykkään kodin relemoduulin, joka voi ohjata 5 kodinkonetta. Tätä relemoduulia voidaan ohjata matkapuhelimella tai älypuhelimella, infrapunakaukosäätimellä tai television kaukosäätimellä, manuaalisella kytkimellä. Tämä älykäs rele voi myös havaita
[HASS.IO] Aloita älykkään kodin rakentaminen ilman koodausta, alle 100 dollaria: 6 askelta
[HASS.IO] Aloita älykkään kodin rakentaminen ilman koodausta, alle 100 dollarilla: Olen viime aikoina sekaisin ja onnistunut tekemään talostani vähemmän "idioottimaisen". Joten aion jakaa kuinka tehdä älykkään kodin järjestelmä, jolla on alhainen hintalappu, korkea yhteensopivuus ja joka toimii saumattomasti ja vakaasti
Älykkään kodin termostaatti: 4 vaihetta
Älykkään kodin termostaatti: Älykkään kodin termostaattimme on ohjelma, joka voi automaattisesti säästää kotitalouden rahaa sähkölaskuissa henkilön mieltymysten perusteella
Älykkään kodin valaistus: 6 vaihetta
Älykkään kodin valaistus: Hei kaverit, tänään aiomme luoda projektin, jossa ohjaamme lamppua ympäröivän valaistuksen perusteella. Käytämme PICO: ta ja valosta riippuvaa vastusta (LDR) valon havaitsemiseen ja sytytämme tai sammutamme hehkulampun sen mukaan, kuinka
Älykkään kodin valvonta Alexan ja Arduinon avulla: 9 vaihetta (kuvilla)
Älykkään kodin valvonta Alexan ja Arduinon avulla: Nykymaailmassa ihmiset viettävät enemmän aikaa työpaikalla kuin kotonaan. Siksi tarvitaan kodin seurantajärjestelmää, jossa ihmiset voivat tutustua talon olosuhteisiin työskennellessään. Olisi vielä parempi, jos yksi c