Kazalo:

IN-FORMA: plataforma De Informações Sobre Sua Cidade: 5 korakov
IN-FORMA: plataforma De Informações Sobre Sua Cidade: 5 korakov

Video: IN-FORMA: plataforma De Informações Sobre Sua Cidade: 5 korakov

Video: IN-FORMA: plataforma De Informações Sobre Sua Cidade: 5 korakov
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Julij
Anonim
IN-FORMA: plataforma De Informações Sobre Sua Cidade
IN-FORMA: plataforma De Informações Sobre Sua Cidade

Quem nunca saiu de casa com roupas de frio e quando chegou no destino estava fazendo o maior sol ?! Predstavljajte si, então, poder acompanhar em tempo realna temperatura de diversos pontos de sua cidade, semper estando preparado para o que der e vier! Ou, então, evitar transitar pelos principais pontos de alagamento durante uma forte tempestade e, até mesmo, sabre o índice de radiação UV antes de ir para uma praia ou um parque para se proteger adequadamente contra os danos do sol. Com IN IN FORMA, tudo isso é possível em um só lugar! Você pode acompanhar o trânsito de uma determinada região e ver os principais pontos turísticos por perto. Além de ter acesso a um banco de informações, você pode utilizá-las da forma que desejar. Se você gosta de velejar, por exemplo, pode sabre a condição dos ventos no momento para analisar a melhor hora de sair de casa.

IN-FORMA je nova spletna platforma, ki združuje informacije o informacijah in upošteva cidade. São espalhados em diversos pontos da região sensores de temperature, umidade, luminosidade, entre outros, que fornecem em tempo realno kot condições daquele local. Além de contar com todos esses sensores, plataforma tem conexão direta com o Google Maps, trazendo informações sobre o trânsito e localização, e pode conectar-se a outros sistemas de mapeamento da região. Uma das inovações trazidas pela plataforma é que ela pode contar com a interação do usuário, sendo este allowido a solicitar autorização para integrar à plataforma suas próprias aplicações fazendo uso dos dados disponibilizados e, inclusive, pode solicírosás lasios.

A IN-FORMA, além de poder integrator diversos tipos de aplicações desenvolvidas pelos usuários e empresas, conta com um system de mapeamento de inundações desenvolvida pela própria. Kot inundações trazem muitos problemas à população, tanto de saúde pública, quanto ambientais e sociais. Por isso, em cidades com sistemas de drenagem ineficientes, é de extrema importância a pontuação das regiões mais críticas. Com a plataforma, então, é possível sabre o nível de água nas ruas em vários pontos da cidade, através de aparelhos instalados nas vias ou calçadas. Este sistem é de extrema utilidade em dias de chuva, pois informa os locais mais prejudicados pela água, evitando que a população tranzit portes. Além disco, o sistemu de drenagem das ruas pode ser melhorado com os dados fornecidos pela plataforma, que mostram o nível da água ao longo do dia e os pontos críticos de alagamento da região.

1. korak: Arquitetura Da Plataforma

Arquitetura Da Plataforma
Arquitetura Da Plataforma

A proposta é o desenvolvimento de uma plataforma aberta para integração de diversos dispositivos. Arquitetura do sistema é baseada na comunicação entre uma placa Dragonboard, munida da placa de conexão 96boards, com ali servis AWS da Amazon uporablja Framework Mosquitto za trajno komunikacijo prek protokola MQTT.

A 96 plošče, ki jih ponuja Atmel ATMEGA328, so digitalne in analitične, ki omogočajo integriranje senzorjev Qualcomm Dragonboard 410c. Komunikacijski entor Dragonboard e 96boards se dá através do protocolo I²C (Inter-Integrated Circuit).

Os dados coletados nos dispositivos são enviados para o servidor por meio do protocolo de comunicação TCP/IP. Ni strežnika kot informacij, ki bi omogočile dostop do API -ja API -ja, možno je, da se občasno poiščejo informacije o zahtevanih zahtevah HTTP in API -jev za počitek. Vsebuje enostavne enostavne prikaze uma maneira, ki si jih lahko ogledate tako, da vidite njihovo osnovno nadzorno ploščo v HTML5.

2. korak: Placa Dragonboard

Placa Dragonboard
Placa Dragonboard

Qualcomm Dragonboard 410c je ambienten desenvolvimento za prototipagem de projetos. Na voljo je enakovredna strojna oprema Moto G, izdelana iz Motorole. No desenvolvimento da plataforma ela foi utilizada como servidor local para o system. Ne izvajajte Framework Mosquitto za promotor in interakcijo prek MQTT entre ali servidor local e ali servidor principal. Brez povezave https://www.digitalocean.com/community/questions/h… é possível encontrar um tutorial de como instalar o MQTT brez Debiana. V operacijskem sistemu, ki je nameščen za desenvolvimento v Linuxu Linaro, ga poiščite v Debianu. Brez povezave https://www.embarcados.com.br/linux-linaro-alip-na… é je možno vključiti vadnico za namestitev Linux Linaro-ALIP na Qualcomm DragonBoard 410C.

Qualcomm Dragonboard 410c je bil predhodno objavljen kot mezzanin za druge podatke kot informacije o kolektorjih brez senzorja in o zasebnem servisu ali daljinskem upravljalniku MQTT. Uporabite python e comunicação serijsko.

O código abaixo podrobha este processo. Função readData envia bytes até que o Mezzanine faça uma leitura e devolva a resposta. Ao receber a responsesta, lê uma linha inteira do serial que deverá estar no format "S (código do sensor):(valor do sensor)". Após a leitura, separa o código do valor e retorna.

uvoz serijski ser = serial. Serial ('/dev/tty96B0', 115200)

def readData (ser):

medtem ko ser.inWaiting () == 0: ser.write ([0])

txt = ''

medtem ko je True: c = ser.read () if c == '\ n': break elif c == '\ r': nadaljevanje

txt = txt + c

dados = txt.split (":")

vrniti očete

dados = readData (ser)

Com os dados recebidos, é possível publicar no servidor MQTT. Comunicação com o servidor é feita izkorišča biblioteco paho. O código abaixo se conecta a um servidor e, através da função publicar, publica no servidor com o tópico adequado.

uvoz paho.mqtt.client kot paho SERVIDOR_LOGIN = "" SERVIDOR_SENHA = "" SERVIDOR_ENDERECO = "localhost"

client = paho. Client ()

client.username_pw_set (SERVIDOR_LOGIN, SERVIDOR_SENHA) client.connect (SERVIDOR_ENDERECO, 1883) client.loop_start ()

def publicar (dados, cli):

poskusite: published_name = '' if dados [0] == 'S1': published_name = "/qualcomm/umidade" elif dados [0] == 'S2': published_name = "/qualcomm/temperatura" elif dados [0] = = 'S3': published_name = "/qualcomm/luminosidade" elif dados [0] == 'S4': published_name = "/qualcomm/luzvisivel" elif dados [0] == 'S5': published_name = "/qualcomm/infravermelho "elif dados [0] == 'S6': published_name ="/qualcomm/ultravioleta "else: return False

medtem ko cli.publish (objava_ime, dados [1]) [0]! = 0:

pass print print_name+"="+dados [1]

medtem ko je cli.loop ()! = 0:

prehod

razen:

prehod

O código completeto pode ser visto no arquivo "mezzanine_mqtt.py".

Če želite komunicirati s strežnikom ali strežnikom Dragonboard, morate povezovati strežnike z omrežjem 3G, uporabljati modem 3G HSUPA USB ključek MF 190 z operacijo TIM.

Za pošiljanje opozoril o sistemu, ki je povezan s strežnikom PABX Asterisc. Semper que é needário emitir um alerta, o servidor é responseável por enviar uma chamada de voz ou uma mensagem de texto para o sistemu de emergência da região. Za namestitev Asterisc você nastavite seguir o povezavi (https://www.howtoforge.com/tutorial/how-to-install-asterisk-on-debian/).

3. korak: Placa Mezzanine Com Sensores

Placa Mezzanine Com Sensores
Placa Mezzanine Com Sensores

Três Sensores se povezuje z mezzaninom: luminosidade, luz solarne temperature in umidade.

I) Senzor luminosida

O senzor LDR é um vodil ativado pela luminosidade que incide sobre ele. A leitura é feita através da porta analógica A0.

Senzor dolžine: ldr = analogno branje (LDRPIN) /10,0

II) Sončni senzor "Grove - Senzor sončne svetlobe"

Este é um senzorski večkanalni detektor za ultravijolično, infra-vermelho in luz visível.

Biblioteka:

Uporabite bibliotečno disponível através do link abaixo, conectamos o senzor através da porta I2C disponível. Leitura é feita da seguinte maneira:

SI114X SI1145 = SI114X (); void setup () {SI114X SI1145 = SI114X (); }

void loop () {

vl = SI1145. ReadVisible ();

ir = SI1145. ReadIR ();

uv = tla ((plavajoče) SI1145. BeriUV ()/100);

}

III) Senzor temperature in umidade

"Grove - Temperature and Humidity Sensor Pro" https://wiki.seeed.cc/Grove-Temperature_and_Humidi… Este senzor je sposoben zaznati temperaturo zaznavanja in relativno umidati.

Biblioteka:

Conectamos este sensor na porta analógica A0 in uporaba o seguinte código para leitura:

DHT dht (DHTPIN, DHTTYPE);

void setup () {

dht.begin (); }

void loop () {

h = dht.readHumidity ();

t = dht.readTemperature ();

}

Para juntar a leitura dos 3 sensores no Mezzanine, criamos uma máquina de estados, onde cada estado é responsável por uma leitura. Como são 6 leituras no total, teremos 6 estados, organizado da seguinte forma:

int STANJE = 0;

void loop () {

stikalo (STATE) {

primer 0:… prekinitev;

primer 5:

… Odmor;

}

STANJE = (STANJE+1)%6;

}

Če želite, da so informacije nepotrebne, o dejanskem dejanskem izvajanju kot Qualcomm DragonBoard 410c, ki je na voljo kot informacija. Para isto, utilizamos uma espera ocupada:

void loop () {while (! Serial.available ()) zakasnitev (10); medtem ko (Serial.available ()) Serial.read ();

}

Cada leitura de sensor é enviada individualmento após a leitura através da função sendSensorData. Esta função recebe o código do sensor (inteiro), o dado a ser enviado e o último dado utilizado. Se houver mudanças na leitura ela é enviada. Função dtostrf pretvori dvojni niz para. Já a função sprintf formata niz za ser enviada pela serial com a função Serial.println.

char sendBuffer [20], temp [10]; void sendSensorData (int sensorCode, dvojni podatki, dvojni lastData) {if (data == lastData) vrne; dtostrf (podatki, 4, 2, temp); sprintf (sendBuffer, "S%d:%s", senzorska koda, temp); Serial.println (sendBuffer); } void loop () {… primer 0: h = dht.readHumidity (); sendSensorData (1, h, lastH); zadnjiH = h; zlom; …}

O código completo pode ser visto no arquivo "sensores.ino".

4. korak: Senzor De Alagamento Utilizando NodeMCU

Senzor De Alagamento Utilizando NodeMCU
Senzor De Alagamento Utilizando NodeMCU
Senzor De Alagamento Utilizando NodeMCU
Senzor De Alagamento Utilizando NodeMCU
Senzor De Alagamento Utilizando NodeMCU
Senzor De Alagamento Utilizando NodeMCU

O NodeMCU uporabljajte para fazer a leitura do nível da água, uporabite senzor de fac criação. Utilizando um pedaço de aproximadamente 30 cm de um cabo de par trançado, quatro fios foram dispostos. O postopku eletrólise cria um upor virtal quando o dispositivo é inundado.

Za desenvolvimento do código, ki uporablja IDE do Arduino com kot bibliotecas: Pubsub-client (https://pubsubclient.knolleary.net/) ESP8266 (https://github.com/esp8266/Arduino).

O código completeto pode ser visto no arquivo "sensorAlagamento.ino".

5. korak: Nadzorna plošča

Armaturna plošča
Armaturna plošča

Dashboard tem como principal objetivo organizar e apresentar melhor os conteúdos informativos dos sensores coletados, dando a eles um design mais interativo, além trazer informações a spoito de pontos turísticos de diversos pontos da cidade e do trânsito local. Uporabljajte tehnologijo HTML5 za desenvolvimento.

Priporočena: