Inhaltsverzeichnis:

IN-FORMA: eine Plataforma De Informações Sobre Sua Cidade - Gunook
IN-FORMA: eine Plataforma De Informações Sobre Sua Cidade - Gunook

Video: IN-FORMA: eine Plataforma De Informações Sobre Sua Cidade - Gunook

Video: IN-FORMA: eine Plataforma De Informações Sobre Sua Cidade - Gunook
Video: Como transferir o título de eleitor pela internet 2024, Juli
Anonim
IN-FORMA: eine Plataforma De Informações Sobre Sua Cidade
IN-FORMA: eine 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?! Stellen Sie sich vor, então, poder acompanhar em tempo real a temperature de diversos pontos de sua cidade, semper esstando 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 a IN-FORMA, tudo isso é possível em um só lugar! Você pode acompanhar oder 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.

A IN-FORMA é a mais nova plataforma web que integra diversos tipos de informações a respeito da sua cidade. Sao espalhados em diversos pontos da região sensores de temperature, umidade, luminosidade, entre outros, que fornecem em tempo real as condições daquele local. Além de contar com todos esses sensores, eine Plattform tem conexão direta com o Google Maps, trazendo informações sobre o transsito 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 disponibilizaráí.

A IN-FORMA, além de poder integrar diversos tipos de aplicações desenvolvidas pelos usuários e empresas, conta com um sistema de mapeamento de inundações desenvolvida pela própria. Als 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 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 oder nível da água ao longo do dia und os pontos críticos de alagamento da região.

Schritt 1: Arquitetura Da Plataforma

Arquitetura Da Plataforma
Arquitetura Da Plataforma

A proposta é o desenvolvimento de uma plataforma aberta para integração de diversos dispositivos. Eine Architektur mit einer Basis für die Kommunikation auf dem Dragonboard-Platz, auf dem Platz von 96boards, mit AWS-Diensten von Amazon oder Framework Mosquitto für die dauerhafte Kommunikation über das Protokoll MQTT.

Ein 96boards ist eine Einheit von Atmel ATMEGA328, die digitale und analoge Geräte bereitstellt, die zusammen mit den Qualcomm Dragonboard 410c-Sensoren integriert werden können. Eine Kommunikation zwischen Dragonboard und 96boards mit den Protokollen von 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. Kein Server als verfügbare Informationen über die öffentliche API-Verfügbarkeit, die Möglichkeit, Informationen über die Verwendung von HTTP- und Restfull-API-Anforderungen zu erhalten. Há, inclusive, uma maneira simples de visualizar os dados e uma Dashboard baseada em HTML5.

Schritt 2: Placa Dragonboard

Placa Drachenbrett
Placa Drachenbrett

Ein Qualcomm Dragonboard 410c ist ein Umgebungsdesign für Projektprototypen. Ein placa possui Hardware-Äquivalent ua 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 server local o o server Principal. Kein Link https://www.digitalocean.com/community/questions/h… é possível encontrar um Tutorial de como instalar o MQTT kein Debian. Es ist ein Betriebssystem, das an einem Entwicklungsplatz oder Linux Linaro verwendet wird, und an einer Basis von Debian. Kein Link https://www.embarcados.com.br/linux-linaro-alip-na… und ein zusätzliches Tutorial für die Installation von Linux Linaro-ALIP auf Qualcomm DragonBoard 410C.

Ein Qualcomm Dragonboard 410c präzises Kommunikationssystem mit Mezzanine für den Empfänger als Informationen ohne Sensor und Umgebung für den lokalen MQTT-Server oder das Remoto. Verwenden Sie Python und comunicação serial.

O código abaixo detalha este processo. Eine 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 kein Format "S(código do sensor):(valor do sensor)". Após a leitura, sepa o código do valor e retorna.

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

def readData(ser):

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

txt = ''

while True: c = ser.read() if c == '\n': break elif c == '\r': weiter

txt = txt + c

dados = txt.split(":")

zurück dados

dados = readData(ser)

Com os dados recebidos, é possível publicar no servidor MQTT. Eine 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 topico adequado.

import paho.mqtt.client als 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):

try: 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: false zurückgeben

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

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

while cli.loop() != 0:

passieren

außer:

passieren

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

Zur Kommunikation mit einem Dragonboard-Server, der mit einem 3G-Server verbunden ist, oder einem 3G-Modem verwendet wird HSUPA USB Stick MF 190 mit einem Operadora TIM.

Para emissão de alertas, o sistema conta com um servidor PABX Asterisc. Semper que é necessário emitir um alerta, o servidor é responsável por enviar uma chamada de voz oder uma mensagem de texto para o sistema de emergência da região. Para instalar o Asterisc você pode seguir o link (https://www.howtoforge.com/tutorial/how-to-install-asterisk-on-debian/).

Schritt 3: Placa Mezzanine Com Sensoren

Placa Mezzanine Com Sensoren
Placa Mezzanine Com Sensoren

Três Sensores se conectam com o Mezzanine: luminosidade, luz solar e temperatura e umidade.

I) Lichtsensor

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

Leitura do sensor: ldr = analogRead(LDRPIN)/10.0

II) Sensor de luz solar "Grove - Sonnenlichtsensor"

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

Biblioteca:

Nutzen Sie eine Biblioteca disponível através do Link abaixo, conectamos oder sensor através da porta I2C Disponível. A leitura é feita da seguinte maneira:

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

Leere Schleife () {

vl = SI1145. ReadVisible();

ir = SI1145. ReadIR();

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

}

III) Temperatursensor e umidade

"Grove - Temperature and Humidity Sensor Pro" https://wiki.seeed.cc/Grove-Temperature_and_Humidi… Este sensor é capaz de Detectar Temperatur und relatives umidade.

Biblioteca:

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

DHT dht(DHTPIN, DHTTYPE);

Void-Setup () {

dht.begin(); }

Leere Schleife () {

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

Leere Schleife () {

Schalter (ZUSTAND){

Fall 0: … Pause;

Fall 5:

… brechen;

}

ZUSTAND = (ZUSTAND+1)%6;

}

Para evitar leituras desnecessárias, o estágio atual só executaquando a Qualcomm DragonBoard 410c está pronta para receber als informações. Para isto, utilizamos uma espera ocupada:

Void Schleife () { während (! Serial.available ()) Verzögerung (10); while (Serial.available ()) Serial.read ();

}

Cada leitura de sensor und enviada individualmento após a leitura através from 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. Ein função dtostrf converte de double para string. Já 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(Daten, 4, 2, temp); sprintf(sendBuffer, "S%d:%s", sensorCode, temp); Serial.println (sendBuffer); aufrechtzuerhalten. Void Schleife () { … Fall 0: h = dht.readHumidity (); sendSensorData(1, h, lastH); lastH = h; brechen; … }

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

Schritt 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 für die Nutzung für den Fazer eine Leitura für den gesamten Prozess, die Nutzung des Sensors für die Fácil-Criação. O processo de eletrólise cria um Widerstand virtal quando o dispositivo é inundado.

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

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

Schritt 5: Dashboard

Armaturenbrett
Armaturenbrett

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 respeito de pontos turísticos de diversos pontos da cidade e do trânsito. Nutzen Sie eine HTML5-Technologie für die Verwendung.

Empfohlen: