สารบัญ:

IN-FORMA: a Plataforma De Informações Sobre Sua Cidade: 5 ขั้นตอน
IN-FORMA: a Plataforma De Informações Sobre Sua Cidade: 5 ขั้นตอน

วีดีโอ: IN-FORMA: a Plataforma De Informações Sobre Sua Cidade: 5 ขั้นตอน

วีดีโอ: IN-FORMA: a Plataforma De Informações Sobre Sua Cidade: 5 ขั้นตอน
วีดีโอ: How To Make New Friends In a New City (You’re Not Alone!) 2024, พฤศจิกายน
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 o maior sol?! ลองนึกภาพ, 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, กระบี่ o índice de radiação UV antes de ir para uma praia ou um parque para se proteger adequadamente contra os. ในรูปแบบ IN-FORMA, tudo isso é possível em um só lugar! คำศัพท์ 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.

A IN-FORMA é a mais nova plataforma web que integra Diversos tipos de informações a respeito da sua cidade. ในแบบฟอร์มนี้ São espalhados ที่มีความหลากหลาย pontos da região sensores de temperatura, umidade, luminosidade, entre outros, que fornecem em tempo real as condições daquele local เนื้อหาที่เกี่ยวข้อง กับ เซ็นเซอร์, แพลตฟอร์ม tem conexão direta com o Google Maps, ข้อมูลข่าวสาร 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 las dáos dos dos มากกว่า.

A 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. เช่น inundações trazem muitos problems à população, tanto de saúde pública, quanto Ambientais e sociais Por isso, em cidades com sistemas de drenagem inficientes, é de extrema importância และ 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. ชุมชน

ขั้นตอนที่ 1: Arquitetura Da Plataforma

Arquitetura Da Plataforma
Arquitetura Da Plataforma

A proposta é o desenvolvimento de uma plataforma aberta para integração de Diversos dispositivos. A arquitetura do sistema é 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 การสื่อสารผ่านโปรโตคอล MQTT

A 96boards está munida de um Atmel ATMEGA328 que provê entradas digitais e analógicas e, com isto, อนุญาตให้ใช้เซ็นเซอร์ Qualcomm Dragonboard 410c com จำนวนมาก การสื่อสารเข้าสู่ Dragonboard และ 96boards 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. ระบบปฏิบัติการ ไม่มีผู้รับบริการในฐานะผู้ให้ข้อมูล são disponibilizadas através de uma API pública, เป็นไปได้ a obtenção dessas informações por qualquer usuário por meio requisições HTTP a uma Restfull API รวมแล้ว uma maneira simples de visualizar os dados em uma Dashboard baseada em HTML5

ขั้นตอนที่ 2: Placa Dragonboard

Placa Dragonboard
Placa Dragonboard

Qualcomm Dragonboard 410c é um Ambiente de desenvolvimento para prototipagem de projetos. ฮาร์ดแวร์ของ placa possui เทียบเท่ากับ Moto G, fabricado pela Motorola ไม่มี desenvolvimento da plataforma ela foi utilizada como servidor local para o sistema Nela é executada o Framework Mosquitto parapromover a interação ผ่าน MQTT entre o servidor local e o servidor principal ไม่มีลิงก์ https://www.digitalocean.com/community/questions/h… é possível encontrar um tutorial de como instalar o MQTT no Debian ระบบปฏิบัติการที่ใช้งานบนเดสก์ท็อปและเดสก์ท็อป é o Linux Linaro, que é baseado em Debian ไม่มีลิงก์ https://www.embarcados.com.br/linux-linaro-alip-na… encontrar um tutorial de como instalar o Linux Linaro-ALIP บน Qualcomm DragonBoard 410C.

Qualcomm Dragonboard 410c precisa se comunicar com o Mezzanine para receber as informações coletadas no sensor e enviá-las para o servidor MQTT local ou remoto. Utilizamos python e comunicação อนุกรม

O código abaixo detalha este processor. a função readData envia ไบต์ 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 formato "S(código do sensor):(valor do sensor)". Após a leitura, separa o código do valor e retorna.

นำเข้าซีเรียลซีเรียล = serial. Serial('/dev/tty96B0', 115200)

def readData (เซิร์ฟเวอร์):

ขณะที่ ser.inWaiting() == 0: ser.write([0])

txt = ''

ในขณะที่ True: c = ser.read() ถ้า c == '\n': ทำลาย elif c == '\r': ดำเนินการต่อ

txt = txt + c

dados = txt.split(":")

กลับมาพ่อ

dados = readData (เซิร์ฟเวอร์)

Com os dados recebidos, é possível publicar ไม่มีเซิร์ฟเวอร์ MQTT การสื่อสาร 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.

นำเข้า paho.mqtt.client เป็น paho SERVIDOR_LOGIN = "" SERVIDOR_SENHA = "" SERVIDOR_ENDERECO = "localhost"

ลูกค้า = paho. Client()

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

def publicar (dados, cli):

ลอง: 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: คืนค่าเป็นเท็จ

ในขณะที่ cli.publish(publish_name, dados[1])[0] != 0:

พิมพ์ผ่าน publish_name+" = "+dados[1]

ในขณะที่ cli.loop() != 0:

ผ่าน

ยกเว้น:

ผ่าน

O código สมบูรณ์ pode ser visto no arquivo "mezzanine_mqtt.py"

การสื่อสารกับเซิร์ฟเวอร์ กระดานมังกร เชื่อมต่อกับผู้ใช้ 3G ใช้งานโมเด็ม 3G HSUPA USB Stick MF 190 ใช้งาน TIM

Para emissão de alertas, o sistema conta com um servidor PABX Asterisc. เงื่อนไขการใช้งาน Semper que é necessá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 ตัวติดตั้งบน Asterisc você pode seguir o ลิงค์ (https://www.howtoforge.com/tutorial/how-to-install-asterisk-on-debian/)

ขั้นตอนที่ 3: เซ็นเซอร์ Placa Mezzanine Com

Placa Mezzanine Com Sensores
Placa Mezzanine Com Sensores

เซนเซอร์ se conectam com o Mezzanine: luminosidade, luz solar e temperatura e umidade

I) เซนเซอร์เดอลูมิโนซิเดด

O เซ็นเซอร์ LDR é um led ativado pela luminosidade que incide sobre ele. A leitura é feita através da porta analógica A0.

Leitura ทำเซ็นเซอร์: ldr = analogRead(LDRPIN)/10.0

II) เซ็นเซอร์แสงอาทิตย์ "Grove - Sunlight Sensor"

Este é um เซ็นเซอร์ multi-canal capaz de detectar luz ultravioleta, infra-vermelho e luz visível.

บรรณานุกรม:

ใช้งานห้องสมุด แหล่งข้อมูล ลิงก์ ลิงก์ abaixo, เซ็นเซอร์ และ เซ็นเซอร์ที่พอร์ต I2C disponível. A leitura é feita da seguinte maneira:

SI114X SI1145 = SI114X(); การตั้งค่าเป็นโมฆะ () { SI114X SI1145 = SI114X (); }

วงเป็นโมฆะ (){

vl = SI1145 อ่านมองเห็นได้ ();

ir = SI1145. ReadIR();

uv = ชั้น ((ลอย) SI1145. ReadUV ()/100);

}

III) เซ็นเซอร์อุณหภูมิ e umidade

"Grove - Temperature and Humidity Sensor Pro" https://wiki.seeed.cc/Grove-Temperature_and_Humidi… Este sensor é capaz de detectar temperatura e umidade relativa. เซ็นเซอร์อุณหภูมิและความชื้น

บรรณานุกรม:

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

DHT dht (DHTPIN, DHTTYPE);

การตั้งค่าเป็นโมฆะ (){

dht.begin(); }

วงเป็นโมฆะ (){

ชั่วโมง = dht.readHumidity();

เสื้อ = dht.readTemperature();

}

Para juntar a leitura dos 3 sensores no Mezzanine, criamos uma máquina de estados, onde cada estado é ตอบกลับสำหรับ uma leitura Como são 6 leituras no total, teremos 6 estados, organizado da seguinte รูปแบบ:

int รัฐ = 0;

วงเป็นโมฆะ (){

สวิตช์ (STATE){

กรณีที่ 0: … แตก;

กรณีที่ 5:

… หยุดพัก;

}

รัฐ = (STATE+1)%6;

}

สำหรับตัวเลือกที่จำเป็น, o estágio atual só executa quando a Qualcomm DragonBoard 410c está pronta para receber as informações. สำหรับ isto, utilizamos uma espera ocupada:

วงเป็นโมฆะ(){ ในขณะที่ (!Serial.available()) ล่าช้า(10); ในขณะที่ (Serial.available()) Serial.read();

}

Cada leitura de เซ็นเซอร์ é enviada บุคคล apó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 converte de double para string Já a função sprintf รูปแบบ a string สำหรับ ser enviada pela serial com a função Serial.println

ถ่าน sendBuffer[20], ชั่วคราว [10]; เป็นโมฆะ sendSensorData (int sensorCode, double data, double lastData) { if (data == lastData) ส่งคืน; dtostrf(ข้อมูล, 4, 2, อุณหภูมิ); sprintf(sendBuffer, "S%d:%s", รหัสเซ็นเซอร์, อุณหภูมิ); Serial.println (sendBuffer); } void loop(){ … กรณีที่ 0: h = dht.readHumidity(); sendSensorData(1, ชั่วโมง, สุดท้ายH); สุดท้ายH = ชั่วโมง; หยุดพัก; … }

O código สมบูรณ์ pode ser visto no arquivo "sensores.ino"

ขั้นตอนที่ 4: เซนเซอร์ De Alagamento Utilizando NodeMCU

เซนเซอร์ De Alagamento Utilizando NodeMCU
เซนเซอร์ De Alagamento Utilizando NodeMCU
เซนเซอร์ De Alagamento Utilizando NodeMCU
เซนเซอร์ De Alagamento Utilizando NodeMCU
เซนเซอร์ De Alagamento Utilizando NodeMCU
เซนเซอร์ De Alagamento Utilizando NodeMCU

O NodeMCU สำหรับใช้งานสำหรับ fazer ใช้งาน 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 การประมวลผลของพลังงาน Cria um ตัวต้านทาน virtal quando o dispositivo é inundado

Para o desenvolvimento do código, foi utilizada a IDE do Arduino com เป็น bibliotecas: Pubsub-client (https://pubsubclient.knolleary.net/) ESP8266 (https://github.com/esp8266/Arduino)

O código สมบูรณ์ pode ser visto no arquivo "sensorAlagamento.ino"

ขั้นตอนที่ 5: แดชบอร์ด

แผงควบคุม
แผงควบคุม

A Dashboard tem como principal objetivo organizar e apresentar 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 cidadens â. ฟอย utilizada a tecnologia HTML5 สำหรับ desenvolvimento.

แนะนำ: