সুচিপত্র:

ইন-ফর্মা: একটি প্ল্যাটফর্ম ডি ইনফরমেশন সোব্রে সুয়া সিডাড: 5 টি ধাপ
ইন-ফর্মা: একটি প্ল্যাটফর্ম ডি ইনফরমেশন সোব্রে সুয়া সিডাড: 5 টি ধাপ

ভিডিও: ইন-ফর্মা: একটি প্ল্যাটফর্ম ডি ইনফরমেশন সোব্রে সুয়া সিডাড: 5 টি ধাপ

ভিডিও: ইন-ফর্মা: একটি প্ল্যাটফর্ম ডি ইনফরমেশন সোব্রে সুয়া সিডাড: 5 টি ধাপ
ভিডিও: Input & Output devices of computer | কম্পিউটারের ইনপুট এবং আউটপুট ডিভাইস | 2024, জুলাই
Anonim
ইন-ফর্মা: একটি প্লাটফর্ম ডি ইনফরমেশন সোব্রে সুয়া সিডাড
ইন-ফর্মা: একটি প্লাটফর্ম ডি ইনফরমেশন সোব্রে সুয়া সিডাড

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, 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। Com a 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 saber a condição dos ventos no momento para analisar a melhor hora de sair de casa।

একটি ইন-ফর্ম é a mais nova plataforma web que integra diversos tipos de informações a respeito da sua cidade। 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 sensors, 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। উমা দাস inovações trazidas Pela plataforma দ্বীপ কী Ela Pode contar কম একটি interação না usuário, Sendo এস্তে permitido একটি solicitar autorização পাড়া integrar à plataforma suas próprias aplicações fazendo uso ডস dados disponibilizados ই, সমেত, Pode solicitar acesso পাড়া torná লাস visíveis AOS outros usuários ।

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 problemmas à população, tanto de saúde pública, quanto ambientais e sociais। Por isso, em cidades com sistemas de drenagem ineficientes, extre de Extrema 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 Systeme é 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। AQUITETURO 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 a comunicação via protocolo MQTT।

A 96boards está munida de um Atmel ATMEGA328 que provê entradas digitais e analógicas e, com isto, permite a integração da Qualcomm Dragonboard 410c com sensors। একটি কমিউনিকেশন একটি ড্রাগনবোর্ড এবং একটি 96boards se dá através do protocolo I²C (Inter-Integrated Circuit)।

Dad 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, possibilitando a obtenção dessas informações por qualquer usuário por meio requisições HTTP a uma Restfull API। Há, অন্তর্ভুক্ত, uma maneira simples de visualizar os dados em uma Dashboard baseada em HTML5।

ধাপ 2: প্লাকা ড্রাগনবোর্ড

প্লাকা ড্রাগনবোর্ড
প্লাকা ড্রাগনবোর্ড

একটি কোয়ালকম ড্রাগনবোর্ড 410c amb um ambiente de desenvolvimento para prototipagem de projetos। A placa possui হার্ডওয়্যার সমতুল্য Ao Moto G, fabricado pela Motorola। No desenvolvimento da plataforma ela foi utilizada como servidor local para o systemema। নেলা é এক্সিকিউটেড ও ফ্রেমওয়ার্ক মশকিটো এমকিউটিটি এন্ট্রে ও সার্ভিডর স্থানীয় ই ও সার্ভিডর প্রিন্সিপালের মাধ্যমে একটি ইন্টারঅ্যানোকে প্রমোভার করে। লিঙ্ক নেই https://www.digitalocean.com/community/questions/h… é possível encontrar um tutorial de como instalar o MQTT no Debian। হে সিস্টেমা অপারেশনাল ইউসাদো না প্লাকা ডি ডেসেনভোলভিমেন্টো Linux o লিনাক্স লিনারো, কিউ বেসাডো এম ডেবিয়ান। লিঙ্ক নেই 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।

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

আমদানি সিরিয়াল ser = serial. Serial ('/dev/tty96B0', 115200)

def readData (ser):

যখন ser.inWaiting () == 0: ser.write ([0])

txt = ''

সত্য যখন: c = ser.read () যদি c == '\ n': ব্রেক এলিফ c == '\ r': চালিয়ে যান

txt = txt + c

dados = txt.split (":")

দাদোস ফিরিয়ে দাও

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 adequado।

paho.mqtt.client paho হিসাবে আমদানি করুন SERVIDOR_LOGIN = "" SERVIDOR_SENHA = "" SERVIDOR_ENDERECO = "localhost"

ক্লায়েন্ট = পাহো ক্লায়েন্ট ()

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

def publicar (dados, cli):

চেষ্টা করুন: published_name = "যদি 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

যখন cli.publish (published_name, dados [1]) [0]! = 0:

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

যখন cli.loop ()! = 0:

পাস

ছাড়া:

পাস

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

Comunicação com o servidor a Dragonboard está conectada com o servidor através de uma conexão 3G, utizando o modem 3G HSUPA USB Stick MF 190 ব্যবহার করে একটি অপারেডোরা টিআইএম ব্যবহার করুন।

Para emissão de alertas, o sistema conta com um servidor PABX Asterisc। Semper que é essentialário emitir um alarta, 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" লিঙ্কটি দেখুন (https://www.howtoforge.com/tutorial/how-to-install-asterisk-on-debian/)।

ধাপ 3: Placa Mezzanine Com Sensores

Placa Mezzanine Com Sensores
Placa Mezzanine Com Sensores

Três Sensores se conectam com o Mezzanine: luminosidade, luz solar e temperatura e umidade।

I) সেন্সর ডি লুমিনোসিডেড

O সেন্সর LDR é um নেতৃত্বে 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) সেন্সর ডি লুজ সৌর "গ্রোভ - সানলাইট সেন্সর"

Este m um সেন্সর মাল্টি-ক্যানাল ক্যাপাজ ডি ডিটেক্টর লুজ আল্ট্রাভায়োলেট, ইনফ্রা-ভারমেলহো ই লুজ ভিসভেল।

Biblioteca:

Utilizando a biblioteca disponível através do link abaixo, conectamos o sensor através da porta I2C disponível। একটি লেইটুরা é ফেইটা দা সেগুইন্ট মনিরা:

SI114X SI1145 = SI114X (); অকার্যকর সেটআপ () {SI114X SI1145 = SI114X (); }

অকার্যকর লুপ () {

vl = SI1145. ReadVisible ();

ir = SI1145. ReadIR ();

uv = মেঝে ((ভাসা) SI1145. ReadUV ()/100);

}

III) সেন্সর ডি টেম্পারেটুর ই উমিডে

"গ্রোভ - তাপমাত্রা এবং আর্দ্রতা সেন্সর প্রো" https://wiki.seeed.cc/Grove-Temperature_and_Humidi… Este sensor é capaz de detectar temperatura e umidade আপেক্ষিক।

Biblioteca:

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

DHT dht (DHTPIN, DHTTYPE);

অকার্যকর সেটআপ(){

dht.begin (); }

অকার্যকর লুপ () {

h = dht.readHumidity ();

t = dht.readTemperature ();

}

Para juntar a leitura dos 3 sensors 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:

রাজ্য = 0;

অকার্যকর লুপ () {

সুইচ (STATE) {

কেস 0:… বিরতি;

কেস 5:

… বিরতি;

}

রাজ্য = (রাজ্য+1)%6;

}

Para evitar leituras dessentialárias, o estágio atual só execute quando a Qualcomm DragonBoard 410c está pronta para receber for informações। Para isto, utilizamos uma espera ocupada:

অকার্যকর লুপ () {যখন (! Serial.available ()) বিলম্ব (10); যখন (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 utizizado। Se houver mudanças na leitura ela é enviada। একটি função dtostrf কনভার্ট ডি ডাবল প্যারা স্ট্রিং। 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 (ডেটা, 4, 2, টেম্প); sprintf (sendBuffer, "S%d:%s", sensorCode, temp); Serial.println (sendBuffer); } void loop () {… case 0: h = dht.readHumidity (); sendSensorData (1, h, lastH); lastH = h; বিরতি; …}

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

ধাপ 4: সেন্সর ডি আলাগামেন্টো ইউটিলিজ্যান্ডো নোডএমসিইউ

সেন্সর ডি আলাগামেন্টো ইউটিলিজ্যান্ডো নোডএমসিইউ
সেন্সর ডি আলাগামেন্টো ইউটিলিজ্যান্ডো নোডএমসিইউ
সেন্সর ডি আলাগামেন্টো ইউটিলিজ্যান্ডো নোডএমসিইউ
সেন্সর ডি আলাগামেন্টো ইউটিলিজ্যান্ডো নোডএমসিইউ
সেন্সর ডি আলাগামেন্টো ইউটিলিজ্যান্ডো নোডএমসিইউ
সেন্সর ডি আলাগামেন্টো ইউটিলিজ্যান্ডো নোডএমসিইউ

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 processo de eletrólise cria um resistor 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 completo pode ser visto no arquivo "sensorAlagamento.ino"।

ধাপ 5: ড্যাশবোর্ড

ড্যাশবোর্ড
ড্যাশবোর্ড

একটি ড্যাশবোর্ড টেম কমো প্রিন্সিপাল objetivo সংগঠক e apresentar melhor os contú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। এফটিআই ইউটিজিজদা এ টেকনোলজি এইচটিএমএল 5 প্যারা সিইউ ডিজেনভোলভিমেন্টো।

প্রস্তাবিত: