INHOUDSOPGAWE:
- Stap 1: Materias Necessários
- Stap 2: Sensore, Atuadores E Conexões
- Stap 3: Aplicativo Para Controle Remoto
- Stap 4: Criando Uma "coisa" Na AWS IoT
- Stap 5: Programa Em Python
- Stap 6: Voltooi
Video: Begin met 'n slim huis - Projeto Final: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
'N Slim huis kan 'n uiteindelike projek vir die finale gebruik van IoT bied
Ons kan ook 'n afsonderlike en uiteindelike deel van 'n slimme tuiste gebruik om 'n slim tuiste te bekom, wat konsistente de sensores en atuadores conectados van DrangonBoard + Linker Mezzanine kan bied 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 pre -setada e um sensor de proximidade que será instalado no portão de uma garagem, com a intenção the informar ao proprietário da casa se o portão encontra-se aberto ou fechado.
Stap 1: Materias Necessários
- Plaas DragonBoard.
- 96Boards Linker Mezzanine
- Sensor de luminozidade (LDR) is saam met 'n Linker Mezzanine.
- Temperatuursensor vir meervoudige verbindings.
- Dit is 'n aanraking met 'n Linker Mezzanine.
- Verwant aan 'n Linker -mezzanine, wat ook 'n stelsel vir lugversorging kan gebruik.
- LED -acompanha en Linker Mezzanine, wat 'n illuminação en ser ativada verteenwoordig.
- Instalação das bibliotecas citadas no passo 5.
Stap 2: Sensore, Atuadores E Conexões
1. Linker Mezzanine:
Dit is nodig om 'n mezzanine op 'n draakbord te kry. Vir meer inligting, skakel die konsultant
2. Sensor luminosidade (LDR)
Ons sensor is 'n kit vir 'n linker -mezzanine en kan 'n ADC1 -ingang gebruik. Vir meer besonderhede:
3. Temperatuur sensor
Ons sensor is 'n kit vir 'n linker -mezzanine en kan 'n ADC2 -ingang gebruik. Vir meer besonderhede:
4. Botão Touch
Ons sensor is 'n deel van die kit tussen die mezzanine en die versameling van die D1 -eenheid. Este botão irá ligar/desligar o sistema como um todo. O acesso a este botão é somente local. Vir meer besonderhede: https://linksprite.com/wiki/index.php5? Title = Touch_ …
5. Relé
Ons kan ook 'n mezzanine -kit vir die Linker -eenheid gebruik en die D2 -eenheid konnekteer. Ons kan hierdie e -posadres vir A/C. bestudeer:
6. LED
Ons LED -lampe kan saamgestel word met 'n mezzanine -skakelaar en 'n versameling vir D4. Ons LED -lampe bied 'n omskakeling van 'n interne omskakeling, 'n interne ekstern of 'n eksterne funksie. Ons kan ook 'n weerstand van 10 000 ohm gebruik as 'n bestaan wat bestaan uit 'n korrekte gebruik van 'n stelsel, maar ek kan ook ander ervarings verifieer as 'n analoog analoog. Vir meer besonderhede:
7. Sensor de contato magnético
Este sensor foi comprado a parte e não faz parte do Kit da Linker Mezzanine. Ons kan dit nie gebruik nie. Ons sensor het 'n kombinasie van 2 pequenas peças ('n foto van Step acima), of sensor proprimamente dito e um pequeno "imã", wat ao aproximar-se do sensor irá alterar or estado do sensor. O sensor kan 'n volgende projeto foi um N/A (normalment aberto) gebruik. Ons kan nie 'n sensor of 'n sensor rapporteer nie. Ons kan 'n sensor of 'n verslag doen wat ons kan gebruik.
Stap 3: Aplicativo Para Controle Remoto
Aplicativo foi desenvolvido com o Ionic Framework, https://ionicframework.com/. Dit is noodsaaklik om dit af te laai en uiteindelik 'n uiteindelike weergawe te kry.
A 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. Ons kan die waarde van ons instelling as 'n outomatiese lus gebruik. Dit is 'n intensiewe manier om die waarde te definieer, aangesien luses se apagarão.
- Ons bied 'n A/C -oplossing aan, wat 'n stelsel van A/C -casa kan bied. Ons kan die temperatuur definieer. Ons kan 'n temperatuur as 'n temperatuur oorweeg om 'n temperatuur te bereik, of 'n A/C -temperatuur kan 'n permanente temperatuur in 'n temperatuur van 2 tempreatura definieer. Byvoorbeeld, dit kan oorweeg word om 'n temperatuur van 23 grade te bereik. Ons kan 'n temperatuur in die binnekant van 'n temperatuur van 24, 'n lugversorging en 'n permanente temperatuur in 'n temperatuur van 20 g, of 'n enkele eenheid, gebruik. Depois o ciclo se repetirá.
- Garagem informará a atual posição da garagem, se aberta ou fechada.
- Temperatuur en aanneming van inligting oor die binnenshuise temperatuur.
- 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.
Stap 4: Criando Uma "coisa" Na AWS IoT
Vir die opstelling van IoT en AWS, kan ons ook die volgende funksies gebruik:
1) Skakel na AWS IoT se skakel:
2) Klik "skep 'n ding" en "Skep 'n enkele ding". Klik hier om die volgende te klik.
3) Klik dan op "Skep 'n ding sonder sertifikaat". Ons tutoriale kan ook gebruik word om ons sertifikate te bevraagteken, maar ek kan dit ook aanbeveel vir die gebruik van IoT -sertifikate.
4) Nesse momento, as 'coisa' já estará criada. Klik nie op die "coisa" nie, want dit kan as 'n opmerking gebruik word. Ons kan dit ook gebruik om ons te help met die opsporing van probleme met die oplos van probleme. Geen python kan as 'n ander apresentado vir ons gebruik word nie. Ons kan ook 'n "skaduwee" sien, en dit is 'n inligting oor die draakbord wat na AWS Cloud herlaai word.
Stap 5: Programa Em Python
Aangesien bibliotecas noodsaaklik is vir 'n uitvoerende program:
invoer spidevimport tyd invoer logging invoer json invoer argparse
van libsoc import gpio
vanaf tyd invoer slaap vanaf datum datum invoer, tyd vanaf gpio_96boards invoer GPIO vanaf AWSIoTPythonSDK. MQTTLib invoer AWSIoTMQTTClient vanaf AWSIoTPythonSDK. MQTTLib
Volg die volledige program:
invoer spidevimport tyd invoer logging invoer json invoer argparse
van libsoc import gpio
vanaf tyd invoer slaap vanaf datum datum invoer, tyd vanaf gpio_96boards invoer GPIO vanaf AWSIoTPythonSDK. MQTTLib invoer AWSIoTMQTTClient vanaf AWSIoTPythonSDK. MQTTLib invoer AWSIoTMQTTShadowClient
GPIO_CS = GPIO.gpio_id ('GPIO_CS') #Analoogpoort
BUTTON = GPIO.gpio_id ('GPIO_A') RELE = GPIO.gpio_id ('GPIO_C') LED = GPIO.gpio_id ('GPIO_G')
penne = ((GPIO_CS, 'uit'), (KNOP, 'in'), (RELE, 'uit'), (LED, 'uit'),)
def setdevices (deltaMessagePython):
System_Status = deltaMessagePython ['SystemStatus'] Rele_Status = deltaMessagePython ['AC'] Led_Status = deltaMessagePython ['SisIlumi']
##### AC
as Rele_Status == 1: gpio.digital_write (RELE, GPIO. HIGH)
as Rele_Status == 0:
gpio.digital_write (RELE, GPIO. LOW)
##### Sistema de Iluminacao
as Led_Status == 1: gpio.digital_write (LED, GPIO. HIGH) as 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 - Temperatuur gpio.digital_write (GPIO_CS, GPIO. HIGH) adcout = (r [1] << 8) & 0b1100000000 adcout = adcout | (r [2] & 0xff) adc_temp = (advertensie *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) nou = datetime.utcnow () now_str = now.strftime ('%Y-%m-%dT%H:%M:%SZ') temperatuura = "{:.2f} ". Format (adc_temp) payload_temp = '{" state ": {" gewenst ": {" Luminosidade ":' + adcoutldr + '," Temperatura ":' + temperatura + '}}}' myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", payload_temp, 0) opgawe r
def desliga ():
gpio.digital_write (RELE, GPIO. LOW) gpio.digital_write (LED, GPIO. LOW)
def run (gpio):
stelselstatus = 1
terwyl dit waar is:
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 () as system_status == 1: value = readadc (gpio) druk "SYSTEM_STATUS %d" %system_status time.sleep (3)
klas shadowCallbackContainer:
def _init _ (self, deviceShadowInstance): self.deviceShadowInstance = deviceShadowInstance
# Aangepaste skadu -terugbel
def customShadowCallback_Delta (self, payload, responseStatus, token): print ("Ontvang 'n delta -boodskap:") ### payload update script payloadDict = json.loads (payload) deltaMessage = json.dumps (payloadDict ["state"]) print "DELTA MESSAGE %s" %deltaMessage ### Versoek om die gerapporteerde toestand op te dateer newPayload = '{"state": {"gerapporteer":' + 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
######## Ding definisie
# AWS IoT -sertifikaatgebaseerde verbinding
myMQTTClient = AWSIoTMQTTClient ("DBpyAWS1116") myMQTTClient.configureEndpoint ("a28rqf8gnpw7g.iot.us-west-2.amazonaws.com", 8883) myMQTTClient.configureCredentials ("/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/"/home/, "/home/linaro/shared/AWS/" SUA CHAVE "-private.pem.key", "/home/linaro/shared/AWS/" SEU CERTIFICADO "-certificate.pem.crt") myMQTTClient.configureOfflinePublishQueueing (- 1) # Oneindig op die regte pad Publiseer tou myMQTTClient.configureDrainingFrequency (2) # Draining: 2 Hz myMQTTClient.configureConnectDisconnectTimeout (10) # 10 sec myMQTTClient.configureMQTTOperationTimeout (5) # 5 secTCTC (myQTlient) en publiseer my. MinTlient (myQ) coisajsb "," verbind ", 0)
########################
######## Skadu definisie
# Eerste AWSIoTMQTTShadowClient
myAWSIoTMQTTShadowClient = Geen myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient ("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint ("SEU END-POINT.us" CA.crt ","/home/linaro/shared/AWS/"SUA CHAVE" -private.pem.key ","/home/linaro/shared/AWS/"SEU CERTIFICADO-certificate.pem.crt")
# AWSIoTMQTTShadowClient -konfigurasiemyAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime (1, 32, 20) myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout (10) # 10 sek myAWSIoTMQThout (5) sek.
# Koppel aan AWS IoT
myAWSIoTMQTTShadowClient.connect ()
# Skep 'n apparaatskadu met volgehoue intekening
deviceShadowHandler = myAWSIoTMQTTShadowClient.createShadowHandlerWithName ("DBpyAWS1116", True) shadowCallbackContainer_Bot = shadowCallbackContainer (deviceShadowHandler)
# Luister op deltas
deviceShadowHandler.shadowRegisterDeltaCallback (shadowCallbackContainer_Bot.customShadowCallback_Delta)
#########################
myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", '{"state": {"gewenste": {"SystemStatus": 1, "SisIlumi": 0, "AC": 0, "Garagem": "Fechada", "Tempera": 25, "Luminosidade": 123}}} ', 0)
as _naam_ == "_hoof_":
met GPIO (penne) as gpio: hardloop (gpio)
Stap 6: Voltooi
Ons kan 'n samevatting van die anoniore, die inisieer van die stelsel of die uitvoer van 'n stelsel gebruik, maar ook 'n amptelike app vir Ioniese diens, sowel as vir 'n Ioniese diens.
Vir moontlike probleme op te los, kan ons 'n funksie van MQTT-kliëntetoets vir AWS aanbeveel, en dit kan ook as 'n moontlike weergawe van die draakbord gebruik word om die formule van AWS Cloud te verwerk: https://us-west-2.console.aws.amazon.com/iotv2/hom …
Aanbeveel:
Hoe om 'n slim huis te maak met behulp van Arduino Control Relay Module - Tuis outomatisering idees: 15 stappe (met foto's)
Hoe om 'n slim huis te maak met behulp van Arduino Control Relay Module | Tuisautomatiseringsidees: In hierdie tuisautomatiseringsprojek ontwerp ons 'n slim huis -aflosmodule wat 5 huistoestelle kan beheer. Hierdie aflosmodule kan beheer word vanaf mobiele of slimfoon, IR -afstandsbediening of TV -afstandsbediening, handskakelaar. Hierdie slim aflos kan ook die r
Slim huis met Arduino MKR1000 en M.I.T. Android -app: 4 stappe
Slim huis met Arduino MKR1000 en M.I.T. Android -app: in hierdie tutoriaal beskryf ek hoe u u slim huis kan verbeter met slegs 'n paar komponente. (Massachusetts Instituut
Slim huis met behulp van Amazon Alexa: 5 stappe
Slim huis met behulp van Amazon Alexa: Die basiese idee agter hierdie projek is om 'n elektroniese toestel te beheer met behulp van Amazon Alexa of via die app van oral in die wêreld. Hiervoor gebruik ons 'n Node MCU V1.0. Al die kode sal op my Github -bladsy verskyn. As u dit op geen stadium doen nie
[HASS.IO] Begin met die bou van u slim huis sonder kodering, vir minder as $ 100: 6 stappe
[HASS.IO] Begin met die bou van u slim huis sonder kodering, vir minder as $ 100: Onlangs het ek geknoei en my huis suksesvol minder "idioties" gemaak. Ek gaan dus deel hoe ek 'n slimhuisstelsel kan maak met 'n lae prys, 'n hoë versoenbaarheid wat soomloos en stabiel kan werk
Beveilig u slim huis slim: 14 stappe
Beveilig u slim huis slim: ek neem deel aan die veilige wedstryd. As u van my instruksies hou, stem dan daarvoor! Ek sal u wys hoe u u huis en sy omgewing maklik en goedkoop kan beveilig. Dit bevat segmente waar u sal leer: 1. Stel j op