Daftar Isi:
Video: SHIOT: 6 Langkah
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Este projeto foi desenvolvido para um sistem de iluminação melalui Dweet, dan penggunaan perangkat keras Dragonborad 410C com uma versão linux linaro instalado.
Untuk melakukan aplikasi untuk smartphone untuk menggunakan ionic, e o IDE Visual studio Code.
Langkah 1: Langkah 1: Materiais Uitilizados
1 x Papan Naga 410C
1 x penghubung Mezzanine
1 x modulo led
1 x modulo de suhu
1 x modulo de luminosidade LDR
1 x sensor sentuh modulo
2 x modulo rel
1 x usb teclado
1 x usb mouse
1 x monitor HDMI
conexão com internet
resistor de 1k Ohm para adaptação do led
Langkah 2: Langkah 2: Montagem
a) Plugue atau Linker Mezzanine dan placa da Dragonboard 410C
b) Plugue atau modulo de temperaturea tidak ada conector melakukan ADC2 dan mezzanine
c) Plugue o modulo de sensor de luminosidade tidak ada conector melakukan ADC1 da mezzanine
d) Plugue o modulo de sensor toque no conector do D1 da mezzanine
e) Plugue atau modulo de rele tidak ada konektor untuk D2 da mezzanine
f)Plugue o modulo Led no conector do D3 da mezzanine
g)Plugue o modulo de rele no conector do D4 da mezzanine
h)Plugue o monitor no conector HDMI da placa Dragonboard 410C
i) Colokan atau teclado USB di tempat Dragonboard 410C
j) Colokan atau tetikus USB dan tempat Dragonboard 410C
l) Pasang fonte de alimentação na placa Dragonboard 410C
OBS 1: Devido ao modulo LED ter apena um resistor de 82 Ohm, interferensi media lakukan sensor de temperatur causando valores negativos quando é acionado, rasa perlu dan utilização de um resistor de pelos menos de 1k Ohm sesuai dengan gambar.
OBS 2: Devido ao kit da mezzanine possuir apenas um modulo rele, foi necessá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
Langkah 3: Langkah 3: Codigo Python
#importação das bibliotecas spidev e time
impor spidev
waktu impor
#importação parcial das bibliotecas
dari libsoc impor gpio
dari gpio_96boards impor GPIO
dari dweet impor Dweet
# definição das porta analogica, o sensor de luminosidade dan de suhu serão definidas por endereçamento.
GPIO_CS = GPIO.gpio_id('GPIO_CS')
# definição das portas digitais
TOMBOL = GPIO.gpio_id('GPIO_A')
RELE = GPIO.gpio_id('GPIO_C')
LED = GPIO.gpio_id('GPIO_E')
RELE2 = GPIO.gpio_id('GPIO_G')
#configuraes das GPIOS se IN ou OUT
pin = ((GPIO_CS, 'keluar'), (BUTTON, 'masuk'), (RELE, 'keluar'), (LED, 'keluar'), (RELE2, 'keluar'),)
#configuraes das portas analagicas
spi = spidev. SpiDev()
spi.open(0, 0)
spi.max_speed_hz = 10000
spi.mode = 0b00
spi.bits_per_word = 8
sistem_status = 1
manis = manis()
#konfigurasi lakukan bloco de comando LED dan RELE
def readDigital(gpio):
digital = [0, 0]
digital[0] = gpio.digital_read(LED)
digital[1] = gpio.digital_read(RELE)
kembali digital
def writeDigital(gpio, digital):
tulis = digital
gpio.digital_write(LED, tulis[0])
gpio.digital_write(RELE, tulis[1])
kembali digital
#configurao do bloco para o touch, para o sistema ou ligar o sistema
def detectaButton(gpio):
sistem_status global
status = gpio.digital_read(BUTTON)
jika status == 1:
jika system_status == 0:
sistem_status = 1
sis_status = "Ligado"
print ("Estado melakukan Sistema %s" %sis_status)
lain:
status_sistem = 0
sis_status = "Desligado"
print ("Estado melakukan Sistema %s" %sis_status)
dweet.dweet_by_name(name="shiot", data={"sistema":sis_status})
kembalikan sistem_status
#configurao do bloco para leitura da temperaturea
def readTemp(gpio):
gpio.digital_write(GPIO_CS, GPIO. HIGH)
waktu.tidur(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("Suhu:%2.1f " %adc_temp)
kembali adc_temp
#configurao do bloco para leitura da luminosidade.
def readLumi(gpio):
gpio.digital_write(GPIO_CS, GPIO. HIGH)
waktu.tidur(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)
kembali adcout
#execução dos blocos de comandos
jika _name_=='_main_':
dengan GPIO(pin) sebagai gpio:
sementara Benar:
digital = [0, 0]
jika detectaButton(gpio) == 1:
lumi = bacaLumi(gpio)
# verifikasi da luminosidade para acionamento lakukan rele do conector D4
jika lum < 400:
gpio.digital_write(RELE2, GPIO. HIGH)
luz_status = "Ligado"
lain:
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")
digital[0] = resposta['with'][0]['content']['led']
digital[1] = resposta['dengan'][0]['konten']['rele']
tulisDigital(gpio, digital)
suhu = readTemp(gpio)
digital = bacaDigital(gpio)
#imprime os valores de luminosidade, suhu
print "Temp: %2.1f\nlumi: %d\nled: %d\nrele: %d\n" %(temp, lumi, digital[0], digital[1])
print ("Luz Eksterna:%s" %luz_status)
sis_status = "Ligado"
#envio de dados para o dweet
dweet.dweet_by_name(name="shiot", data={"led":digital[0], "rele": digital[1], "Temperatura":temp, "Luminosidade": lumi, "Luz_externa": luz_status, " sistema":sis_status})
#tempo para cada leiura
waktu.tidur(5)
#devido a metrologia do dweet, deve ser configurado o dweet antes de executar o programa no python.
Langkah 4: Langkah 4: Dweet
Em dweet.io, klik em PLAY.
Em dweets: Membuat atau membaca dweets dalam short term cache, na aba:
POSTING /dweet/quietly/for/{thing}
- tidak ada hal parametro escreva shiot, conforme programa feito no python.
- escreva konten em:
Pertanyaan untuk para os parametro enviados lakukan dweet untuk a Dragonboard410C, kirim 0 untuk desligado dan 1 untuk ligado.
e clique no botão COBALAH.
Jalankan program no terminal da Dragonboard 410C (este deve estar conectado em uma rede com internet):
sudo python smart.py
DAPATKAN:
DAPATKAN /get/dweets/untuk/{hal}
- tidak ada hal parametro escreva shiot, sesuai programa feito no python.
e clique no botão COBALAH.
Em Response Body é obtido algo serupa:
{ "ini": "berhasil", "oleh": "mendapatkan", "yang": "dweets", "dengan": [{ "hal": "shiot", "dibuat": "2017-12-03T19: 30:11.458Z", "content": { "Temperatura": 25.2688172043, "led": 0, "Luminosidade": 504, "Luz_externa": "Apagado", "sistema": "Ligado", "rele": 0 } }, kirim "berhasil", identificando que a conexão foi feito com sucesso e são os parametros osbtidos da Dragonboard410C.
Langkah 5: Langkah 5: Ionic E Virtual Studio Code
para criar pastas e os arquivos para necessários do app
tidak ada perintah de comando lakukan windows:
ion mulai kotoran
abra atau Kode Visual Studio
para construir sebagai paginas html:
Em SRC =>pages=> Beranda => home.html
codigo sesuai arquivo homehtml.txt
Em SRC =>pages=> Home => home.tscodigo sesuai dengan homets.txt
é necessario gerar o dweet.ts untuk comunicar corretamente HTTP e dweet
dan prompt de comando dan pasta lakukan projeto:
penyedia pembangkit ionik dweet
Em SRC =>penyedia=> dweet => dweet.ts
codigo sesuai dengan arquivo dweetts.txt
importação para comunicao
Em SRC =>app=> app.module.ts
codigo sesuai arquivo appmodulets.txt
Langkah 6: Langkah 6: Finalisasi
Tidak ada perintah de comando da pasta do projeto:
servis ionik
Sera aberto no navegador
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, dan Sistema.
mais detalhes do funcionamento no arquivo Dragon.pdf