Cov txheej txheem:

SHIOT: 6 Cov kauj ruam
SHIOT: 6 Cov kauj ruam

Video: SHIOT: 6 Cov kauj ruam

Video: SHIOT: 6 Cov kauj ruam
Video: Shocking video shows Suge Knight hit-and-run incident 2024, Kaum ib hlis
Anonim
SHIOT
SHIOT

Este projeto foi desenvolvido para um sistema de iluminação via Dweet, e foi utilizado o hardware Dragonborad 410C com uma versão linux linaro instalado.

Txhawm rau kom ua tau raws li qhov xav tau ntawm lub xov tooj ntawm tes siv los ntawm ionic, e IDE Visual studio Code.

Kauj Ruam 1: Kauj Ruam 1: Cov Khoom Siv Uitilizados

Kauj Ruam 1: Cov Khoom Siv Ua Ntej
Kauj Ruam 1: Cov Khoom Siv Ua Ntej
Kauj Ruam 1: Cov Khoom Siv Ua Ntej
Kauj Ruam 1: Cov Khoom Siv Ua Ntej
Kauj Ruam 1: Cov Khoom Siv Ua Ntej
Kauj Ruam 1: Cov Khoom Siv Ua Ntej
Kauj Ruam 1: Cov Khoom Siv Ua Ntej
Kauj Ruam 1: Cov Khoom Siv Ua Ntej

1 x Dragonboard 410C

1 x txuas Mezzanine

1 x modulo coj

1 x modulo de kub

1 x modulo de luminosidade LDR

1 x modulo kov sensor

2 x modulos tso

1 x teclado usb

1x usb mus

1 x saib Hdmi

conexão com hauv internet

resistor de 1k Ohms rau kev hloov pauv coj

Kauj Ruam 2: Kauj Ruam 2: Montagem

Kauj ruam 2: Montagem
Kauj ruam 2: Montagem
Kauj ruam 2: Montagem
Kauj ruam 2: Montagem
Kauj ruam 2: Montagem
Kauj ruam 2: Montagem

a) Plugue lossis Linker Mezzanine nrog rau ntawm Dragonboard 410C

b) Plugue lossis modulo de temperatura no conector do ADC2 da mezzanine

c) Plugue lossis modulo de sensor de luminosidade tsis muaj txuas rau ADC1 da mezzanine

d) Plugue o modulo de sensor toque no conector do D1 da mezzanine

e) Plugue lossis modulo de rele no conector ua D2 da mezzanine

f) Plugue lossis modulo Led tsis muaj kev sib txuas ua D3 da mezzanine

g) Plugue lossis modulo de rele no conector ua D4 da mezzanine

h) Txuas los yog saib tsis muaj tus txuas HDMI thiab tso rau Dragonboard 410C

i) Txuas los ntawm teclado USB thiab tso rau Dragonboard 410C

j) Txuas lossis nas USB nrog rau Dragonboard 410C

l) Txuas lub fonte de alimentação na placa Dragonboard 410C

OBS 1: Devido ao modulo LED ter apenas um resistor de 82 Ohms, cuam tshuam rau nruab nrab ua qhov ntsuas hluav taws xob ua rau lub cev ua rau muaj txiaj ntsig tsis zoo negativos quando é acionado, senso necessário a utilização de um resistor de pelos menos de 1k Ohms conforme figura.

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

Kauj Ruam 3: Kauj Ruam 3: Codigo Python

#importação das bibliotecas spidev e lub sijhawm

ntshuam spidev

lub sij hawm ntshuam

#importação parcial das bibliotecas

los ntawm libsoc ntshuam gpio

los ntawm gpio_96boards ntshuam GPIO

los ntawm 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')

# lub ntsiab lus tseem ceeb 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

pins = ((GPIO_CS, 'tawm'), (BUTTON, 'hauv'), (RELE, 'tawm'), (LED, 'tawm'), (RELE2, 'tawm'),)

#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 ()

#teeb tsa ua bloco de comando LED e RELE

def nyeemDigital (gpio):

cov = [0, 0]

cov [0] = gpio.digital_read (LED)

digital [1] = gpio.digital_read (RELE)

rov qab digital

def sauDigital (gpio, digital):

sau = digital

gpio.digital_write (LED, sau [0])

gpio.digital_write (RELE, sau [1])

rov qab digital

#teeb tsa ua rau bloco rau o kov, para o sistema ou ligar o sistema

def detectaButton (gpio): cov

ntiaj teb system_status

xwm txheej = gpio.digital_read (BUTTON)

yog xwm txheej == 1:

yog system_status == 0:

system_status = 1

sis_status = "Ligado"

print ("Estado do Sistema %s" %sis_status)

lwm tus:

system_status = 0

sis_status = "Desligado"

print ("Estado do Sistema %s" %sis_status)

dweet.dweet_by_name (name = "shiot", data = {"system": sis_status})

rov qab system_status

#configuração ua bloco para leitura da temperatura

def nyeemTemp (gpio):

gpio.digital_write (GPIO_CS, GPIO. HIGH)

lub sij hawm.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 ("Kub: %2.1f" %adc_temp)

rov adc_temp

#teeb tsa koj cov bloco para leitura da luminosidade.

def nyeemLumi (gpio):

gpio.digital_write (GPIO_CS, GPIO. HIGH)

lub sij hawm.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)

rov adcout

#execução dos blocos de comandos

yog _name _ == '_ main_':

nrog GPIO (pins) ua gpio:

thaum Muaj Tseeb:

cov = [0, 0]

yog tias detectaButton (gpio) == 1:

lumi = nyeemLumi (gpio)

# verificação da luminosidade para acionamento do rele do conector D4

Yog hais tias lumi <400:

gpio.digital_write (RELE2, GPIO. HIGH)

luz_status = "Ligado"

lwm tus:

gpio.digital_write (RELE2, GPIO. LOW)

luz_status = "Apagado"

#verificação tsis muaj dweet para acionamento coj e/ou tso

resposta = dweet.latest_dweet (lub npe = "shiot")

digital [0] = resposta ['nrog'] [0] ['content'] ['led']

digital [1] = resposta ['nrog'] [0] ['content'] ['rele']

writeDigital (gpio, digital)

temp = nyeemTemp (gpio)

cov = 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], "rele": digital [1], "Temperatura": temp, "Luminosidade": lumi, "Luz_externa": luz_status, " system ": sis_status})

#tempo rau cada leitura

sijhawm.sleep (5)

#devido a metodologia do dweet, deve ser configurado o dweet antes de executar o programa no sej.

Kauj Ruam 4: Kauj Ruam 4: Dweet

Kauj ruam 4: Dweet
Kauj ruam 4: Dweet
Kauj ruam 4: Dweet
Kauj ruam 4: Dweet
Kauj ruam 4: Dweet
Kauj ruam 4: Dweet

Em dweet.io, nyem rau ntawm PLAY.

Em dweets: Tsim lossis nyeem dweets nyob rau hauv lub sijhawm luv luv, thiab yog:

POST/dweet/ntsiag to/rau/{yam}

- tsis muaj qhov tseem ceeb tshaj plaws escreva shiot, ua raws txoj haujlwm feito tsis muaj nab hab sej.

- Cov ntsiab lus escreva:

Que são os para os parametros enviados do dweet para a Dragonboard410C, sendo 0 para desligado e 1 para ligado.

e clique tsis muaj botão sim nws tawm.

Ua tiav qhov programa tsis muaj dav hlau ya Dragonboard 410C (este deve estar conectado em uma rede com internet):

sudo nab hab sej smart.py

Hais txog GET:

Tau txais/tau/dweets/rau/{khoom}

- tsis muaj qhov tseem ceeb tshaj plaws escreva shiot, ua raws txoj haujlwm feito tsis muaj nab hab sej.

e clique tsis muaj botão sim nws tawm.

Em Teb Lub Cev é obtido algo zoo sib xws:

Kauj Ruam 5: Kauj Ruam 5: Ionic E Virtual Studio Code

Kauj Ruam 5: Ionic E Virtual Studio Code
Kauj Ruam 5: Ionic E Virtual Studio Code

para criar pastas e os arquivos para necessários ua app

tsis muaj qhov nrawm de comando ua windows:

ionic pib shiot

abra o Visual Studio Code

para construir as paginas html:

Em SRC => nplooj ntawv => Tsev => home.html

codigo ua raws arquivo homehtml.txt

Em SRC => nplooj ntawv => Tsev => tsev.tscodigo ua raws arquivo homets.txt

é necessario gerar o dweet.ts para comunicar corretamente HTTP e dweet

na prompt de comando na pasta do projeto:

ionic tsim tus muab kev pabcuam dweet

Em SRC => cov muab kev pabcuam => dweet => dweet.ts

codigo conforme arquivo dweetts.txt

Qhov tseem ceeb rau kev sib txuas

Em SRC => app => app.module.ts

codigo ua raws arquivo appmodulets.txt

Kauj Ruam 6: Kauj Ruam 6: Kawg

Kauj Ruam 6: Qhov kawg
Kauj Ruam 6: Qhov kawg
Kauj Ruam 6: Qhov kawg
Kauj Ruam 6: Qhov kawg

Tsis muaj qhov xav tau tam sim no ntawm comando da pasta do projeto:

siv ionic

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 tso que pode ser ligado ou desligado com uma "chave liga/desliga".

Kev saib xyuas ntawm Temperatura, Iluminação, Luz externa, e Sistema.

mais detalhes ua funcionamento tsis muaj arquivo Dragon.pdf

Pom zoo: