Mục lục:

IN-FORMA: a Plataforma De Informações Sobre Sua Cidade: 5 bước
IN-FORMA: a Plataforma De Informações Sobre Sua Cidade: 5 bước

Video: IN-FORMA: a Plataforma De Informações Sobre Sua Cidade: 5 bước

Video: IN-FORMA: a Plataforma De Informações Sobre Sua Cidade: 5 bước
Video: Bà mẹ chồng độc ác đuổi cô ra khỏi nhà, cô trở về làm cháu gái của người giàu nhất. 2024, Tháng mười một
Anonim
IN-FORMA: một Plataforma De Informações Sobre Sua Cidade
IN-FORMA: một Plataforma De Informações Sobre Sua Cidade

Quem nunca saiu de casa com roupas de frio e quando chegou no Destinyno estava fazendo o maior sol ?! Hãy tưởng tượng, então, poder acompanhar em tempo real a temperatura deversos 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 đủ điều kiện để phản os danos do sol. Com a IN-FORMA, tudo isso é ridí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 useizá-las da forma que desejar. Se você gosta de velejar, por exelo, 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 tích hợp đa dạng tipos de Informações a respeito da sua cidade. São espalhados emversos 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, 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 integrationr à plataforma suas próprias aplicações fazendo uso dos dados disponibilizados us rách, bao gồm,.

IN-FORMA, nhà tích hợp bộ mã hóa além de podos tipos de aplicações desenvolvidas pelos usuários e empresas, conta com um Sistema de mapeamento de inundações desenvolvida pela própria. Như inundações trazem muitos problemas à população, tanto de saúde pública, quanto ambientais e socialais. Por isso, em cidades com sistemas de drenagem insulles, é 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 pontos da cidade, através de aparelhos instalados nas vias ou calçadas. Este sistema é de Extremema useidade em dias de chuva, độc Informa os locais mais seekicados 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.

Bước 1: Arquitetura Da Plataforma

Arquitetura Da Plataforma
Arquitetura Da Plataforma

Một proposta é o desenvolvimento de uma plataforma aberta para integrationção deversos dispositivos. A arquitetura do sistema é baseada na comunicação entre uma board Dragonboard, munida da coroa de conexão 96boards, com o serviço AWS da Amazon useizando o Framework Mosquitto para purpuar a comunicação qua giao thức MQTT.

A 96boards está munida de um Atmel ATMEGA328 que provê entradas digitais e analógicas e, com isto, permite a integrationção da Qualcomm Dragonboard 410c com sensores. Một comunicação yêu cầu một Dragonboard e a 96boards sẽ thực hiện giao thức I²C (Mạch tích hợp liên).

Os dados coletados nos dispositivos são enviados para o servidor bởi meio do protocolo de comunicação TCP / IP. Không có người phục vụ như Informações são disponibilizadas através de uma API pública, Possibilitando một món tráng miệng obtenção Informações por Qualquer usuário bởi meio suggestições HTTP a uma Restfull API. Há, bao gồm, uma Mameira simples de visualizar os dados em uma Trang tổng quan baseada em HTML5.

Bước 2: Placa Dragonboard

Placa Dragonboard
Placa Dragonboard

Một Qualcomm Dragonboard 410c é um ambiente de desenvolvimento para prototipagem de projetos. Một phần cứng khác nhau tương đương với Moto G, Fabricado pela Motorola. Không có desenvolvimento da plataforma ela foi useizada como servidor local para o sistema. Nela é executeutada o Framework Mosquitto para promover a interação thông qua MQTT entre o servidor local e o servidor gốc. Không có liên kết https://www.digitalocean.com/community/questions/h… é Possível encontrar um tutorial de como instalar o MQTT no Debian. O Sistema operacional usado na coroa de desenvolvimento é o Linux Linaro, que é baseado em Debian. Không có liên kết 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.

Một Qualcomm Dragonboard 410c PREisa se comunicar com o Mezzanine para Collectber as Informações coletadas no sensor e enviá-las para o servidor MQTT local ou remoto. Utilizamos python e comunicação nối tiếp.

O código abaixo detalha este processo. A função readData envia bytes até que o Mezzanine surfacea uma leitura e devolva a resposta. Ao Collectber 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, tách o código do valor e retorna.

nhập serial ser = serial. Serial ('/ dev / tty96B0', 115200)

def readData (ser):

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

txt = ''

while True: c = ser.read () if c == '\ n': break elif c == '\ r': tiếp tục

txt = txt + c

dados = txt.split (":")

trả lại bố

dados = readData (ser)

Com os dados Collectbidos, é possível publicar không có người phục vụ MQTT. Một comunicação com o servidor é feita useizando 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 đủ.

nhập paho.mqtt.client dưới dạng 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):

try: Publishing_name = '' if dados [0] == 'S1': Publishing_name = "/ Qualcomm / umidade" elif dados [0] == 'S2': Publishing_name = "/ Qualcomm / temperatura" elif dados [0] = = 'S3': Publishing_name = "/ Qualcomm / luminosidade" elif dados [0] == 'S4': Publishing_name = "/ Qualcomm / luzvisivel" elif dados [0] == 'S5': Publishing_name = "/ Qualcomm / Infravermelho "elif dados [0] == 'S6': Publishing_name =" / Qualcomm /violeta "else: return Sai

trong khi cli.publish (Publishing_name, dados [1]) [0]! = 0:

vượt qua bản in Publishing_name + "=" + dados [1]

trong khi cli.loop ()! = 0:

đi qua

ngoại trừ:

đi qua

O hasdigo completo pode ser visto no arquivo "Meoin_mqtt.py".

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

Para broadcastão de alertas, o sistema 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 sistema de Emergencyência da região. Para instalar o Asterisc você pode seguir o link (https://www.howtoforge.com/tutorial/how-to-install-asterisk-on-debian/).

Bước 3: Cảm biến Placa Mezzanine Com

Placa Mezzanine Com Sensores
Placa Mezzanine Com Sensores

Três Sensores se conectam com o Tầng lửng: luminosidade, luz Solar e temperatura e umidade.

I) Cảm biến de luminosidade

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

Leitura do cảm biến: ldr = analogRead (LDRPIN) /10.0

II) Cảm biến de luz mặt trời "Grove - Cảm biến ánh sáng mặt trời"

Este é um cảm biến đa kênh capaz de detar luz tia cực tím, tia hồng ngoại vermelho e luz visível.

Biblioteca:

Utilizando a biblioteca disponível através do link abaixo, conectamos o sensor através da porta I2C disponível. A leitura é feita da seguintembira:

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

void loop () {

vl = SI1145. ReadVosystem ();

ir = SI1145. ReadIR ();

uv = sàn ((float) SI1145. ReadUV () / 100);

}

III) Cảm biến de temperatura e umidade

"Grove - Cảm biến nhiệt độ và độ ẩm Pro" https://wiki.seeed.cc/Grove-Tempe Heat_and_Humidi… Cảm biến Este é capaz de Detar temperatura e umidade relativa.

Biblioteca:

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

DHT dht (DHTPIN, DHTTYPE);

void setup () {

dht.begin (); }

void loop () {

h = dht.readHumidity ();

t = dht.readTempentic ();

}

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, Organiado da seguinte forma:

int STATE = 0;

void loop () {

chuyển đổi (STATE) {

trường hợp 0:… break;

trường hợp 5:

… nghỉ;

}

STATE = (STATE + 1)% 6;

}

Para evitar leituras des Needárias, o estágio atual só executeuta quando a Qualcomm DragonBoard 410c está pronta para Collectber as Informações. Para isto, Pracizamos 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 thube o código do sensor (inteiro), o dado a ser enviado e o último dado useizado. Se houver mudanças na leitura ela é enviada. Một função dtostrf convertte de double para string. Já 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 (dữ liệu, 4, 2, tạm thời); sprintf (sendBuffer, "S% d:% s", sensorCode, temp); Serial.println (sendBuffer); } void loop () {… case 0: h = dht.readHumidity (); sendSensorData (1, h, lastH); lastH = h; nghỉ; …}

O código hoàn thành pode ser visto no arquivo "sensores.ino".

Bước 4: Cảm biến De Alagamento Utilizando NodeMCU

Cảm biến De Alagamento Utilizando NodeMCU
Cảm biến De Alagamento Utilizando NodeMCU
Cảm biến De Alagamento Utilizando NodeMCU
Cảm biến De Alagamento Utilizando NodeMCU
Cảm biến De Alagamento Utilizando NodeMCU
Cảm biến De Alagamento Utilizando NodeMCU

O NodeMCU foi useizado para fazer a leitura do nível da água, useizando 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 điện trở ảo quando o dispositivo é inundado.

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

O código hoàn thành pode ser visto no arquivo "sensorAlagamento.ino".

Bước 5: Trang tổng quan

bảng điều khiển
bảng điều khiển

Một Bảng điều khiển tem como chính đơn vị tổ chức objetivo 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 deversos pontos da cidade e do trânsito địa phương. Foi useizada a tecnologia HTML5 para seu desenvolvimento.

Đề xuất: