جدول المحتويات:

إن-فورما: أ بلاتفورما دي إنفورماسيز سوبر سوا سيداد: 5 خطوات
إن-فورما: أ بلاتفورما دي إنفورماسيز سوبر سوا سيداد: 5 خطوات

فيديو: إن-فورما: أ بلاتفورما دي إنفورماسيز سوبر سوا سيداد: 5 خطوات

فيديو: إن-فورما: أ بلاتفورما دي إنفورماسيز سوبر سوا سيداد: 5 خطوات
فيديو: تعلم احسن طريقة تعمل بها اساس منزل 100m Learn the best way to work the foundation of a 100m house 2024, شهر نوفمبر
Anonim
إن-فورما: أ بلاتفورما دي إنفورماسيز سوبر سوا سيداد
إن-فورما: أ بلاتفورما دي إنفورماسيز سوبر سوا سيداد

Quem nunca saiu de casa com roupas de frio e quando chegou no destino estava fazendo o maior sol ؟! تخيل ، مع مرور الوقت ، وضع الإيقاع الحقيقي على درجة حرارة مختلفة ، يمكنك الحصول على درجة حرارة عالية! 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 against os danos do sol. تعال إلى FORMA ، يمكنك أيضًا الحصول على فرصة! Você pode acompanhar o trânsito de umaerminada 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 options de informações a respeito da sua cidade. São espalhados emiversos pontos da região sensores de temperature، 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 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 allowido a solicitar autorização para Integar à plataforma suas próprias aplicações fazendo uso dos dados disponibiliz.

A IN-FORMA، além de poder Integrarables de aplicações desenvolvidas pelos usuários e empresas، conta com 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. Por isso، em cidades com sistemas de drenagem ineficientes، é de maxa importância a pontuação das regiões mais críticas. Com a plataforma، então، é posível sabre 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 extraidade 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 دا بلاتافورما
Arquitetura دا بلاتافورما

A Proposta é o desenvolvimento de uma plataforma aberta para Integração de variousospositivos. 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 useizando o Framework Mosquitto for ever a comunicação عبر بروتوكول MQTT.

هناك 96 لوحة تم إنشاؤها بواسطة أجهزة استشعار Qualcomm Dragonboard 410c com. A comunicação entre a Dragonboard e a 96boards se dá através do protocolo I²C (Inter-Integrated Circuit).

Os dados coletados nos socitivos são enviados para o servidor by meio do protocolo de comunicação TCP / IP. لا يوجد خادم مثل المعلومات التي يمكن الوصول إليها من خلال واجهة برمجة التطبيقات (API) ، يمكنك الحصول على معلومات إضافية للحصول على معلومات مفيدة عبر بروتوكول HTTP a uma Restfull API. Há ، شاملة ، uma maneira simples de visualizar os dados em uma Dashboard baseada em HTML5.

الخطوة 2: Placa Dragonboard

بلاكا دراغون بورد
بلاكا دراغون بورد

Qualcomm Dragonboard 410c é um ambiente de desenvolvimento para prototipagem de projetos. جهاز محمول مكافئ لـ Ao Moto G ، Fabricado pela Motorola. لا توجد خدمة مخصصة للمنطقة المحلية. Nela é Executive o Framework Mosquitto para promover a interação عبر MQTT Entre o servidor local e o servidor main. لا يوجد رابط https://www.digitalocean.com/community/questions/h … يمكنك الحصول على برنامج تعليمي من como instalar o MQTT no Debian. O sistema operacional usado na placa de desenvolvimento é o Linux Linaro، que é baseado em Debian. لا يوجد رابط https://www.embarcados.com.br/linux-linaro-alip-na … يمكنك الحصول على برنامج تعليمي لتركيب نظام Linux Linaro-ALIP على Qualcomm DragonBoard 410C.

كوالكوم دراغون بورد 410c ، كومونيكار كومونيكات ، الميزانين ، استقبال مثل المعلومات ، لا يوجد مستشعر ، أو بيئة ، أو خدمة MQTT ، أو عن بعد. Utilizamos python e comunicação المسلسل.

O código abaixo detalha este processo. قراءة دالة Data 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 ،epara o código do valor e retorna.

استيراد Serial ser = serial. Serial ('/ dev / tty96B0'، 115200)

قراءة البيانات def (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)

تسجيل الدخول ، يمكنك الحصول على خدمة عامة بدون خدمة 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 / tematura" 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

while cli.publish (publish_name، dados [1]) [0]! = 0:

تمرير طباعة publish_name + "=" + الآباء [1]

بينما cli.loop ()! = 0:

يمر

إلا:

يمر

O código Completeo 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، useizando o modem 3G HSUPA USB Stick MF 190 باستخدام مشغل TIM.

الفقرة emissão de alertas، o sistema conta com um servidor PABX Asterisc. من الضروري إرسال رسالة تنبيهية ، أو خدمة ، أو رد ، أو بيئة ، أو ما ، أو ما ، أو ما ، أو ما ، أو ما ، أو ما ، أو ما ، أو ما ، أو نصوص ، أو نظام الطوارئ. الفقرة instalar o Asterisc você pode seguir o link (https://www.howtoforge.com/tutorial/how-to-install-asterisk-on-debian/).

الخطوة 3: Placa Mezzanine Com Sensores

بلاكا ميزانين كوم سينسورس
بلاكا ميزانين كوم سينسورس

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

ط) جهاز الاستشعار دي لومينوسيداد

O مستشعر LDR é um led ativado pela luminosidade que incide sobre ele. A leitura é feita através da porta analógica A0.

مستشعر Leitura do: ldr = analogRead (LDRPIN) /10.0

II) Sensor de luz solar "Grove - Sunlight Sensor"

جهاز استشعار Este é um متعدد القنوات Capaz de Detectar luz ultravioleta ، infra-vermelho e luz visível.

مكتبة:

Utilizando a biblioteca disponível através do link abaixo، conectamos o sensor através da porta I2C disponível. a leitura é feita da seguinte maneira:

SI114X SI1145 = SI114X () ؛ إعداد باطل () {SI114X SI1145 = SI114X () ؛ }

حلقة فارغة(){

vl = SI1145. ReadVisible () ،

ir = SI1145. ReadIR () ،

الأشعة فوق البنفسجية = أرضية ((تعويم) SI1145. ReadUV () / 100) ؛

}

III) مستشعر درجة الحرارة e umidade

"Grove - مستشعر درجة الحرارة والرطوبة Pro" https://wiki.seeed.cc/Grove-Temperature_and_Humidi… Este sensor é capaz de detectar temperature e umidade relativa.

مكتبة:

مستشعر Conectamos este في منفذ analógica A0 e استخدامات 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 é responsável por uma leitura. Como são 6 leituras no total، teremos 6 estados، Organizado da seguinte forma:

int STATE = 0 ؛

حلقة فارغة(){

التبديل (الدولة) {

الحالة 0: … استراحة ؛

الحالة 5:

… استراحة؛

}

الدولة = (الولاية + 1)٪ 6 ،

}

جزء أساسي من قواعد السلوك ، أو إنشاء برنامج تنفيذي لألواح Qualcomm DragonBoard 410c ، يمكنك الحصول على المعلومات كمعلومات. Para isto، utilizamos uma espera ocupada:

حلقة باطلة () {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. إسترداد الأموال من المستشعر (inteiro) ، o dado a ser enviado e o ltimo dado utilizado. Se hover mudanças na leitura ela é enviada. و função dtostrf converte de double para string. Já a função sprintf format a string para ser enviada pela series 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) ؛ } حلقة فارغة () {… حالة 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، 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. يا عملية تصنيع الفولاذ المقاوم للصدأ الفاضل الذي يجب أن يكون جاهزًا للتصرف في 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 Completeo pode ser visto no arquivo "sensorAlagamento.ino".

الخطوة 5: لوحة القيادة

لوحة القيادة
لوحة القيادة

لوحة أجهزة القياس تعمل بشكل رئيسي على تنظيم المهام وتقديم المعلومات من خلال أجهزة الاستشعار كوليتادوس ، تصميم لوحة القيادة ، مايس تريزير المعلومات ، جهاز إرسال المعلومات عن المتعهدات. تستخدم Foi a tecnologia HTML5 للحصول على نصوص.

موصى به: