ዝርዝር ሁኔታ:

IN-FORMA: Plataforma De Informações Sobre Sua Cidade: 5 ደረጃዎች
IN-FORMA: Plataforma De Informações Sobre Sua Cidade: 5 ደረጃዎች

ቪዲዮ: IN-FORMA: Plataforma De Informações Sobre Sua Cidade: 5 ደረጃዎች

ቪዲዮ: IN-FORMA: Plataforma De Informações Sobre Sua Cidade: 5 ደረጃዎች
ቪዲዮ: Yochai Benkler: Open-source economics 2024, ህዳር
Anonim
IN-FORMA: Plataforma De Informações Sobre Sua Cidade
IN-FORMA: Plataforma De Informações Sobre Sua Cidade

Quem nunca sau de casa com roupas de frio e quando chegou no destino estava fazendo o maior Sol ?! እስቲ አስበው ፣ እንደዚያ ፣ ፖድደር አኮምፓንሃር ኢምፓየር እውነተኛ የሙቀት መጠንን ከዲቮንስፖንቶቶስ ዴ ሱአ cidade ፣ seperper estando preparado para o que der e vier! ኦው ፣ እንደዚሁ ፣ 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. በ IN-FORMA ይምጡ ፣ ቱዶ 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 anmari a melhor hora de sair de casa.

IN-FORMA é a mais nova plataforma web que integra diversos tipos de informações a respeito da sua cidade. ሳኦ 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 sensores, a plataforma tem conexão direta com o Google ካርታዎች, 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 integrar à plataforma suas próprias aplicações fazendo uso dos dados disponibilizados e, ያካተተ ሌስሶ.

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 problemas à população, tanto de saúde pública, quanto ambientais e sociais. ፖር 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 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. እንደዚሁም ፣ እንደ ሲስተም ዴ ድሬናጋም ዳስ ሩአስ ፖዴ ሰር ሜልዶራዶ ኮም ኦስ ዳዶስ ፎርኒሲዶስ ፔላ ፕላታፎማ ፣ ቱስ ዌስትራም ኦንቬል ዳ አጉዋ አኖ ሎንዶ ዶ ዲ ኢ ኦ ፖንቶስ ክሪቲኮስ ደ አላጋንቶ ዳ ሬጊያ።

ደረጃ 1: Arquitetura Da Plataforma

አርኩቲቱራ ዳ ፕላታፎርማ
አርኩቲቱራ ዳ ፕላታፎርማ

A proposta é o desenvolvimento de uma plataforma aberta para integração de diversos dispositivos. በዚህ ስርዓት እና በ comonicaçã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 በኩል።

የ 96 ሰሌዳዎች 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 sensores. የኮምኒካçኦው ወደ ዘንዶ ቦርድ እና ወደ 96 ቦርዶች ሲገባ I²C (Inter-Integrated Circuit)።

ኦስ ዳዶስ ኮሌታዶስ ኖስ ዲስፖዚቲቮስ ሳኦ ኢንቪያዶስ ፓራ ኦ servidor por meio do protocolo de comunicação TCP/IP። እንደ አገልጋይ መረጃ ሰጪ የለም። ሀ ፣ ያካተተ ፣ uma maneira simples de visualizar os dados em uma Dashboard baseada em HTML5።

ደረጃ 2 Placa Dragonboard

Placa Dragonboard
Placa Dragonboard

A Qualcomm Dragonboard 410c é um ambiente de desenvolvimento para prototipagem de projetos. አንድ የፕላኮ ፖስታ ሃርድዌር አቻ Moto G ፣ fabricado pela Motorola። ምንም ፍላጎት የለም። Nela é executada o Framework Mosquitto para promover a interação via 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 sistema operacional usado እና placa de desenvolvimento ወይም o Linux Linaro, que é baseado em Debian. ምንም አገናኝ የለም https://www.embarcados.com.br/linux-linaro-alip-na… é possível encontrar um tutorial de como instalar o Linux Linaro-ALIP እና Qualcomm DragonBoard 410C.

አንድ የ Qualcomm Dragonboard 410c precisa se comunicar com o Mezzanine para receber እንደ መረጃው 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. በዚህ ሁኔታ ፣ “ሴ (código do sensor):(valor do sensor)” በሚለው ተከታታይነት ላይ ተከታታይነት ያለው ነገር የለም። አፖስ አንድ ሊቱራ ፣ የተለየ ወይም ኮዲጎ do valor e retorna።

ማስመጣት ተከታታይ ser = ተከታታይ። ተከታታይ ('/dev/tty96B0' ፣ 115200)

def readData (ser):

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

txt ="

ሳለ እውነት: c = ser.read () c == '\ n': break elif c == '\ r': ቀጥል

txt = txt + c

dados = txt.split (":")

ዳዶዎችን መመለስ

ዳዶስ = አንብብ ዳታ (ሰር)

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.

አስመጣ 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 (ዳዶስ ፣ ክሊ)

ሞክር: print_name = '' ከሆነ ዳሞስ [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 "ሌላ ፦ ሐሰት ይመልሱ

cli.publish (የህትመት_ስም ፣ ዳዶስ [1]) [0]! = 0 ፦

የህትመት ህትመት_መጠሪያ+"="+ዳዶስ [1]

cli.loop ()! = 0:

ማለፍ

ካልሆነ በስተቀር

ማለፍ

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

ለፓራ ኮሙኒካçኦ ወይም ለድራጎንቦርድ አገልጋይ አገልጋዩ አቫሬስ ዴ uma conexão 3G ፣ utilizando o modem 3G HSUPA USB Stick MF 190 ን እንደ ኦፔራራ ቲም ይጠቀሙ።

ፓራ 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. ፓራ instalar o Asterisc você pode seguir ወይም link (https://www.howtoforge.com/tutorial/how-to-install-asterisk-on-debian/)።

ደረጃ 3: Placa Mezzanine Com Sensores

Placa Mezzanine Com ዳሳሾች
Placa Mezzanine Com ዳሳሾች

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

እኔ) ዳሳሽ ደ luminosidade

ኦ አነፍናፊ 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) ዳሳሽ ደ ሉዝ ሶላር “ግሮቭ - የፀሐይ ብርሃን ዳሳሽ”

Este é um sensor ባለብዙ ቦይ ካፓዝ ደ detear luz ultravioleta, infra-vermelho e luz visível።

Biblioteca:

በአቢዮክስ ፣ በኮንቴሞሞስ ወይም በአነፍናፊ ዳ ፖርታ I2C አተረጓጎም አጠቃቀማቸውን ያብራራሉ። A leitura é feita da seguinte maneira:

SI114X SI1145 = SI114X (); ባዶነት ማዋቀር () {SI114X SI1145 = SI114X (); }

ባዶነት loop () {

vl = SI1145. ReadVisible ();

ir = SI1145. ReadIR ();

uv = ፎቅ ((ተንሳፋፊ) SI1145. ReadUV ()/100);

}

III) ዳሳሽ (ዲሲውደር) እና ኡሚዳዴ

“ግሮቭ - የሙቀት እና እርጥበት ዳሳሽ ፕሮ” https://wiki.seeed.cc/Grove-Temperature_and_Humidi… Este sensor é capaz de detear temperatura e umidade relativa.

Biblioteca:

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

DHT dht (DHTPIN ፣ DHTTYPE);

ባዶነት ማዋቀር () {

dht.begin (); }

ባዶነት loop () {

ሸ = dht.read እርጥበት ();

t = dht.readTemperature ();

}

ፓራ ጁንታር አንድ ሊቱራ ዶስ 3 አነፍናፊ የለም 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 ፎርማ:

int STATE = 0;

ባዶነት loop () {

መቀየሪያ (STATE) {

ጉዳይ 0…… መቋረጥ;

ጉዳይ 5:

… ሰበር;

}

ግዛት = (ግዛት+1)%6;

}

እንደ የ ‹Qualcomm DragonBoard 410c› መረጃን እንደ ተቀባዩ መረጃ ሁሉ መረጃን በሚቀበልበት ጊዜ እንደ አስፈላጊነቱ ሊታወቅ ይችላል። ፓራ ኢስቶ ፣ utilizamos uma espera ocupada:

ባዶነት loop () {ሳለ (! Serial.available ()) መዘግየት (10); ሳለ (Serial.available ()) Serial.read ();

}

ለሴንስ ዳታ ይላኩ። 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. A função dtostrf converte 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] ፤ ባዶ ባዶ sendSensorData (int sensorCode ፣ double data ፣ double lastData) {if (data == lastData) ከተመለሰ ፤ dtostrf (ውሂብ ፣ 4 ፣ 2 ፣ ቴምፕ); sprintf (sendBuffer ፣ “S%d:%s” ፣ sensorCode ፣ temp) ፤ Serial.println (sendBuffer); } ባዶነት loop () {… case 0: h = dht.readHumidity (); SensorData (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. ኦ processo de eletrólise cria um resistor virtal quando o dispositivo é inundado.

Para o desenvolvimento do código, forI utilizada a IDE do Arduino com as 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 - ዳሽቦርድ

ዳሽቦርድ
ዳሽቦርድ

አንድ ዳሽቦርድ ቴም ኮሞ ዋና አስተባባሪ በአስተያየቱ 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. ኤችቲኤምኤል 5 ለቴክኖሎጊያ ኤችቲኤምኤል 5 para seu desenvolvimento።

የሚመከር: