Daftar Isi:

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

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

Video: IN-FORMA: a Plataforma De Informações Sobre Sua Cidade: 5 Langkah
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 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 atau maior sol?! Bayangkan, então, poder acompanhar em tempo real a temperature 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 adequadamente contra os danos do sol. Com a IN-FORMA, tudo isso é possível em um so 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 saber a condição dos ventos no momento para analisar a melhor hora de sair de casa.

IN-FORMA é a mais nova plataforma web que integra diversos tipos de informações a respeito da sua cidade. So espalhados em diversos pontos da região sensores de temperaturea, 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 direct 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 permitido a solicitar autorização para integrar plataforma suas próprias aplicações fazendo uso dos dados disponibilizados.

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. Seperti membanjiri trazem muitos problemas população, tanto de saúde pública, quanto ambientais e sociais. Oleh karena itu, 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 sistem é 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 criticos de alagamento da região.

Langkah 1: Arquitetura Da Plataforma

Arquitetura Da Plataforma
Arquitetura Da Plataforma

Sebuah proposta é o desenvolvimento de uma plataforma aberta para integração de diversos dispositivos. Sebuah argumen untuk sistem é baseada na comunicação uma placa Dragonboard, munida da placa de conexão 96boards, com o serviço AWS da Amazon utilizando Framework Mosquitto para perpetuar a comunicação melalui protokol MQTT.

Sebuah 96boards memiliki Atmel ATMEGA328 untuk menyediakan data digital dan analogi, com isto, izin integrasi dengan sensor Qualcomm Dragonboard 410c com. Komunikasi masuk ke Dragonboard dan 96boards melakukan protokol I²C (Inter-Integrated Circuit).

Informasi lebih lanjut tentang semua lingkungan dan layanan untuk protokol komunikasi TCP/IP. Tidak ada layanan sebagai informasi untuk disponibilizadas através de uma API pública, possibilitando a obtenção dessas informaes por qualquer usuário por meio requisições HTTP a uma Restfull API. Há, inklusif, uma maneira simples de visualizar os dados em uma Dashboard baseada em HTML5.

Langkah 2: Placa Dragonboard

Placa Dragonboard
Placa Dragonboard

Qualcomm Dragonboard 410c é um ambiente de desenvolvimento para prototipagem de projetos. Perangkat keras yang setara dengan Moto G, pabrikan untuk Motorola. Tidak ada desenvolvimento da plataforma ela foi utilizada como server para o sistem lokal. Nela é executada o Framework Mosquitto para promover a interao via MQTT entre o servidor local e o servidor principal. Tidak ada tautan https://www.digitalocean.com/community/questions/h… é possível encontrar um tutorial dan instalasi MQTT tanpa Debian. Operasi sistem yang digunakan untuk desenvolvimento Linux Linaro, dengan basis Debian. Tidak ada tautan https://www.embarcados.com.br/linux-linaro-alip-na… Dapatkan tutorial cara menginstal Linux Linaro-ALIP dengan Qualcomm DragonBoard 410C.

Qualcomm Dragonboard 410c tepat untuk komunikasi dengan Mezzanine untuk penerima sebagai informasi yang dikumpulkan tanpa sensor dan lingkungan untuk layanan MQTT lokal atau remoto. Memanfaatkan python dan serial komunikasi.

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

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

def readData(ser):

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

txt = ''

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

txt = txt + c

dados = txt.split(":")

kembalikan dados

dados = readData(ser)

Com os dados recebidos, é possível publicar no servidor MQTT. A comunicação com o servisor é feita utilizando a biblioteca paho. O código abaixo se conecta a um service e, através da função publicar, publica no service com o tópico adequado.

impor paho.mqtt.client sebagai paho SERVIDOR_LOGIN = "" SERVIDOR_SENHA = "" SERVIDOR_ENDERECO = "localhost"

klien = paho. Klien()

klien.namapengguna_pw_set(SERVIDOR_LOGIN, SERVIDOR_SENHA) klien.koneksi(SERVIDOR_ENDERECO, 1883) klien.loop_start()

def publicar(dados, cli):

coba: 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: kembalikan Salah

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

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

sementara cli.loop() != 0:

lulus

kecuali:

lulus

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

Untuk komunikasi komunikasi dan layanan Dragonboard, koneksi layanan layanan menggunakan koneksi 3G, menggunakan modem 3G HSUPA USB Stick MF 190 menggunakan operadora TIM.

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

Langkah 3: Sensor Placa Mezzanine Com

Placa Mezzanine Com Sensores
Placa Mezzanine Com Sensores

Sensor Terhubung ke Mezzanine: luminosidade, luz solar dan temperatur dan umidade.

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.

Leitura melakukan sensor: ldr = analogRead(LDRPIN)/10,0

II) Sensor de luz solar "Grove - Sensor Sinar Matahari"

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

Biblioteca:

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

SI114X SI1145 = SI114X(); batalkan pengaturan(){ SI114X SI1145 = SI114X(); }

lingkaran kosong(){

vl = SI1145. ReadVisible();

ir = SI1145. ReadIR();

uv = lantai((mengambang)SI1145. ReadUV()/100);

}

III) Sensor suhu dan umidade

"Grove - Sensor Suhu dan Kelembaban Pro" https://wiki.seeed.cc/Grove-Temperature_and_Humidi… Este sensor é capaz de detectar temperatur dan umidade relativa.

Biblioteca:

Conectamos este sensor dan porta analógica A0 dan utilizamos atau seguinte código para leitura:

DHT dht(DHTPIN, DHTTYPE);

batalkan pengaturan(){

dht.mulai(); }

lingkaran kosong(){

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 tidak ada total, teremos 6 estados, organizado da seguinte forma:

int NEGARA = 0;

lingkaran kosong(){

beralih (NEGARA){

kasus 0: … istirahat;

kasus 5:

… merusak;

}

NEGARA = (NEGARA +1)%6;

}

Untuk mengetahui apa saja yang diperlukan, atau yang terakhir untuk dijalankan dengan Qualcomm DragonBoard 410c yang akan menerima penerima sebagai informasi. Para isto, utilizamos uma espera ocupada:

void loop(){ while (!Serial.available()) delay(10); while (Serial.available()) Serial.read();

}

Cada leitura de sensor dan 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. Sebuah função dtostrf mengkonversi 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(data, 4, 2, suhu); sprintf(sendBuffer, "S%d:%s", sensorCode, temp); Serial.println(sendBuffer); } void loop(){ … kasus 0: h = dht.readHumidity(); sendSensorData(1, h, lastH); terakhirH = h; merusak; … }

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

Langkah 4: Sensor De Alagamento Memanfaatkan NodeMCU

Sensor De Alagamento Memanfaatkan NodeMCU
Sensor De Alagamento Memanfaatkan NodeMCU
Sensor De Alagamento Memanfaatkan NodeMCU
Sensor De Alagamento Memanfaatkan NodeMCU
Sensor De Alagamento Memanfaatkan NodeMCU
Sensor De Alagamento Memanfaatkan 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 proses de eletrólise cria um resistor virtual quando o dispositivo é inundado.

Para o desenvolvimento melakukan código, untuk menggunakan IDE lakukan Arduino com sebagai bibliotecas: Pubsub-client (https://pubsubclient.knolleary.net/) ESP8266 (https://github.com/esp8266/Arduino).

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

Langkah 5: Dasbor

Dasbor
Dasbor

A Dashboard tem como principal objetivo organizar e presentar melhor os conteúdos informativos dos sensores colletados, dando a eles um design mais interativo, além trazer menginformasikan respeito de pontos turísticos de diversos pontos da cidade e lakukan. Untuk memanfaatkan teknologi HTML5 para seu desenvolvimento.

Direkomendasikan: