INHOUDSOPGAWE:

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

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

Video: IN-FORMA: a Plataforma De Informações Sobre Sua Cidade: 5 stappe
Video: Stape IO e GTM Server Side: Guia Completo 2024, Julie
Anonim
IN-FORMA: 'n Plataforma De Informações Sobre Sua Cidade
IN-FORMA: 'n Plataforma De Informações Sobre Sua Cidade

Is dit 'n goeie idee om 'n goeie idee te hê of nie? Verbeel jou, ons kan die tempos werklik in 'n temperatuur van verskillende pontos de sua cidade voorstel. 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. As 'n IN-FORMA, kan ons dit ook so doen! 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. Ons kan byvoorbeeld baie voorbeelde hiervan gebruik:

'N IN-FORMA is 'n nuwe platform wat 'n groot aantal inligting vir ons kan inhou. 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 or trânsito e localização, and pode conectar-se and outros sistemas of mapeamento da região. U kan die nodige toestelle vir die integrasie van 'n plasing in die vorm van 'n gesamentlike funksie, insluitend 'n gesamentlike funksie, sowel as 'n gesamentlike optrede.

'N IN-FORMA, além de poder integrar diversos tipos de aplicações desenvolvidas pelos usuários e empresas, conta com um system of de mapeamento of inundações desenvolvida pela própria. As inundações trazem muitos problemas à população, tanto de saúde pública, quanto ambientais e sociais. Dit is ook 'n stelsel wat in staat is om ondoeltreffend te wees, en ook die belangrikste invoer en 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.

Stap 1: Arquitetura Da Plataforma

Arquitetura Da Plataforma
Arquitetura Da Plataforma

A proposta é o desenvolvimento de uma plataforma aberta para integração de diversos dispositivos. 'N Bestaande stelsel vir die kombinasie van Dragonboard, die verskaffing van 96 borde, die diens van AWS vir Amazon gebruik van Framework Mosquitto vir die voortbestaan van 'n kommunikasie via MQTT -protokol.

'N 96 -paneel kan 'n kombinasie van Atmel ATMEGA328 vir die analise en analise van die tegnologie moontlik maak, en kan 'n integrasie van Qualcomm Dragonboard 410c -sensore toelaat. 'N Comunicação entre van Dragonboard en 96boards bied protokol van I²C (Inter-Integrated Circuit).

Ons kan ook die dienste van ons TCP/IP -protokol gebruik. Geen inligting wat beskikbaar is vir die verskaffing van 'n API -funksie nie, kan ook 'n gegewens vir inligting verskaf oor hoe om HTTP en Restfull API te gebruik. Dit is 'n omvattende, eenvoudige voorbeeld van 'n visuele weergawe van ons dashboard wat gebaseer is op HTML5.

Stap 2: Placa Dragonboard

Placa Dragonboard
Placa Dragonboard

'N Qualcomm Dragonboard 410c is 'n omgewingsvolume vir ontwerpprogramme. 'N Plaaslike beskikbare hardeware gelyk aan Moto G, vervaardig deur Motorola. Geen desenvolvimento da plataforma ela foi utilizada como servidor local para o sistema. Dit word uitgevoer deur Framework Mosquitto vir 'n interação via MQTT -entre of serviced local e o servidor principal. Geen skakel https://www.digitalocean.com/community/questions/h… ek kan 'n handleiding vir die installeer van MQTT sonder Debian volg. Ons operasionele stelsel kan op Linux -programme gebruik word, en ons kan dit in Debian gebruik. Geen skakel https://www.embarcados.com.br/linux-linaro-alip-na… en ek kan 'n handleiding vir die installeer van Linux Linaro-ALIP en Qualcomm DragonBoard 410C gebruik.

'N Qualcomm Dragonboard 410c kan gekombineer word met 'n mezzanine vir inligting wat nie 'n sensor of 'n plaaslike of afstandsbediener is nie. Gebruik python en kommunale reeks.

O meer besonderhede oor die proses. A função readData envia bytes até que que Mezzanine faça uma leitura e devolva a resposta. U kan ook reageer, maar ons kan nie die reeks volg nie, maar die formaat "S (sensor):(waarde vir sensor)". Ons kan 'n leidraad, aparte of waardevolle terugvoering.

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

def readData (ser):

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

txt = ''

terwyl dit waar is: c = ser.read () as c == '\ n': breek elif c == '\ r': gaan voort

txt = txt + c

dados = txt.split (":")

stuur pa terug

dados = readData (ser)

Ons kan dit ook teruggee, en dit kan ook nie vir MQTT bedien word nie. 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.

voer paho.mqtt.client in as paho SERVIDOR_LOGIN = "" SERVIDOR_SENHA = "" SERVIDOR_ENDERECO = "localhost"

kliënt = paho. Client ()

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

def publicar (dados, cli):

probeer: 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 "anders: terugkeer Vals

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

slaag druk publish_name+"="+dados [1]

terwyl cli.loop ()! = 0:

slaag

behalwe:

slaag

U kan ook 'mezzanine_mqtt.py' sien.

Vir 'n kombinasie van 'n diens en 'n draakbord kan u 'n verbinding met 3G, 'n moderne HSUPA USB Stick MF 190 gebruik en 'n TIM -bedryfstelsel gebruik.

Para emissão de alertas, o sistema conta com um servidor PABX Asterisc. Dit is noodsaaklik om 'n waarskuwing te gee, maar ook 'n antwoord op die boodskap waarop ons die teks kan stuur of 'n teks vir 'n nuwe stelsel kan opstel. Vir die installasie van die Asterisc você pode seguir of link (https://www.howtoforge.com/tutorial/how-to-install-asterisk-on-debian/).

Stap 3: Placa Mezzanine Com Sensores

Placa Mezzanine Com Sensores
Placa Mezzanine Com Sensores

Três Sensores se conectam com mezzanine: luminosidade, solar solar and temperaturea e 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.

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 and luz visível.

Biblioteca:

Gebruik die biblioteca disponível através om 'n skakel, 'n verbinding of 'n sensor of 'n portaal I2C disponível. A leitura é feita da seguinte maneira:

SI114X SI1145 = SI114X (); ongeldige opstelling () {SI114X SI1145 = SI114X (); }

leemte -lus () {

vl = SI1145. ReadVisible ();

ir = SI1145. ReadIR ();

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

}

III) Temperatuur sensor en temperatuur

"Grove - Temperature and Humidity Sensor Pro"

Biblioteca:

Ons kan 'n analoog analoog A0 gebruik en 'n spesifieke artikel vir ons soek:

DHT dht (DHTPIN, DHTTYPE);

ongeldige opstelling () {

dht.begin (); }

leemte -lus () {

h = dht.readHumidity ();

t = dht.readTemperature ();

}

Vir drie verskillende sensore kan daar nie 'n mezzanine wees nie, maar ook 'n antwoord vir ons. In totaal is 6 leidrade totaal, teremos 6 estados, organado da seguinte forma:

int STAAT = 0;

leemte -lus () {

skakel (STAAT) {

saak 0:… breek;

saak 5:

… breek;

}

STAAT = (STAAT+1)%6;

}

Para evitar leituras desnecessárias, o estágio atual so executa quando a Qualcomm DragonBoard 410c está pronta para receber as informações. Om hierdie rede kan u die volgende e -posse gebruik:

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

}

Ons kan die sensor individueel aanpas om 'n funksie van sendSensorData te stuur. Esta função recebe o código do sensor (inteiro), o dado a ser enviado e o último dado utilizado. Kyk na 'n leidende ela en enviada. 'N Funksionele dubbele 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); } leemte -lus () {… geval 0: h = dht.readHumidity (); sendSensorData (1, h, lastH); laasteH = h; breek; …}

Ons kan nie 'sensores.ino' gebruik nie.

Stap 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 vir ongeveer 30 cm 'n maksimum grootte van 30 cm gebruik word. Die proses om die elektrisiteit te weerstaan, kan 'n weerstand vir ons inhou.

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

U kan ook 'sensorAlagamento.ino' sien.

Stap 5: Dashboard

Kontroleskerm
Kontroleskerm

'N Dashboard kan hoofsaaklik 'n organisatoriese e -posadres wees vir die informasie van die sensore -kolleges, en ook vir die ontwerp van 'n ander interaktiewe, além trazer informações and respeito de pontos turísticos de diversos pontos da cidade e do trânsito local. Ons gebruik 'n tegnologie van HTML5 vir 'n groot aantal funksies.

Aanbeveel: