Mục lục:
Video: SHIOT: 6 bước
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Este projeto foi desenvolvido para um sistema de iluminação qua Dweet, e foi useizado o phần cứng Dragonborad 410C com uma versão linux linaro instalado.
E para o desenvolvimento do aplicativo para o smartphone foi useizado o ionic, e o IDE Visual studio Code.
Bước 1: Bước 1: Materiais Uitilizados
1 x Dragonboard 410C
1 x tầng lửng liên kết
1 x led modulo
1 x modulo de temperatura
1 x modulo de luminosidade LDR
1 x cảm biến cảm ứng modulo
2 x mô-đun xuống hạng
1 x usb teclado
1 x chuột usb
1 x màn hình hdmi
conexão com một internet
điện trở de 1k Ohms para adaptação do led
Bước 2: Bước 2: Montagem
a) Plugue o Linker Mezzanine na sa khoáng da Dragonboard 410C
b) Plugue o modulo de temperatura no conector do ADC2 da lửng
c) Plugue o modulo de sensor de luminosidade no conector do ADC1 da lửng
d) Plugue o modulo de sensor toque no conector do D1 da lửng
e) Plugue o modulo de des no conector do D2 da lửng
f) Plugue o modulo Led không có đầu nối hình nón do D3 da lửng
g) Plugue o modulo de des no conector do D4 da lửng
h) Đầu cắm o màn hình không có đầu cắm HDMI da sa khoáng Dragonboard 410C
i) Plugue o teclado USB na nhau Bảng rồng 410C
j) Đầu cắm o chuột USB na nhau Bảng rồng 410C
l) Plugue a fonte de alimentação na sa khoáng Bảng rồng 410C
OBS 1: Devido ao modulo LED ter apenas um điện trở de 82 Ohms, giao thoa na trung gian do cảm biến de temperatura causando valores negativos quando é acionado, senso needário a useização de um điện trở de pelos menos de 1k Ohms conforme figura.
OBS 2: Bộ áo khoác Devido da lửng có thể sở hữu các loài vượn cáo um modulo xuống, foi cần thiết phải điều chỉnh bộ thích ứng um modulo xuống chi tiết, thiết bị có hình nón D4 da lửng, interligando cabo VCC không có VCC, GND không GND, e o de sinal no D_G da lửng
Bước 3: Bước 3: Codigo Python
# importação das bibliotecas spidev e time
nhập khẩu spidev
thời gian nhập khẩu
# importação parcial das bibliotecas
từ libsoc nhập gpio
từ gpio_96boards nhập GPIO
từ dweet nhập Dweet
# Defção das porta analogica, o sensor de luminosidade e de temperatura serão Defdas por endereçamento.
GPIO_CS = GPIO.gpio_id ('GPIO_CS')
# Defçã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')
# configurações das GPIOS se IN ou OUT
các chân = ((GPIO_CS, 'out'), (NÚT, '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
system_status = 1
dweet = Dweet ()
# configurações do bloco de comando LED e RELE
def readDigital (gpio):
kỹ thuật số = [0, 0]
kỹ thuật số [0] = gpio.digital_read (LED)
kỹ thuật số [1] = gpio.digital_read (RELE)
trả lại kỹ thuật số
def writeDigital (gpio, digital):
ghi = kỹ thuật số
gpio.digital_write (LED, ghi [0])
gpio.digital_write (RELE, viết [1])
trả lại kỹ thuật số
# configuração do bloco para o touch, para o sistema ou ligar o sistema
def DetaButton (gpio):
global system_status
status = gpio.digital_read (BUTTON)
nếu trạng thái == 1:
nếu system_status == 0:
system_status = 1
sis_status = "Ligado"
print ("Estado do Sistema% s"% sis_status)
khác:
system_status = 0
sis_status = "Desligado"
print ("Estado do Sistema% s"% sis_status)
dweet.dweet_by_name (name = "shiot", data = {"sistema": sis_status})
trả về system_status
# configuraçã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] & 0xff)
adc_temp = (adcout * 5.0 / 1023-0.5) * 100
#print ("Temperatura:% 2.1f"% adc_temp)
trả lại adc_temp
# configuraçã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] & 0xff)
trả lại adcout
# executeução dos blocos de comandos
if _name _ == '_ main_':
với GPIO (chân) dưới dạng gpio:
trong khi Đúng:
kỹ thuật số = [0, 0]
nếu detaButton (gpio) == 1:
lumi = readLumi (gpio)
# Verificação da luminosidade para acionamento do eval do conector D4
nếu lumi <400:
gpio.digital_write (RELE2, GPIO. HIGH)
luz_status = "Ligado"
khác:
gpio.digital_write (RELE2, GPIO. LOW)
luz_status = "Apagado"
# Verificação no dweet para acionamento đã dẫn đầu e / ou xuống hạng
resposta = dweet.latest_dweet (name = "shiot")
digital [0] = resposta ['with'] [0] ['content'] ['led']
kỹ thuật số [1] = resposta ['với'] [0] ['nội dung'] ['xuống hạng']
writeDigital (gpio, kỹ thuật số)
temp = readTemp (gpio)
kỹ thuật số = readDigital (gpio)
#imprime os valores de luminosidade, temperatura
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 para o dweet
dweet.dweet_by_name (name = "shiot", data = {"led": digital [0], "eval": digital [1], "Temperatura": temp, "Luminosidade": lumi, "Luz_externa": luz_status, " Sistema ": sis_status})
#tempo para cada leitura
time.sleep (5)
#devido a metodologia do dweet, deve ser configurado o dweet antes de inheritutar o programma no python.
Bước 4: Bước 4: Dweet
Em dweet.io, clique em CHƠI.
Em dweets: Tạo hoặc đọc dweet trong bộ nhớ cache ngắn hạn, na aba:
ĐĂNG / dweet / lặng lẽ / cho / {điều}
- không có điều parametro escreva shiot, conforme programma feito không có python.
- em nội dung escreva:
Que são os para os parametros enviados do dweet para a Dragonboard410C, sendo 0 para desligado e 1 para ligado.
e clique no botão HÃY THỬ.
Thực thi o programma no terminal da Dragonboard 410C (este deve estar conectado em uma red com internet):
sudo python smart.py
Na aba NHẬN:
GET / get / dweets / for / {thing}
- không có điều parametro escreva shiot, conforme programma feito không có python.
e clique no botão HÃY THỬ.
Em Response Body é obtido algo tương tự:
Bước 5: Bước 5: Mã Ionic E Virtual Studio Code
para criar pastas e os arquivos para needários do app
no prompt de comando do windows:
ionic start shiot
abra o Mã Visual Studio
para construir as paginas html:
Em SRC => trang => Trang chủ => home.html
codigo conforme arquivo homehtml.txt
Em SRC => trang => Trang chủ => home.tscodigo conforme arquivo homets.txt
é needario gerar o dweet.ts para comunicar corretamente HTTP e dweet
na prompt de comando na pasta do projeto:
dweet nhà cung cấp tạo ion
Em SRC => nhà cung cấp => dweet => dweet.ts
codigo conforme arquivo dweetts.txt
importação para comunicação
Em SRC => app => app.module.ts
codigo conforme arquivo appmodulets.txt
Bước 6: Bước 6: Finalização
No prompt de comando da pasta do projeto:
giao bóng ion
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 des 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