Turinys:

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

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

Video: IN-FORMA: Plataforma De Informações Sobre Sua Cidade: 5 žingsniai
Video: Кто-нибудь из вас слышал о полуночной игре? Страшные истории. Мистика. Ужасы 2024, Lapkritis
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 ?! Įsivaizduokite, įsimylėkite, palydėkite akimirksniu į tikrąją temperatūrą ir įvairiai tiksliai sua cidade, semper estando preparado para o que der e vier! Ou, então, evitar transitar pelos principais täp 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 adekvatamente contra os danos do sol. KOM IN-FORMA, mokslas yra taip pat galimas em um só lugar! Você pode acompanhar o trânsito de uma determinada região e ver os principais tikslus turizmas. Além de ter acesso a um banco de informationções, você pode utilizá-las da forma que desejar. Se vokê gosta de velejar, por examplelo, pode saber a condição dos ventos no momento para analisar a melhor hora de sair de casa.

A IN-FORMA-tai nauja interneto platforma, skirta įvairiems patarimams, informacijai gauti ir atsakyti. São espalhados em diversos täps da região sensores de temperatura, umidade, luminosidade, entre outros, que fornecem em tempo real as as condições daquele local. „Google“žemėlapių platforma, skirta bendram naudojimui ir tiesioginiam naudojimui, „Google Maps“, informacijos apie tinkamumą ar vietos nustatymą ir vietos nustatymą bei restruktūrizavimo sistemas. Uma das inovações trazidas pela plataforma e que ela pode contar com a interactção do usuário, sendo este allowido and solicitar autorização para integrar à plataforma suas próprias aplicações fazendo uso dos dados disponibilizados e, inclusive, pode solicosios.

A IN-FORMA, integrar įvairūs patarimai ir aplicações desenvolvidas pelos usuários e empresas, conta com um system de mapeamento de inundações desenvolvida pela própria. As 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 extremema 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 täps da cidade, através de aparelhos instalados nas vias ou calçadas. Este sistema é de extremema utilidade em dias de chuva, nu informacija yra lokalizuota daugiau išankstinio nusistatymo, 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 tiksliai críticos de alagamento da região.

1 žingsnis: „Arquitetura Da Plataforma“

Arquitetura Da Plataforma
Arquitetura Da Plataforma

A proposta é o desenvolvimento de uma plataforma aberta para integração de diversos dispositivos. „Dragonboard“, „96boards“platforma, „AWS“ir „Amazon“paslaugų teikimo sistema „AWS“, skirta „Amazon Mosquitto“, skirta nuolatiniam komunikacijos naudojimui per protokolą MQTT.

A 96boards estam munida de um Atmel ATMEGA328 que provê entradas digital and analogics and e, com isto, permite a integration of da Qualcomm Dragonboard 410c com sensores. Komunikacija, skirta „Dragonboard“ir 96boards se dá através do protocolo I²C (Inter-Integrated Circuit).

Os dados coletados nos dispositivos são enviados para or servidor por meio do protocolo de comunicação TCP/IP. Nėra paslaugų teikėjo, kaip informacijos disponibilizadas através de uma API pública, galima ir galima gauti informaciją apie kokybišką naudojimą, kai reikia HTTP ir uma Restfull API. Čia, viskas įskaičiuota, yra paprastų vizualizavimo ir tėvo vizualizacijos elementų, esančių informacijos suvestinėje, pagrįstoje HTML5.

2 žingsnis: „Placa Dragonboard“

„Placa Dragonboard“
„Placa Dragonboard“

„Qualcomm Dragonboard 410c“yra ambiente de desenvolvimento para prototipagem de projetos. „Moto G“aparatinės įrangos ekvivalentas ir „Motorola“gaminiai. No desenvolvimento da plataforma ela foi utilizada como servidor local para o system. Nela é executada o Framework Mosquitto para promover a interactção via MQTT entre o servidor local e o servidor princip. Nėra nuorodos https://www.digitalocean.com/community/questions/h… e possível encontrar um tutorial of como instalar or MQTT no Debian. Sistemos operacinė sistema, skirta plačiajai plėtrai ir „Linux Linaro“, „Debian“pagrindui. Nėra nuorodos https://www.embarcados.com.br/linux-linaro-alip-na… ir įdiegtos „Linux Linaro-ALIP“bei „Qualcomm DragonBoard 410C“įdiegimo instrukcijos.

„Qualcomm Dragonboard 410c“turi tikslią komunikacinę informaciją apie mezzanine imtuvą, kaip informacijos informaciją apie jutiklius be jutiklio ir aplinkosauginio MQTT vietinio ar nuotolinio valdymo. Utilizamos python ir comunicação serialas.

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 do serial que deverá estar no formato "S (código do sensor):(valor do sensor)". Após a leitura, separa o código do valor e retorna.

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

def readData (ser):

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

txt ="

nors tiesa: c = ser.read () if c == '\ n': break elif c == '\ r': tęsti

txt = txt + c

dados = txt.split (":")

grįžti tėveliai

dados = readData (ser)

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

importuoti paho.mqtt.client kaip paho SERVIDOR_LOGIN = "" SERVIDOR_SENHA = "" SERVIDOR_ENDERECO = "localhost"

klientas = paho. Client ()

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

def publicar (dados, cli):

pabandykite: paskelbti_vardas = '' jei dados [0] == 'S1': paskelbti_vardas = "/qualcomm/umidade" elif dados [0] == 'S2': paskelbti_vardas = "/qualcomm/temperatura" elif dados [0] = = 'S3': paskelbti_vardas = "/qualcomm/luminosidade" elif dados [0] == 'S4': paskelbti_vardas = "/qualcomm/luzvisivel" elif dados [0] == 'S5': paskelbti_vardas = "/qualcomm/infravermelho "elif dados [0] == 'S6': paskelbti_vardas ="/qualcomm/ultravioleta "else: return False

o cli.publish (publikuoti_vardas, dados [1]) [0]! = 0:

leidimas spausdinti skelbti_pavadinimas+"="+dados [1]

o cli.loop ()! = 0:

praeiti

išskyrus:

praeiti

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

Naudodami „Dragonboard“paslaugą, galite prisijungti prie „3G“, naudoti modemą „3G HSUPA USB Stick MF 190“ir naudoti TIM operacinę sistemą.

Įspėjamasis įspėjimas, o sistema apima „PABX Asterisc“paslaugų teikėją. Semper que é essentialário emitir um alerta, o servidor é responseável por enviar uma chamada de voz ou uma mensagem de texto para o system de emergência da região. Įdiekite arba „Asterisc“žodžių junginio nuorodą (https://www.howtoforge.com/tutorial/how-to-install-asterisk-on-debian/).

3 žingsnis: „Placa Mezzanine Com Sensores“

Placa Mezzanine Com Sensores
Placa Mezzanine Com Sensores

Três Sensores se conectam com or Mezzanine: luminosidade, luz solar ir Temperature and umidade.

I) Šviesos jutiklis

O jutiklis 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) Saulės jutiklis „Grove - Sunlight Sensor“https://wiki.seeed.cc/Grove-Sunlight_Sensor/

Este um um jutiklis daugiakanalis, galintis aptikti ultravioletinius spindulius, infra-vermelho ir luz visível.

Biblioteka:

Naudokite biblioteka disponível através do link abaixo, conectamos o sensor através da porta I2C disponível. Leitura é feita da seguinte maneira:

SI114X SI1145 = SI114X (); tuštumos sąranka () {SI114X SI1145 = SI114X (); }

void loop () {

vl = SI1145. ReadVisible ();

ir = SI1145. ReadIR ();

uv = grindys ((plūdė) SI1145. ReadUV ()/100);

}

III) Temperatūros ir drėgmės jutiklis

"Grove - Temperatūros ir drėgmės jutiklis Pro" https://wiki.seeed.cc/Grove-Temperature_and_Humidi… Este sensorius ir temperatūros jutiklis.

Biblioteka:

Kontaktinis jutiklis su portalo analitika A0 ir panaudojimas arba mišinio kodavimas:

DHT dht (DHTPIN, DHTTYPE);

void setup () {

dht.begin (); }

void loop () {

h = dht.readHumidity ();

t = dht.readTemperature ();

}

Para juntar a leitura dos 3 sensores no Mezzanine, criamos uma máquina de estados, onde cada estado é responseável por uma leitura. Como são 6 leituras no total, teremos 6 estados, organizado da seguinte forma:

int STATE = 0;

void loop () {

jungiklis (STATE) {

0 atvejis:… pertrauka;

5 atvejis:

… pertrauka;

}

VALSTYBĖ = (VALSTYBĖ+1)%6;

}

„Evual leituras desnecessárias“, arba estetinis galutinis įvykdymas ir „Qualcomm DragonBoard 410c“pristato imtuvą kaip informaciją. 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. Žiūrėkite mudanças leitura ela é enviada. Įdomus dtostrf konvertuoti dvigubą eilutę. Já a função sprintf formate 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 (duomenys, 4, 2, temp); sprintf (sendBuffer, "S%d:%s", sensorCode, temp); Serial.println (sendBuffer); } void loop () {… 0 atvejis: h = dht.readHumidity (); sendSensorData (1, h, lastH); paskutinisH = h; pertrauka; …}

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

4 žingsnis: jutiklis „De Alagamento Utilizando NodeMCU“

Jutiklis „Alagamento Utilizando NodeMCU“
Jutiklis „Alagamento Utilizando NodeMCU“
Jutiklis „Alagamento Utilizando NodeMCU“
Jutiklis „Alagamento Utilizando NodeMCU“
Jutiklis „Alagamento Utilizando NodeMCU“
Jutiklis „Alagamento Utilizando NodeMCU“

O „NodeMCU“gali būti naudojamas fazer ir 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 procesorius de eletrólise cria um rezistor virtal quando o dispositivo é inundado.

Jei norite naudoti kodą, naudokite IDE ar Arduino com kaip biblioteka: Pubsub-client (https://pubsubclient.knolleary.net/) ESP8266 (https://github.com/esp8266/Arduino).

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

5 veiksmas: prietaisų skydelis

Prietaisų skydelis
Prietaisų skydelis

A Dashboard Tem Como Main Objective Organisation and Apresentar Melhor os Conteúdos Informativos dos Sensores Coletados, Dando a eles um design more interativo, além trazer informationções a respeito de tiksli turizmo sistema, skirta įvairiems tikslams ir vietos nustatymui. Naudokite HTML5 technologiją, skirtą naudoti.

Rekomenduojamas: