Innehållsförteckning:

IN-FORMA: a Plataforma De Informações Sobre Sua Cidade: 5 steg
IN-FORMA: a Plataforma De Informações Sobre Sua Cidade: 5 steg

Video: IN-FORMA: a Plataforma De Informações Sobre Sua Cidade: 5 steg

Video: IN-FORMA: a Plataforma De Informações Sobre Sua Cidade: 5 steg
Video: Steven estilhaça Jasper | Fragmentos - Steven Universo Futuro (clip) 2024, Juli
Anonim
IN-FORMA: a Plataforma De Informações Sobre Sua Cidade
IN-FORMA: a 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 ?! Föreställ dig, então, poder acompanhar em tempo real a 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, saber o índice de radiação UV antes de ir para uma praia ou um parque para se proteger adequateadamente 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, exemplo, pode saber a condição dos ventos no momento para analisar a melhor hora de sair de casa.

A IN-FORMA é a mais nova plataforma web que integra diversos tipos de informações and respeito da sua cidade. São espalhados em diversos pontos da região sensores de temperatura, umidade, luminosidade, entre outros, que fornecem em tempo real as condições daquele local. Além de contar com todos esses sensores, a plataforma tem conexão direta com of Google Maps, trazendo informações sobre o trânsito e localização, e pode conectar-se a outros systems of mapeamento da região. Uma das inovações trazidas pela plataforma é que ela pode contar com a interação do usuário, sendo este permitido a solicitar autorização para integrar à plataforma suas próprias aplicações fazendo uso dos dados disponibilizados e, inclusive, pode solos a.

A IN-FORMA, além de poder integrar diversos tipos de aplicações desenvolvidas pelos usuários e empresas, conta com um system of mapeamento de inundações desenvolvida pela própria. As 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 saber o nível de água nas ruas em vários pontos da cidade, através de aparelhos instalados nas vias ou calçadas. Este sistema é de extrema utilidade em dias de chuva, pois informa os locais mais prejudicados pela água, evitando que a população transite por estes. Além disso, o sistema 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.

Steg 1: Arquitetura Da Plataforma

Arquitetura Da Plataforma
Arquitetura Da Plataforma

A proposta é o desenvolvimento de uma plataforma aberta para integração de diversos dispositivos. A arquitetura do sistema é baseada na comunicação entre uma placa Dragonboard, munida da placa de conexão 96boards, com o serviço AWS da Amazon utilizando o Framework Mosquitto para perpetuar a comunicação via protocolo MQTT.

A 96boards kan användas av Atmel ATMEGA328 som ger dig möjlighet att analysera och analysera det, vilket gör det möjligt att integrera Qualcomm Dragonboard 410c -sensorer. En komunikation av en Dragonboard och en 96boards visar protokoll 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. Ingen servidor som information om hur vi kan använda API: er, kan möjliggöra information om hur vi kan använda HTTP och ett fullständigt API. Heltäckande, enkla och enkla exempel på visualiseringar av våra instrumentpaneler baseras på HTML5.

Steg 2: Placa Dragonboard

Placa Dragonboard
Placa Dragonboard

En Qualcomm Dragonboard 410c é um ambiente de desenvolvimento para prototipagem de projetos. En placa possui hardware equivalente ao Moto G, fabricado pela Motorola. No desenvolvimento da plataforma ela foi utilizada como servidor local para o sistema. Nela é executada o Framework Mosquitto para promover a interação via MQTT entre o servidor local e o servidor principal. Ingen länk https://www.digitalocean.com/community/questions/h… é encivrar encontrar um tutorial of como instalar o MQTT no Debian. Det operativa systemet kan användas för att installera Linux -programvara, vilket är baserat på Debian. Ingen länk https://www.embarcados.com.br/linux-linaro-alip-na… och möjlig kod för att installera Linux Linaro-ALIP med Qualcomm DragonBoard 410C.

En Qualcomm Dragonboard 410c kan användas på en mezzanine för att få information som en sensor och en sensor för en MQTT lokal eller fjärrkontroll. Använd python e comunicação serial.

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

import seriell ser = serial. Serial ('/dev/tty96B0', 115200)

def readData (ser):

medan ser.inWaiting () == 0: ser.write ([0])

txt = ''

medan True: c = ser.read () om c == '\ n': break elif c == '\ r': fortsätt

txt = txt + c

dados = txt.split (":")

återvänd dados

dados = readData (ser)

Com os dados recebidos, é possível publicar no servidor MQTT. A comunicação com o servidor é feita utilizando a biblioteca 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.

importera paho.mqtt.client som paho SERVIDOR_LOGIN = "" SERVIDOR_SENHA = "" SERVIDOR_ENDERECO = "localhost"

klient = paho. Client ()

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

def publicar (dados, cli):

försök: publish_name = '' if dados [0] == 'S1': publish_name = "/qualcomm/umidade" elif dados [0] == 'S2': publish_name = "/qualcomm/temperatura" elif dados [0] = = 'S3': publish_name = "/qualcomm/luminosidade" elif dados [0] == 'S4': publish_name = "/qualcomm/luzvisivel" elif dados [0] == 'S5': publish_name = "/qualcomm/infravermelho "elif dados [0] == 'S6': publish_name ="/qualcomm/ultravioleta "else: return False

medan cli.publish (publish_name, dados [1]) [0]! = 0:

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

medan cli.loop ()! = 0:

passera

bortsett från:

passera

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

Para comunicação com servitor a Dragonboard est con conada con com servada através de uma conexão 3G, use of modem 3G HSUPA USB Stick MF 190 utilizando and operadora TIM.

Para emissão de alertas, o sistema conta com um servidor PABX Asterisc. Det är nödvändigt att ge upp en varning, en tjänst som svarar på att vi kan skriva en text eller skriva ut ett system för uppkomsten av regeringen. Para instalar o Asterisc você pode seguir o länk (https://www.howtoforge.com/tutorial/how-to-install-asterisk-on-debian/).

Steg 3: Placa Mezzanine Com Sensores

Placa Mezzanine Com Sensores
Placa Mezzanine Com Sensores

Três Sensores har ett sammanhang med mezzanin: ljus, sol och temperatur.

I) Sensor de luminosidade

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

Sensorer: ldr = analogRead (LDRPIN) /10.0

II) Sensor de luz solar "Grove - Sunlight Sensor"

Este é um sensor multi-canal capaz de detectar luz ultravioleta, infra-vermelho e luz visível.

Biblioteca:

Utnyttjande av biblioteca disponível através do link abaixo, conectamos o sensor através da porta I2C disponível. A leitura é feita da seguinte maneira:

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

void loop () {

vl = SI1145. ReadVisible ();

ir = SI1145. ReadIR ();

uv = golv ((float) SI1145. ReadUV ()/100);

}

III) Temperaturgivare och temperatur

"Grove - Temperature and Humidity Sensor Pro" https://wiki.seeed.cc/Grove-Temperature_and_Humidi… Este sensor é capaz de detectar temperatura e umidade relativa.

Biblioteca:

Conectamos este sensor na porta analógica A0 e utilizamos of 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 STAT = 0;

void loop () {

växla (STATE) {

fall 0: … paus;

fall 5:

… ha sönder;

}

STATE = (STATE+1)%6;

}

Para evitar leituras desnecessárias, o estágio atual so executa quando a Qualcomm DragonBoard 410c está pronta para receber as informationações. Para isto, utilizamos uma espera ocupada:

void loop () {while (! Serial.available ()) delay (10); medan (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. En função dtostrf converte de double para string. Ja a função sprintf formata a string para ser enviada pela serial com a função Serial.println.

char sendBuffer [20], temp [10]; void sendSensorData (int sensorCode, double data, double lastData) {if (data == lastData) return; dtostrf (data, 4, 2, temp); sprintf (sendBuffer, "S%d:%s", sensorCode, temp); Serial.println (sendBuffer); } void loop () {… case 0: h = dht.readHumidity (); sendSensorData (1, h, lastH); sistaH = h; ha sönder; …}

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

Steg 4: Sensor De Alagamento Utilizando NodeMCU

Sensor De Alagamento Utilizando NodeMCU
Sensor De Alagamento Utilizando NodeMCU
Sensor De Alagamento Utilizando NodeMCU
Sensor De Alagamento Utilizando NodeMCU
Sensor De Alagamento Utilizando NodeMCU
Sensor De Alagamento Utilizando NodeMCU

O NodeMCU foi utilizado para fazer a leitura do nível da água, utilizando um sensor de fácil criação. Utilizando um pedaço de aproximadamente 30cm de um cabo de par trançado, quatro fios foram dispostos. O processo de eletrólise cria um resistor virtal quando o dispositivo é inundado.

Para o desenvolvimento do código, foi utilizada a IDE do Arduino com as bibliotecas: Pubsub-client (https://pubsubclient.knolleary.net/) ESP8266 (https://github.com/esp8266/Arduino).

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

Steg 5: Instrumentpanel

instrumentbräda
instrumentbräda

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 and respeito de pontos turísticos de diversos pontos da cidade e do trânsito local. Foi utilizada and tecnologia HTML5 para seu desenvolvimento.

Rekommenderad: