Innholdsfortegnelse:
Video: SHIOT: 6 trinn
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Este projeto foi desenvolvido para um system of iluminação via Dweet, e foi utilizado or hardware Dragonborad 410C com oma versão linux linaro install.
E para o desenvolvimento do aplicativo for a smartphone foi utilizado o ionic, e o IDE Visual studio Code.
Trinn 1: Trinn 1: Materiais Uitilizados
1 x Dragonboard 410C
1 x linker Mezzanine
1 x modulo led
1 x temperaturmodul
1 x modulo de luminosidade LDR
1 x modulo berøringssensor
2 x moduler rele
1 x teclado usb
1 x mus usb
1 x skjerm Hdmi
conexão com et internett
motstand de 1k Ohms for adaptação do led
Trinn 2: Trinn 2: Montagem
a) Plugge o Linker Mezzanine og placa da Dragonboard 410C
b) Plugge o temperaturo modulo no conector do ADC2 da mezzanine
c) En modul for sensorens lysgjennomgang uten konektor for ADC1 og mellometasje
d) Plugge o modulo de sensor toque no conector do D1 da mezzanine
e) Plugge o modulo de rele no conector do D2 da mezzanine
f) Plugue o modulo Led no conector do D3 da mezzanine
g) Plugge o modulo de rele no conector do D4 da mezzanine
h) Plugge o monitor no conector HDMI da placa Dragonboard 410C
i) USB -plugg og plassering av Dragonboard 410C
j) USB -plugg til mus og plassering av Dragonboard 410C
l) Plugge a fonte de alimentação na placa Dragonboard 410C
OBS 1: LED -lampe for 82 ohm motstand, forstyrrelse av temperatursensoren for en negativ effekt og en følelse som er nødvendig for å kunne bruke en motstand i pelene på 1 k ohm -figurer.
OBS 2: Devido ao kit da mezzanine possuir apenas um modulo rele, foi needsário adaptador um modulo rele generico, utilizado no conector D4 da mezzanine, interligando cabo VCC no VCC, GND no GND, e o de sinal no D_G da mezzanine
Trinn 3: Trinn 3: Codigo Python
#importação das bibliotecas spidev e time
import spidev
importtid
#importação parcial das bibliotecas
fra libsoc import gpio
fra gpio_96boards importer GPIO
fra dweet import Dweet
# definição das porta analogica, o sensor de luminosidade e de temperatura serão definidas por endereçamento.
GPIO_CS = GPIO.gpio_id ('GPIO_CS')
# definição das portas digitais
KNAPP = GPIO.gpio_id ('GPIO_A')
RELE = GPIO.gpio_id ('GPIO_C')
LED = GPIO.gpio_id ('GPIO_E')
RELE2 = GPIO.gpio_id ('GPIO_G')
#konfigurações das GPIOS se IN ou OUT
pins = ((GPIO_CS, 'out'), (BUTTON, 'in'), (RELE, 'out'), (LED, 'out'), (RELE2, 'out'),)
#konfigurações das portas analagicas
spi = spidev. SpiDev ()
spi.open (0, 0)
spi.max_speed_hz = 10000
spi.mode = 0b00
spi.bits_per_word = 8
system_status = 1
dweet = Dweet ()
#konfigurações do bloco de comando LED e RELE
def readDigital (gpio):
digital = [0, 0]
digital [0] = gpio.digital_read (LED)
digital [1] = gpio.digital_read (RELE)
returnere digitalt
def writeDigital (gpio, digital):
skrive = digitalt
gpio.digital_write (LED, skriv [0])
gpio.digital_write (RELE, skriv [1])
returnere digitalt
#konfiguração do bloco para o touch, para o sistema ou ligar o system
def detectaButton (gpio):
global systemstatus
status = gpio.digital_read (KNAPP)
hvis status == 1:
hvis systemstatus == 0:
system_status = 1
sis_status = "Ligado"
print ("Estado do Sistema %s" %sis_status)
ellers:
system_status = 0
sis_status = "Desligado"
print ("Estado do Sistema %s" %sis_status)
dweet.dweet_by_name (navn = "shiot", data = {"system": sis_status})
returner system_status
#konfiguração do bloco para leitura da temperatura
def readTemp (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])
gpio.digital_write (GPIO_CS, GPIO. HIGH)
adcout = (r [1] << 8) & 0b1100000000
adcout = adcout | (r [2] og 0xff)
adc_temp = (adcout *5.0/1023-0.5) *100
#print ("Temperatura: %2.1f" %adc_temp)
returner adc_temp
#konfiguração do bloco para leitura da luminosidade.
def readLumi (gpio):
gpio.digital_write (GPIO_CS, GPIO. HIGH)
time.sleep (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] og 0xff)
return adcout
#execução dos blocos de comandos
hvis _name _ == '_ main_':
med GPIO (pins) som gpio:
mens det er sant:
digital = [0, 0]
hvis detectaButton (gpio) == 1:
lumi = readLumi (gpio)
# verificação da luminosidade para acionamento do rele do conector D4
hvis lumi <400:
gpio.digital_write (RELE2, GPIO. HIGH)
luz_status = "Ligado"
ellers:
gpio.digital_write (RELE2, GPIO. LOW)
luz_status = "Apagado"
#verificação no dweet para acionamento do led e/ou rele
resposta = dweet.latest_dweet (navn = "shiot")
digital [0] = resposta ['med'] [0] ['innhold'] ['ledet']
digital [1] = resposta ['med'] [0] ['innhold'] ['rele']
writeDigital (gpio, digital)
temp = readTemp (gpio)
digital = readDigital (gpio)
#imprime os valores de luminosidade, temperatur
print "Temp: %2.1f / nlumi: %d / nled: %d / nrele: %d / n" %(temp, lumi, digital [0], digital [1])
print ("Luz Externa: %s" %luz_status)
sis_status = "Ligado"
#envio de dados for dweet
dweet.dweet_by_name (name = "shiot", data = {"led": digital [0], "rele": digital [1], "Temperatura": temp, "Luminosidade": lumi, "Luz_externa": luz_status, " system ": sis_status})
#tempo for cada leitura
tid. sover (5)
#devido a metodologia do dweet, deve ser configurado o dweet antes de executar o programa no python.
Trinn 4: Trinn 4: Dweet
Em dweet.io, klikk på PLAY.
Em dweets: Opprett eller les dweets i kortsiktig buffer, eller:
POST/dweet/quietly/for/{ting}
- no parametro thing escreva shiot, conforme programa feito no python.
- em content escreva:
Du kan også parere parametere for å twitre for Dragonboard410C, eller sende 0 for en eller to deler.
e clique no botão PRØV det.
Utfør programa no terminal da Dragonboard 410C (este deve estar conectado em uma rede com internet):
sudo python smart.py
Na aba FÅ:
GET/get/dweets/for/{ting}
- no parametro thing escreva shiot, conforme programa feito no python.
e clique no botão PRØV det.
Em Response Body é obtido algo lignende:
Trinn 5: Trinn 5: Ionic E Virtual Studio Code
para criar pastas e os arquivos para necessários do app
no prompt de comando do windows:
ionisk start shiot
fra Visual Studio Code
para construir as paginas html:
Em SRC => sider => Hjem => hjem.html
codigo conforme arquivo homehtml.txt
Em SRC => sider => Hjem => home.tscodigo conforme arquivo homets.txt
é nødvendario gerar o dweet.ts para comunicar corretamente HTTP e dweet
na prompt de comando na pasta do projeto:
ionisk generere leverandør dweet
Em SRC => tilbydere => dweet => dweet.ts
codigo conforme arquivo dweetts.txt
importação for comunicação
Em SRC => app => app.module.ts
codigo conforme arquivo appmodulets.txt
Trinn 6: Trinn 6: Finalização
No prompt de comando da pasta do projeto:
ionisk servering
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 monitoramento de Temperatura, Iluminação, Luz externa, e Sistema.
mais detalhes do funcionamento no arquivo Dragon.pdf