תוכן עניינים:

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 שלבים
וִידֵאוֹ: The Apogee Solstice | Critical Role | Campaign 3, Episode 51 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, saber o índice de radiação UV antes de ir para uma praia ou um parque para se proteger adequateadamente contra os danos do sol. Com in-FORMA, tudo isso é possível em um so 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, לדוגמא, pode saber a condição dos ventos no momento para analisar a melhor hora de sair de casa.

A-FORMA הוא אחד מהאתרים הפלטפורמה המפורסמת של מידע רב ומידע על מידע אחר. 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 sensores, plataforma tem conexão direta com of Google Maps, trazendo informações sobre o trânsito e localização, e pode conectar-se and outros system of 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 for integra à plataforma suas próprias aplicações fazendo uso dos dados disponibilizados e, כולל, פודוס ארה ב.

A-FORMA, além de poder integrar diversos tipos de aplicações desenvolvidas pelos usuários e empresas, conta com on system of mapeamento of inundações desenvolvida pela própria. כמו inundações trazem muitos problemas à população, tanto de saúde pública, quanto ambientais e sociais. כמו כן, ניתן להשתמש במערכת החיסונים היעילה ביותר, ובחינת החומרים העיקריים ביותר. 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. מערכת ארכיטקטורה מבוססת על קומבוניקה עם דרגות של לוח, מונידה דה פלאזה של 96 לוחות, שירותים של AWS מאמזון לשימוש על מסגרת יתושים לתקשורת באמצעות MQTT פרוטוקול.

A 96 לוחות אפשריים באטמל ATMEGA328 יכולים להוביל כניסות וניתוחים, כמו כן, לאפשר אינטגרציה של חיישני Qualcomm Dragonboard 410c. קומוניקה של Dragonboard ו- 96 לוחות יכולים לפרוטוקול I²C (מעגל אינטגרטיבי).

Os dados coletados nos dispositivos são enviados for a servidor for meio do protocolo de comunicação TCP/IP. אין שירות כמידע על יכולות אחרונות של ממשק API של API, ואפשר גם מידע על מידע כללי על שימוש ב- HTTP וממשק API מלא. כל הדוגמאות כוללות דוגמאות להדמיה ולוח של לוח המחוונים באמצעות HTML5.

שלב 2: פלאקה דרגוןבורד

פלאקה דרגוןבורד
פלאקה דרגוןבורד

A Qualcomm Dragonboard 410c é um ambiente de desenvolvimento for prototipagem de projetos. חומרה אחידה של Moto G, מוטורולה. אין desenvolvimento da plataforma ela foi utilizada como servidor para o system. Nela é executada o Framework Mosquitto para promover a interação via MQTT entre o servidor local e o servidor מנהל. אין קישור https://www.digitalocean.com/community/questions/h… אפשר לרכוש הדרכה על התקנת MQTT ללא Debian. מערכת ההפעלה הפשוטה ביותר של לינוקס לינארו, והיא מבוססת על דביאן. אין קישור https://www.embarcados.com.br/linux-linaro-alip-na… ואפשר לרכוש הדרכה כיצד להתקין את לינוקס Linaro-ALIP ב- Qualcomm DragonBoard 410C.

מדגם Qualcomm Dragonboard 410c יכול להופיע בשירותי הביניים על מנת לקבל מידע על קבוצות מידע וחיישן. Utilizamos python e comunicação serial.

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 responsosta, li 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 ser = serial. Serial ('/dev/tty96B0', 115200)

def readData (ser):

בעוד ser.inWaiting () == 0: ser.write ([0])

txt = ''

בעוד נכון: c = ser.read () אם c == '\ n': הפסקה elif c == '\ r': המשך

txt = txt + c

dados = txt.split (":")

תחזיר דאדו

dados = readData (ser)

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 (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: return False

בעוד cli.publish (publish_name, dados [1]) [0]! = 0:

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

בעוד cli.loop ()! = 0:

לַעֲבוֹר

מלבד:

לַעֲבוֹר

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

עבור comunicação com servidor a Dragonboard ניתן לחבר את השירותים והמשתמשים של 3G, שימוש במודם 3G HSUPA USB Stick MF 190 בשימוש ב- TIM.

Para emissão de alertas, o system system conta com on servidor PABX Asterisc. Semper que é nødvendário emitir um alerta, o servidor é responsável por enviar uma chamada de voz ou uma mensagem de texto para o systemema 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 conectam com of Mezzanine: luminosidade, luz solar e temperatura e umidade.

I) Sensor de luminosidade

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

חיישן לייטור: ldr = analogRead (LDRPIN) /10.0

II) Sensor de luz solar "Grove - חיישן אור השמש"

חיישן Este é um multi multi-channel capaz de detectar luz ultravioleta, infra-vermelho e luz visível.

Biblioteca:

שימוש במכשירי ביבליוטקה מאפשרים קישור לאתר, חיבורים או חיישנים המציעים שימוש ב- I2C disponível. A leitura é feita da seguinte maneira:

SI114X SI1145 = SI114X (); הגדרת חלל () {SI114X SI1145 = SI114X (); }

לולאת חלל () {

vl = SI1145. ReadVisible ();

ir = SI1145. ReadIR ();

uv = רצפה ((לצוף) SI1145. ReadUV ()/100);

}

III) חיישן הטמפרטורה והסביבה

"Grove - חיישן טמפרטורה ולחות Pro" https://wiki.seeed.cc/Grove-Temperature_and_Humidi… Este sensor é capaz de detectar temperaturena e umidade relativa.

Biblioteca:

חיישן אבטחה ואנלוגיות A0 ואפשרויות שימוש במגוון נושאים:

DHT dht (DHTPIN, DHTTYPE);

הגדרת בטל () {

dht.begin (); }

לולאת חלל () {

h = dht.readHumidity ();

t = dht.readTemperature ();

}

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

int STATE = 0;

לולאת חלל () {

החלף (STATE) {

מקרה 0:… שבירה;

מקרה 5:

… לשבור;

}

STATE = (STATE+1)%6;

}

Fora evitar leituras desnecessárias, o estágio atual so executa quando a Qualcomm DragonBoard 410c está pronta para receb as informações. לשם כך, ניתן להשתמש באופרה זו:

לולאת void () {while (! Serial.available ()) עיכוב (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. Se houver mudanças na leitura ela en enviada. A função dtostrf converte de double para string. Yes 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, data double, double lastData) {if (data == lastData) return; dtostrf (נתונים, 4, 2, טמפ '); sprintf (sendBuffer, "S%d:%s", sensorCode, temp); Serial.println (sendBuffer); } לולאת חלל () {… מקרה 0: h = dht.readHumidity (); sendSensorData (1, h, lastH); lastH = h; לשבור; …}

O código completeo 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 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 as bibliotecas: Pubsub-client (https://pubsubclient.knolleary.net/) ESP8266 (https://github.com/esp8266/Arduino).

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

שלב 5: לוח מחוונים

לוּחַ מַחווָנִים
לוּחַ מַחווָנִים

לוח המחוונים הוא אחד ממנהלי הארגון והמשתמשים שלנו. ניתן להשתמש ב- HTML5 טכנולוגית עבור שימוש במכשיר.

מוּמלָץ: