Sadržaj:
Video: SHIOT: 6 koraka
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Este projekto foi desenvolvido para um system de illuminação via Dweet, e foi useado hardverski Dragonborad 410C com uma verão linux linaro instalado.
E para o desenvolvimento do aplicativo para ili smartphone za korištenje o ionic, ili o IDE Visual Studio Code.
Korak 1: Korak 1: Materiais Uitilizados
1 x Dragonboard 410C
1 x poveznica Mezanin
1 x modulo LED
1 x temperatura po modulu
1 x modularno luminosidade LDR
1 x modularni osjetnik na dodir
2 x modulos rele
1 x teclado usb
1 x USB miš
1 x Hdmi monitor
conexão com internet
otpornik od 1 k Ohma za prilagodbu LED -a
Korak 2: Korak 2: Montaža
a) Plugue o Linker Mezzanine na placa da Dragonboard 410C
b) Uključivanje o modulu temperature bez konektora do ADC2 u polukatu
c) Priključak o modulo senzora za osvjetljavanje bez priključka do ADC1 u polukatu
d) Uključite ili isključite osjetnik po modulu bez priključka do D1 u polukatu
e) Plugue o modulo de rele no conector do D2 da polukat
f) Plugue o modulo Led no conector do D3 da polukat
g) Plugue o modulo de rele no conector do D4 da polukat
h) Priključite monitor ili priključak bez priključka HDMI za Dragonboard 410C
i) Priključite USB priključak na ploču Dragonboard 410C
j) Priključite miš na USB na ploči Dragonboard 410C
l) Plugue a fonte de alimentação na placa Dragonboard 410C
OBS 1: Devido ili modularni LED termalni otpornik s otpornikom od 82 Ohma, smetnje na mediju do osjetnika temperature koji uzrokuju negativne utjecaje na akciju, osjetnik mora upotrijebiti otpornik na mjerilu od 1 k Ohma u skladu sa slikom.
OBS 2: Devido ao kit da mezzanine ima dodatne apene po modulu rele, za potrebe adaptacije um modulo rele generico, ne koristi spojni element D4 u međukatu, interligando cabo VCC nema VCC, GND nema GND, e o de sinal no D_G da međukat
Korak 3: Korak 3: Codigo Python
#importação das bibliotecas spidev e time
uvoz spidev
vrijeme uvoza
#importação parcial das bibliotecas
iz libsoc import gpio
s gpio_96boards uvozite GPIO
from dweet import Dweet
# definição das porta analogica, o sensor de luminosidade e de temperature serão definidas por endereçamento.
GPIO_CS = GPIO.gpio_id ('GPIO_CS')
# definição das portas digitais
BUTTON = GPIO.gpio_id ('GPIO_A')
RELE = GPIO.gpio_id ('GPIO_C')
LED = GPIO.gpio_id ('GPIO_E')
RELE2 = GPIO.gpio_id ('GPIO_G')
#konfiguracija za GPIOS se IN OU OUT
pinovi = ((GPIO_CS, 'out'), (BUTTON, 'in'), (RELE, 'out'), (LED, 'out'), (RELE2, 'out'),)
#configurações das portas analagicas
spi = spidev. SpiDev ()
spi.open (0, 0)
spi.max_speed_hz = 10000
spi.mode = 0b00
spi.bits_per_word = 8
sustav_status = 1
dweet = Dweet ()
#konfiguracije do bloka de komande LED i RELE
def readDigital (gpio):
digitalno = [0, 0]
digitalno [0] = gpio.digital_read (LED)
digitalno [1] = gpio.digital_read (RELE)
digitalni povrat
def writeDigital (gpio, digitalno):
write = digitalno
gpio.digital_write (LED, upišite [0])
gpio.digital_write (RELE, upišite [1])
digitalni povrat
#configuração do bloco para o touch, para o sistemu ou ligar o sistemu
def detectaButton (gpio):
globalni sustav_statusa
status = gpio.digital_read (BUTTON)
ako je status == 1:
ako je system_status == 0:
sustav_status = 1
sis_status = "Ligado"
print ("Estado do Sistema %s" %sis_status)
drugo:
sustav_status = 0
sis_status = "Desligado"
print ("Estado do Sistema %s" %sis_status)
dweet.dweet_by_name (name = "shiot", podaci = {"sistema": sis_status})
return system_status
#configuração do bloco para leitura da temperatura
def readTemp (gpio):
gpio.digital_write (GPIO_CS, GPIO. HIGH)
vrijeme.spavanje (0,0002)
gpio.digital_write (GPIO_CS, GPIO. LOW)
r = spi.xfer2 ([0x01, 0xA0, 0x00])
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
#print ("Temperatura: %2.1f" %adc_temp)
vrati adc_temp
#configuração do bloco para leitura da luminosidade.
def readLumi (gpio):
gpio.digital_write (GPIO_CS, GPIO. HIGH)
vrijeme.spavanje (0,0002)
gpio.digital_write (GPIO_CS, GPIO. LOW)
r = spi.xfer2 ([0x01, 0x80, 0x00])
gpio.digital_write (GPIO_CS, GPIO. HIGH)
adcout = (r [1] << 8) & 0b1100000000
adcout = adcout | (r [2] & 0xff)
povratiti adcout
#execução dos blocos de comandos
ako je _name _ == '_ main_':
s GPIO -om (pinovi) kao gpio:
dok je istina:
digitalno = [0, 0]
ako je detectaButton (gpio) == 1:
lumi = čitajLumi (gpio)
# verificação da luminosidade para acionamento do rele do konektor D4
ako je lumi <400:
gpio.digital_write (RELE2, GPIO. HIGH)
luz_status = "Ligado"
drugo:
gpio.digital_write (RELE2, GPIO. LOW)
luz_status = "Apagado"
#verificação no dweet para acionamento do led e/ou rele
resposta = dweet.latest_dweet (name = "shiot")
digitalno [0] = resposta ['s'] [0] ['sadržaj'] ['led']
digitalno [1] = odgovor ['s'] [0] ['sadržaj'] ['rele']
writeDigital (gpio, digitalno)
temp = readTemp (gpio)
digital = čitanjeDigital (gpio)
#imprime os valores de luminosidade, temperatura
ispis "Temp: %2.1f / nlumi: %d / nled: %d / nrele: %d / n" %(temp, lumi, digitalno [0], digitalno [1])
print ("Luz Externa: %s" %luz_status)
sis_status = "Ligado"
#envio de dados para o dweet
dweet.dweet_by_name (name = "shiot", data = {"led": digitalno [0], "rele": digitalno [1], "Temperatura": temp, "Luminosidade": lumi, "Luz_externa": luz_status, " sistem ": sis_status})
#tempo para cada leitura
vrijeme.spavanje (5)
#devido a metodologia do dweet, deve ser configurado o dweet antes de executar o programu bez pythona.
Korak 4: Korak 4: Slatko
Em dweet.io, clique em IGRAJ.
Em dweets: Stvaranje ili čitanje dweetova u kratkoročnoj predmemoriji, na aba:
POST/dweet/tiho/za/{thing}
- no parametro thing escreva shiot, conforme programa feito no python.
- em sadržaj escreva:
Que são os para os parametros enviados do dweet para Dragonboard410C, sendo 0 para desligado e 1 para ligado.
e clique no botão ISPROBAJTE.
Izvršite program bez terminala za Dragonboard 410C (este deve estar conectado em uma rede com internet):
sudo python smart.py
Na aba DOBIJI:
GET/get/dweets/for/{thing}
- no parametro thing escreva shiot, conforme programa feito no python.
e clique no botão ISPROBAJTE.
Em Response Body je sličan:
Korak 5: Korak 5: Kôd virtualnog studija Ionic E
para criar pastas e os arquivos para needários do app
nema obavijesti o komandama za prozore:
ionski startni shiot
abra o Visual Studio Code
para konstruiran kao html stranice:
Em SRC => stranice => Početna => home.html
codigo conforme arquivo homehtml.txt
Em SRC => stranice => Početna => home.tscodigo conforme arquivo homets.txt
é needario gerar o dweet.ts para comunicar corretamente HTTP e dweet
na promptu de comando na tjestenini do projeto:
ionic generirati dweet
Em SRC => pružatelji usluga => dweet => dweet.ts
codigo conforme arquivo dweetts.txt
importação para comunicação
Em SRC => app => app.module.ts
codigo conforme arquivo appmodulets.txt
Korak 6: Korak 6: Finalização
No prompt de comando da pasta do projeto:
ionski servis
Sera aberto no navegador https:// localhost: 8100/
Sendo gerado uma tela com Led que pode ser ligado ou desligado com uma "chave liga/desliga".
Sendo gerado uma tela com rele que pode ser ligado ou desligado com uma "chave liga/desliga".
E monitorramento de Temperatura, Iluminação, Luz externa, e Sistema.
mais detalhes do funcionamento no arquivo Dragon.pdf