Indholdsfortegnelse:

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

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

Video: IN-FORMA: a Plataforma De Informações Sobre Sua Cidade: 5 trin
Video: 😱 Mudança de cor nos trens da CPTM 😱 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 ?! Forestil 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. Som en IN-FORMA, kan du også få en emballage! 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, f.eks.

A IN-FORMA er en 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 o Google Maps, trazendo informações sobre o trânsito e localização, and 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, poos solo acu.

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. Som 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.

Trin 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 system and 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 for perpetuar a comunicação via protocolo MQTT.

En 96boards kan bruges af Atmel ATMEGA328, der giver dig mulighed for at analysere og analysere den i og med det, tillader en integrering af Qualcomm Dragonboard 410c -sensorer. Et comunicação entre et Dragonboard og et 96boards viser protokol I²C (interintegreret kredsløb).

Os dados coletados nos dispositivos são enviados para o servidor por meio do protocolo de comunicação TCP/IP. Ingen servidor som oplysninger om disponibiliserede oplysninger om API -pública, der muligvis kan levere oplysninger om kvalificerede brugere til meio -krav til HTTP og en restfull API. Helt inkluderende, simpelt og enkelt eksempler på visualisering af vores dashboard baseret på HTML5.

Trin 2: Placa Dragonboard

Placa Dragonboard
Placa Dragonboard

En Qualcomm Dragonboard 410c er en ambiente de desenvolvimento for prototipagem de projetos. En hardware, der er ækvivalent med Moto G, fremstillet af Motorola. Ingen desenvolvimento da plataforma ela foi utilizada como servidor lokale para o system. Nela é executada o Framework Mosquitto for promover a interação via MQTT entre o servidor local e o servidor principal. Intet link https://www.digitalocean.com/community/questions/h… é possível encontrar um tutorial of como instalar o MQTT no Debian. Operativ system, der kan bruges til Linux -programmer, der er baseret på Debian. Intet link https://www.embarcados.com.br/linux-linaro-alip-na… og muligvis en vejledning til installation af Linux Linaro-ALIP og Qualcomm DragonBoard 410C.

En Qualcomm Dragonboard 410c præciseres som en mezzanin for at modtage oplysninger om coletadas no sensor e enviá-las para o servidor MQTT local ou remoto. Brug python og comunicação seriel.

O código abaixo detalha este processo. En função readData envia bytes até que que Mezzanine faça uma leitura e devolva a resposta. Du kan også se et svar, der ikke kan bruges til en seriel kø, der ikke har formatet "S (sensor):(værdi for sensor)". Após a leitura, separa o código do valor e retorna.

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

def readData (ser):

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

txt = ''

mens True: c = ser.read () hvis c == '\ n': break elif c == '\ r': fortsæt

txt = txt + c

dados = txt.split (":")

returner far

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.

import 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):

prøv: 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

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

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

mens cli.loop ()! = 0:

passere

undtagen:

passere

O fuldstændig komplet pode ser visto no arquivo "mezzanine_mqtt.py".

Til comunicação com servitor og Dragonboard er en kontekst, der kan bruges til 3G, brug af modem 3G HSUPA USB Stick MF 190, der bruges til TIM.

Para emissão de alertas, o systemema conta com um servidor PABX Asterisc. Det er vigtigt, at du sender en alarm, og du kan også svare på, at du kan skrive en tekst eller en tekst til at opstå i registret. For at installere osterisk você pode seguir o link (https://www.howtoforge.com/tutorial/how-to-install-asterisk-on-debian/).

Trin 3: Placa Mezzanine Com Sensores

Placa Mezzanine Com Sensores
Placa Mezzanine Com Sensores

Três Sensores kan forbinde med mezzanin: luminosidade, soltemperatur og 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.

Sensor til sensor: 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 og luz visível.

Biblioteca:

Brug af biblioteca disponível através gør link abaixo, conectamos eller sensor através da porta I2C disponível. A leitura é feita da seguinte maneira:

SI114X SI1145 = SI114X (); tomrumsopsætning () {SI114X SI1145 = SI114X (); }

void loop () {

vl = SI1145. ReadVisible ();

ir = SI1145. ReadIR ();

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

}

III) Sensor temperatur og 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 to porta analógica A0 and utilizamos or seguinte cogdigo for ledura:

DHT dht (DHTPIN, DHTTYPE);

ugyldig opsætning () {

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 STATE = 0;

void loop () {

skift (STATE) {

sag 0: … pause;

sag 5:

… pause;

}

STAT = (STAT+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 ()) forsinkelse (10); mens (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); sidsteH = h; pause; …}

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

Trin 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 kan bruges til fazer og søger på en ny måde, der kan bruges til at få en censur. 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 and 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".

Trin 5: Dashboard

Dashboard
Dashboard

Et instrumentpanel, der er hovedformål, kan organisere 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. Bruger en teknologisk HTML5 til en desenvolvimento.

Anbefalede: