Sadržaj:

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

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

Video: IN-FORMA: Plataforma De Informações Sobre Sua Cidade: 5 koraka
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Srpanj
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 ?! Zamislite, então, poder acompanhar em tempo realna 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, 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 IN IN FORMA, tudo isso é possível em um só 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 sabre a condição dos ventos no momento para analisar a melhor hora de sair de casa.

IN-FORMA je nova platforma web que integra diversos tipos de informações a respeito da sua cidade. São 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, 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 allowido a solicitar autorização para integrar à plataforma suas próprias aplicações fazendo uso dos dados disponibilizados e, inkluzivno, pode solicívárosios lasios.

A IN-FORMA, além de poder integrator diversos tipos de aplicações desenvolvidas pelos usuários e empresas, conta com um system de mapeamento de inundações desenvolvida pela própria. Kao što 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 sustave é de extrema utilidade em dias de chuva, pois informa os locais mais prejudicados pela água, evitando que a população tranzit portes. Além disco, o sistemu 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.

Korak 1: Arquitetura Da Plataforma

Arquitetura Da Plataforma
Arquitetura Da Plataforma

A proposta é o desenvolvimento de uma plataforma aberta para integração de diversos dispositivos. Arhitektura do sustava zasnovana je na komunikaciji entre uma placa Dragonboard, munida da placa de conexão 96boards, com o usluzi AWS da Amazon koristi Framework Mosquitto za trajnu komunikaciju putem protokola MQTT.

A 96 ploča je dostupna u Atmelu ATMEGA328 i nudi digitalne i analitičke analize, koje omogućuju integraciju Qualcomm Dragonboard 410c s senzorima. Komunikacijski entor Dragonboard i 96boards su 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. Nema poslužitelja kao informacija s disponibilizadas através de uma API API -ja, moguće i obtençsao dessas informacija putem qualquer korištenja putem meio zahtjeva HTTP i uma Restfull API. Há, uključivo, uma maneira simples de vizualizar os dados em uma Dashboard baseada HTML5.

Korak 2: Placa Dragonboard

Placa Dragonboard
Placa Dragonboard

Qualcomm Dragonboard 410c je ambijent desenvolvimento za prototipagem de projetos. Plava possui hardverski ekvivalent za Moto G, izrađen od Motorole. No desenvolvimento da plataforma ela foi utilizada como servidor local para o system. Nela izvršiti Framework Mosquitto za promoter i interakciju putem MQTT entre ili lokalnog poslužitelja e ili poslužitelja ravnatelja. Nema veze https://www.digitalocean.com/community/questions/h… é possível encontrar um tutorial de como instalar o MQTT bez Debiana. O operacijskom sustavu na platou za desenvolvimento u Linuxu Linaro, koji je baziran u Debianu. Nema veze https://www.embarcados.com.br/linux-linaro-alip-na… é moguće je unijeti uputstvo za instalaciju o Linuxu Linaro-ALIP na Qualcomm DragonBoard 410C.

Qualcomm Dragonboard 410c prethodno je predstavljen kao komunikacija o polukatu za prijem podataka kao senzora i senzora za lokalno ili daljinsko upravljanje servera MQTT. Koristite python e comunicação serijski.

O código abaixo detalha este processo. 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.

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

def readData (ser):

dok je ser.inWaiting () == 0: ser.write ([0])

txt = ''

dok je True: c = ser.read () if c == '\ n': break elif c == '\ r': nastavi

txt = txt + c

dados = txt.split (":")

povratak dados

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.

uvesti paho.mqtt.client kao 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):

pokušajte: published_name = '' if dados [0] == 'S1': published_name = "/qualcomm/umidade" elif dados [0] == 'S2': published_name = "/qualcomm/temperatura" elif dados [0] = = 'S3': published_name = "/qualcomm/luminosidade" elif dados [0] == 'S4': published_name = "/qualcomm/luzvisivel" elif dados [0] == 'S5': published_name = "/qualcomm/infravermelho "elif dados [0] == 'S6': published_name ="/qualcomm/ultravioleta "else: return False

dok je cli.publish (naziv_objave, dados [1]) [0]! = 0:

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

dok je cli.loop ()! = 0:

proći

osim:

proći

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

Para comunicação com o poslužitelju i Dragonboard -u está conectada com ili servidor através de uma conexão 3G, korištenje modema 3G HSUPA USB Stick MF 190 koristi operaciju TIM.

Para emissão de alerttas, o sistemu conta com um servidor PABX Asterisc. Semper que é needário emitir um alerta, o servidor é responseável por enviar uma chamada de voz ou uma mensagem de texto para o sistemu 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/).

Korak 3: Placa Mezzanine Com Sensores

Placa Mezanin Com Sensores
Placa Mezanin Com Sensores

Três Sensores se povezuje s mezaninom: luminosidade, luz solarne e temperature i umidade.

I) Sensor de luminosidade

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

Dopunski osjetnik: ldr = analogno čitanje (LDRPIN) /10,0

II) Solarni senzor "Grove - Senzor sunčeve svjetlosti"

Este é um senzorski višekanalni kapacitet detektora luz ultraviolete, infra-vermelho i luz visível.

Biblioteka:

Upotrijebite biblioteku s disponiranim atravima za povezivanje, povezivanjem ili senzorskim atravima za prijenos I2C disponívela. A leitura é feita da seguinte maneira:

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

void loop () {{100} {101}

vl = SI1145. ReadVisible ();

ir = SI1145. ReadIR ();

uv = pod ((plovak) SI1145. ReadUV ()/100);

}

III) Senzor temperature i umidade

"Grove - Temperature and Humidity Sensor Pro" https://wiki.seeed.cc/Grove-Temperature_and_Humidi… Ovaj senzor može osjetiti temperaturu i temperaturu umidade.

Biblioteca:

Conectamos este senzor na porta analógica A0 i koristi se za seguinte codigo para leitura:

DHT dht (DHTPIN, DHTTYPE);

void setup () {

dht.begin (); }

void loop () {{100} {101}

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

void loop () {{100} {101}

prekidač (STATE) {

slučaj 0: … prekid;

slučaj 5:

… pauza;

}

STANJE = (DRŽAVA+1)%6;

}

Za sve što vam je potrebno, o stvarnom stvarnom izvršavanju kao Qualcomm DragonBoard 410c, morate se informirati. Para isto, utilizamos uma espera ocupada:

void loop () {while (! Serial.available ()) delay (10); while (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. Função dtostrf pretvara dvostruki para niz. Já a função sprintf formata 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 (podaci, 4, 2, temp); sprintf (sendBuffer, "S%d:%s", senzorski kod, temp); Serial.println (sendBuffer); } void loop () {… slučaj 0: h = dht.readHumidity (); sendSensorData (1, h, lastH); zadnjiH = h; pauza; …}

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

Korak 4: Sensor De Alagamento Utilizando NodeMCU

Senzor De Alagamento Koristi NodeMCU
Senzor De Alagamento Koristi NodeMCU
Senzor De Alagamento Koristi NodeMCU
Senzor De Alagamento Koristi NodeMCU
Senzor De Alagamento Koristi NodeMCU
Senzor De Alagamento Koristi 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 procesu de eletrólise cria um otpornik virtal quando o dispositivo é inundado.

Paralelno s desenvolvimento do código, za korištenje IDE-a do Arduina com kao biblioteke: Pubsub-klijent (https://pubsubclient.knolleary.net/) ESP8266 (https://github.com/esp8266/Arduino).

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

Korak 5: Nadzorna ploča

Nadzorna ploča
Nadzorna ploč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 local. Da biste koristili tehnologiju HTML5 za samo desenvolvimento.

Preporučeni: