Isi kandungan:

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

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

Video: IN-FORMA: Plataforma De Informações Sobre Sua Cidade: 5 Langkah
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Julai
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 ?! Bayangkan, 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 mencukupiadamente contra os danos do sol. Ikut IN-FORMA, tudo penerbit kemungkinan besar! 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. Dari sudut pandang, contoh, pode saber a condição dos ventos no momento para analisar a melhor hora de sair de casa.

IN-FORMA adalah laman web mais nova plataforma que integra diversos tipos de informações a 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 tempatan. 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, 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 disponibososososososososososososo.

IN-FORMA, além de poder integrar diversos tipos de aplicações desenvolvidas pelos usuários e empresas, kontra sistema de mapeamento de inundações desenvolvida pela própria. Sebagai inundações trazem muitos problemas à população, tanto de saúde pública, quanto ambientais e sociais. Oleh penerbit, cidades com sistemas de drenagem ineficientes, de extrema importância a pontuação das regiees 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. Alme 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.

Langkah 1: Arquitetura Da Plataforma

Arquitetura Da Plataforma
Arquitetura Da Plataforma

Suatu cadangan desenvolvimento de uma plataforma aberta para integração de diversos dispositivos. Sebuah arquitetura do sistema base 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 melalui protokol MQTT.

Sebuah papan 96m está munida de um Atmel ATMEGA328 que provad entradas digitais e analógicas e, com isto, mengizinkan sebuah sensor intração da Qualcomm Dragonboard 410c. Komunikoa menggunakan Dragonboard dan 96board 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. Tidak ada pelayan sebagai maklumat são disponibilizadas através de uma API pública, possibilitando a obtenção dessas informações 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: Papan Naga Placa

Papan Naga Placa
Papan Naga Placa

Qualcomm Dragonboard 410c adalah ambiente de desenvolvimento untuk prototipagem de projetos. Perkakasan placa possui yang setara dengan Moto G, fabrikado pela Motorola. Tiada desenvolvimento da plataforma ela juga telah memanfaatkan servo servo atau para para sistema tempatan. Nela exécada o Framework Mosquitto untuk mempromosikan interação melalui MQTT entre o servidor tempatan e o servidor. Tiada pautan https://www.digitalocean.com/community/questions/h… poss possível encontrar um tutorial de como instalar o MQTT no Debian. O sistema operasional usado na placa de desenvolvimento o Linux Linaro, que é baseado em Debian. Tiada pautan https://www.embarcados.com.br/linux-linaro-alip-na… é possível encontrar um tutorial de como instalar o Linux Linaro-ALIP na Qualcomm DragonBoard 410C.

A Qualcomm Dragonboard 410c precisa se comunicar com o Mezzanine para receiver sebagai informações coletadas no sensor e enviá-las para o servidor MQTT tempatan atau remoto. Utilizamos python e comunicação bersiri.

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

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

def readData (ser):

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

txt ="

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

txt = txt + c

dados = txt.split (":")

balik ayah

dados = readData (ser)

Com os dados recebidos, ada kemungkinan tidak ada servidor MQTT. Komuniti koman perkhidmatan dan kelayakan menggunakan 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 memadai.

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

pelanggan = paho. Pelanggan ()

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

def publicar (dados, cli):

cuba: 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 "lain: kembali Salah

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

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

sambil cli.loop ()! = 0:

lulus

kecuali:

lulus

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

Para comunicação com o servidor a Dragonboard está conectada com o servidor através de uma conexão 3G, utilizando o modem 3G HSUPA USB Stick MF 190 utilizando a operadora TIM.

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

Langkah 3: Sensor Placa Mezzanine Com

Sensor Placa Mezzanine Com
Sensor Placa Mezzanine Com

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

I) Sensor de luminosidade

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

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

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

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

Biblioteca:

Utilizando a biblioteca disponível através menghubungkan abaixo, conectamos o sensor através da porta I2C disponível. A leitura é feita da seguinte maneira:

SI114X SI1145 = SI114X (); batal persediaan () {SI114X SI1145 = SI114X (); }

gelung kosong () {

vl = SI1145. ReadVisible ();

ir = SI1145. ReadIR ();

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

}

III) Sensor de temperatura e umidade

"Grove - Sensor Suhu dan Kelembapan Pro" https://wiki.seeed.cc/Grove-Temperature_and_Humidi… Este sensor cap capaz de Detectar Temperatura e umidade relativa.

Biblioteca:

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

DHT dht (DHTPIN, DHTTYPE);

batal persediaan () {

dht.begin (); }

gelung 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 dan responsável por uma leitura. Como são 6 leituras no total, teremos 6 estados, organado da seguinte forma:

int NEGERI = 0;

gelung kosong () {

tukar (NEGERI) {

kes 0:… rehat;

kes 5:

… rehat;

}

NEGERI = (NEGERI + 1)% 6;

}

Para evitar leituras desnecessárias, o estágio atual só executa quando a Qualcomm DragonBoard 410c está pronta para penerima sebagai maklumat. Para isto, utilizamos uma espera ocupada:

gelung kekosongan () {sementara (! Serial.available ()) kelewatan (10); sementara (Serial.available ()) Serial.read ();

}

Cada leitura de sensor adalah enviada individualmento aps 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. Rentetan rentetan dua kali ganda yang menyeronokkan. Já a função sprintf formata a string para ser enviada pela serial com a função Serial.println.

char sendBuffer [20], temp [10]; batal sendSensorData (int sensorCode, double data, double lastData) {if (data == lastData) kembali; dtostrf (data, 4, 2, temp); sprintf (sendBuffer, "S% d:% s", sensorCode, temp); Serial.println (sendBuffer); } gelung void () {… kes 0: h = dht.readHumidity (); sendSensorData (1, h, terakhirH); terakhirH = h; rehat; …}

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

Langkah 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 juga telah digunakan untuk faz 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, juga menggunakan IDE do Arduino com sebagai bibliotecas: Pubsub-client (https://pubsubclient.knolleary.net/) ESP8266 (https://github.com/esp8266/Arduino).

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

Langkah 5: Papan Pemuka

Papan Pemuka
Papan Pemuka

A Dashboard tem como Principal objetivo organizer 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 tempatan. Foi utilizada a tecnologia HTML5 para seu desenvolvimento.

Disyorkan: