विषयसूची:

Centro de Comando Emergencias - Erupção De Vulcão E Terremotos: 7 कदम
Centro de Comando Emergencias - Erupção De Vulcão E Terremotos: 7 कदम

वीडियो: Centro de Comando Emergencias - Erupção De Vulcão E Terremotos: 7 कदम

वीडियो: Centro de Comando Emergencias - Erupção De Vulcão E Terremotos: 7 कदम
वीडियो: O FURACÃO MAIS MORTAL DA HISTÓRIA! 2024, नवंबर
Anonim
सेंट्रो डी कोमांडो इमर्जेंसियास - एरुपकाओ डी वल्काओ ई टेरेमोटोस
सेंट्रो डी कोमांडो इमर्जेंसियास - एरुपकाओ डी वल्काओ ई टेरेमोटोस

प्रोजेटो एकेडेमिको पैरा एटेंडर सेनेरियो डी कोलाबोराकाओ एट्रैवेस दा इंटरनेट पैरा डिवल्गाकाओ डे डेस्ट्रेस नेचुरैस, ओन्डे सेरा पॉसिवेल ए डिटेक्को डॉस एकंटेसीमेंटोस एट्रैवेस डी सेंसर्स आईओटी डी टेम्पेरेटा, ल्यूमिनोसिडेड, (ओसिला) ई। Ainda no cenário de colaboração prevemos integração com o Twitter e aplicativos com suporte mqtt para acionamento do alerta.

डियान्टे ए पॉसिबिलिडेड डे डाइवर्सोस मेयोस डे एन्ट्राडा ना सोलुकाओ, कैबेरा उम सेंट्रो डे डे ओपेरास अवलियर से ए इंफॉर्माकाओ एस्टा कोरेटा एविटांडो एसिम फाल्सोस-पॉजिटिवोस डॉस डिस्पोजिटिवोस ऑटोमैटिजाडो ई अवलियर ए फेकन्यूज। ताल तोमादा डे डिसीसाओ इज क्रिटिकल डियांटे एओ पैनिको क्यू उम अलार्म फाल्सो पॉड गेरार।

कोमो सॉल्युकाओ डे अलर्टा डे मेन्सेजम इस्टामोस विचारऔर ओ यूसो डू एनवियो डी एसएमएस, अलर्ट एट्रावेस डी क्लाइंट एमक्यूटी, ईमेल, साइरेन और ट्विटर।

O प्रोजेक्ट कॉन्टू कॉम uso de recursos da AWS इनक्लूइंडो IOT CORE, EC2 e SNS

DragonBord 410c

ग्राहक android mqtt

सेंडो टूडू डिसेनवोल्विडो एम पायथन

ऑटोरेस:

डिएगो फर्नांडीस डॉस सैंटोस - [email protected]

गेब्रियल पियोवानी मोरेरा डॉस सैंटोस - [email protected]

गुस्तावो वेनांसियो लूज़ - [email protected]

पाउलो हेनरिक अल्मेडा सैंटोस - [email protected]

चरण 1: Dragonbord 410c - Publicação Dos sensores - Analogicos

Dragonbord 410c - Publicação Dos sensores - Analogicos
Dragonbord 410c - Publicação Dos sensores - Analogicos

अबाइक्सो ओ कोडिगो डे पब्लिकाकाओ डॉस सेंसर्स एनालोजिकोस, ओएस सेंसर्स डी टेम्परेचर ई ल्यूमिनोसिडेड एस्ताओ कॉन्फिगुराडोस पैरा क्यू एसिम क्यू डिटेक्टेरेम उमा वेरिआकाओ फोरा दो पैड्रो प्री एस्टाबेलसीडो एनविरेम उम अलर्टा एट्रैवेट्स डू प्रोटोकॉल इवेंटो एमक्यू।

एस्टे अलर्टा कॉमेका ए कॉन्टेजेम रेग्रेसिवा क्यू पोड सेर सस्पेंसा या एक्सेलेराडा पेलो ऑपरेटर।

ओ कोंटाडोर पैरा ओ अलर्टा कॉमेका कॉन्टेजेम रेग्रेसिवा एम 60 सेगुंटोस, ई टूडू नोवो अलर्टा डिटेक्टाडो डेक्रेसे ओ कॉन्टाडोर एम 20 सेगुंडोस।

प्रोग्राम रोडांडो डेंट्रो दा ड्रैगन बोराड 410सी

#!/usr/bin/python3import spidev से libsoc आयात gpio समय से आयात नींद

# कॉम्यूनिकाकाओ कॉम के लिए आयात करें MOSQUITTO आयात paho.mqtt.client को mqtt के रूप में

spi = spidev. SpiDev() spi.open(0, 0) spi.max_speed_hz=10000 spi.mode = 0b00 spi.bits_per_word = 8

#उसे एक पोर्टा ADC1 channel_select1=[0x01, 0x80, 0x00]

#पैरा यूज़र ए पोर्टा एडीसी२ का उपयोग करें ओ सेगिन्टे वेटर डी कॉन्फिगुराÃÆ'§ÃÆ'£o channel_select2=[0x01, 0xA0, 0x00]

def on_connect (mqttc, obj, झंडे, आरसी): प्रिंट ("आरसी:" + स्ट्र (आरसी))

def on_message(mqttc, obj, msg): प्रिंट (msg.topic + "" + str(msg.qos) + "" + str(msg.payload))

def on_publish(mqttc, obj, mid): प्रिंट ("संदेश आईडी:" + str (मध्य) + "\ n") पास

# क्रायमोस या क्लाइंट और सेटमोस सुआस कॉन्फिगुराकोस एमक्यूटीटीसी = एमक्यूटी.क्लाइंट ()

mqttc.on_message = on_message mqttc.on_connect = on_connect mqttc.on_publish = on_publish

पब = mqtt. Client("grupo3")

# Conexao com localhost, uma vez que testamos fora do labredes. ब्रोकर_एड्रेस = "34.230.74.201"

pub.connect(broker_address)

अगर _name_=='_main_': gpio_cs = gpio. GPIO(18, gpio. DIRECTION_OUTPUT)

gpio.request_gpios([gpio_cs]) के साथ: contador=0 adc_value_old=0 adc_value2_old=0 जबकि contador <50: gpio_cs.set_high() नींद (0.00001) gpio_cs.set_low() rx = spi.xfer(channel_select1) gpio_cs.set_high() contador = contador + 1 adc_value = (rx[1] << 8) और 0b1100000000 adc_value = adc_value | (rx[2] और 0xff) adc_value = (((adc_value * 5) / 1024) - 0.5) * 100 प्रिंट ("तापमान: %f\n"% adc_value) pub.publish("temperatura", str(adc_value)) # टेस्ट पैरा एकिओनर कोंटाडोर डू अलार्म, टेस्टे अल्टिमा लेइटुरा + 5%

अगर adc_value_old==0: adc_value_old=adc_value अगर adc_value > (adc_value_old*1.05): pub.publish("ALARME", "ON") Print ("Alarmado Tempatura") adc_value_old=adc_value स्लीप(1)

gpio_cs.set_high() नींद (0.00001) gpio_cs.set_low() rx = spi.xfer(channel_select2) gpio_cs.set_high() contador = contador + 1 adc_value2 = (rx[1] << 8) और 0b1100000000 adc_value2 = adc_value2 | (rx[2] और 0xff) adc_value2 = adc_value2 /10 प्रिंट ("ल्यूमिनोसिडेड:% f\n"% adc_value2) pub.publish ("लुमिनोसिडेड", str (adc_value2))

# टेस्ट पैरा एसिओनर कोंटाडोर डू अलार्म, टेस्टे अल्टिमा लेइटुरा + 50%

अगर adc_value2_old==0: adc_value2_old=adc_value2 अगर adc_value2 > (adc_value2_old*1.5): pub.publish("ALARME", "ON") Print ("Alarmado Luminosidade") adc_value2_old=adc_value2 स्लीप(3)

चरण 2: सेंसर डिजिटाईस - Publicação

सेंसर डिजिटाईस - Publicação
सेंसर डिजिटाईस - Publicação

कोडिगो पैरा पब्लिकाकाओ डॉस सेंसर्स डिजिटाईस

ओएस सेंसर्स डिजिटैस नेस्टे प्रोजेटो फोरम ओ टिल्ट क्यू डिटेक्टा ओएस ट्रेमोर्स ई ओ बोटाओ पैरा सिमुलर ओ उसो डी उम बोताओ डे पैनिको।

क्वांडो डिटेक्टाडो उमा एनोमेलिया या बोटाओ डे पैनिको प्रेशनैडो ए कॉन्टेजेम रेग्रेसिवा इन इनिसियाडा।

प्रोग्राम रोडांडो डेंट्रो दा ड्रैगन बोराड 410सी

libsoc_zero. GPIO से आयात बटन से libsoc_zero. GPIO आयात समय से झुकाव आयात नींद आयात paho.mqtt.client mqtt आयात sys के रूप में

def on_connect (mqttc, obj, झंडे, आरसी): प्रिंट ("कनेक्टैडो" + स्ट्र (आरसी))

def on_message(mqttc, obj, msg): प्रिंट (msg.topic + "" + str(msg.qos) + "" + str(msg.payload))

def on_publish(mqttc, obj, mid): # प्रिंट ("संदेश आईडी:" + str (मध्य) + "\ n") पास

डीईएफ़ डिटेक्टा टिल्ट (): काउंट = 0 स्लीप_काउंट = 0 जबकि ट्रू: ट्राई करें: टिल्ट.वेट_फॉर_टिल्ट (1) को छोड़कर: स्लीप_काउंट + = 1 और: काउंट + = 1 स्लीप_काउंट + = 1 अगर स्लीप_काउंट> 999: ब्रेक

प्रिंट ("गिनती:", गिनती) अगर गिनती> 200: पब = mqttc.publish ("TERREMOTO", "ON") पब = mqttc.publish ("SISMOGRAFO", str (गिनती)) # क्रायमोस या क्लाइंट और सेटमोस सुआस configuracoes mqttc = mqtt. Client ()

mqttc.on_message = on_message mqttc.on_connect = on_connect mqttc.on_publish = on_publish

विषय = "ग्रुपो ३"

# Conexao com localhost, uma vez que testamos fora do labredes. mqttc.connect("34.230.74.201", 1883)

झुकाव = झुकाव ('GPIO-A')

बीटीएन = बटन ('जीपीआईओ-सी')

जबकि ट्रू: स्लीप (0.25) डिटेक्टाटिल्ट () अगर btn.is_pressed (): पब = mqttc.publish ("पैनिको", "ऑन") प्रिंट ("बोटाओ ऑन") स्लीप (1) पब = mqttc.publish ("पैनिको" ", "ऑफ") # और: # पब = mqttc.publish ("पैनिको", "ऑफ") # प्रिंट ("बोटाओ ऑफ")

चरण 3: कोडिगो पैरा एकियोनामेंटो सायरेन

कोडिगो पैरा एकिओनामेंटो सायरेन
कोडिगो पैरा एकिओनामेंटो सायरेन

कोडिगो पैरा सब्सक्रिकाओ पैरा एसीओनामेंटो दा सिरेन, प्रोग्राम रोडांडो डेंट्रो दा ड्रैगन बोर्ड 410सी

# कम्युनिकेशंस कॉम के लिए आयात करें MOSQUITTOimport paho.mqtt.client को mqtt के रूप में

libsoc_zero. GPIO से आयात एलईडी समय से आयात नींद एलईडी = एलईडी ('GPIO-E') #led.off ()

# परिभाषित करें o que fazer ao conectar def on_connect(client, obj, flags, rc): प्रिंट ("ConexÃÆ'£o estabelecida com ब्रोकर")

# परिभाषित करें o que fazer ao receber uma mensagem def on_message(client, obj, message): print("LED" + str(message.payload.decode("utf-8"))) if str(message.payload.decode("utf-8")) == "चालू": प्रिंट ("साइरेन लिगडा") एलईडी।

# आईपी ब्रोकर ब्रोकर_एड्रेस = "34.230.74.201"

# क्रिया या ग्राहक उप = mqtt. Client("grupo3")

सब.कनेक्ट (दलाल_पता)

उप.on_message = on_message उप.on_connect = on_connect

# कोई विषय नहीं बढ़ाएँ। सदस्यता लें ("SIRENE", qos = 0)

# लूप पैरा एस्कुटा सब.लूप_फॉरएवर ()

चरण 4: कोडिगो ट्विटर - पोस्ट

कोडिगो ट्विटर - पोस्ट
कोडिगो ट्विटर - पोस्ट
कोडिगो ट्विटर - पोस्ट
कोडिगो ट्विटर - पोस्ट

कोडिगो पैरा पब्लिकाकाओ डो ट्विटर एसिम क्यू एसीओनाडो ओ अलार्म।

कोडिगो रोडांडो और माक्विना वर्चुअल और AWS EC2

#!/usr/bin/env अजगर #---------------------------------------- ----------------------------- # ट्विटर-पोस्ट-स्टेटस # - आपकी टाइमलाइन पर एक स्टेटस मैसेज पोस्ट करता है #--- -------------------------------------------------- ------------------ आयात paho.mqtt.subscribe as subscribe

आयात समय

चहचहाना आयात से *

#----------------------------------------------------- ----------------------- # हमारी नई स्थिति क्या होनी चाहिए? #----------------------------------------------------- ----------------------- new_status = "#Terremoto uma zona segura - teste"

#----------------------------------------------------- ----------------------- # हमारे एपीआई क्रेडेंशियल लोड करें #--------------------- ------------------------------------------------- आयात sys sys.path.append(. ) आयात config

#----------------------------------------------------- ----------------------- # ट्विटर एपीआई ऑब्जेक्ट बनाएं #--------------------- ------------------------------------------------- ट्विटर = ट्विटर (प्रमाणीकरण = OAuth ('सेनहा रिमोविडा))

#----------------------------------------------------- ----------------------- # एक नई स्थिति पोस्ट करें # ट्विटर एपीआई दस्तावेज़: https://dev.twitter.com/rest/reference/post/statu… #----------------------------------------------------- -----------------------

जबकि 1: m = subscribe.simple("twitteralarme", hostname="172.31.83.191", रिटेन्ड=गलत) अगर m.topic=="twitteralarme" और str(m.payload.decode("utf-8")) == "चालू": परिणाम = twitter.statuses.update(status = (new_status)+str(time.time ())) # प्रिंट ("अपडेटेड स्टेटस: %s"% new_status)

चरण 5: सेंट्रो डी कोमांडो

सेंट्रो डी कोमांडो
सेंट्रो डी कोमांडो

सेम्पर क्यू एसीओनाडो उम डिस्पोजिटिवो मैनुअल या डिटेक्डो उम अलर्टा मैनुअल डू यूसुएरियो एव एसीओनाडा उमा कॉन्टेजेम रेग्रेसिवा पैरा एनवियो डे मेन्सेजम। ओ ऑपरेटर पोड कैंसेलर ओ एनवियो या एकियनर ओ एनवियो इमीडियाटो डू अलर्टा।

पैरा uso do dasboard utilizamos um android do telefone para compor a mesa de operção do centro de comando.

कोडिगो रोडांडो और माक्विना वर्चुअल और AWS EC2

पाहो के रूप में आयात करें।

विषय = ['#']

gatilho=0 hora_disparo=0 publish.single("ACIONADO", "OFF", qos=1, hostname="172.31.83.191") publish.single("sensor1", "OFF", qos=1, hostname="172.31.८३.१९१") publish.single("sensor2", "OFF", qos=1, hostname="172.31.83.191")

connflag = असत्य

def on_connect (क्लाइंट, यूजरडेटा, फ्लैग्स, आरसी): ग्लोबल कॉन्फ्लैग कॉन्फ्लैग = ट्रू प्रिंट (कॉनफ्लैग) प्रिंट ("कनेक्शन रिटर्न रिजल्ट:" + स्ट्र (आरसी))

def on_message(client, userdata, msg): # प्रिंट ("टेस्ट") प्रिंट (msg.topic+" "+str(msg.payload))

def on_log (क्लाइंट, यूजरडेटा, लेवल, buf): प्रिंट (msg.topic+" "+str(msg.payload))

mqttc = paho. Client("broker_MSG") mqttc.on_connect = on_connect mqttc.on_message = on_message

awshost = "data.iot.us-east-1.amazonaws.com" awsport = 8883 clientId = "a2rczvc6ni8105" thingName = "Ufscar2018" caPath = "aws-iot-rootCA.crt" certPath = "9e85dfd42a-certificate.pem. crt" keyPath = "9e85dfd42a-private.pem.key" mqttc.tls_set(caPath, certfile=certPath, keyfile=keyPath, cert_reqs=ssl. CERT_REQUIRED, tls_version=ssl. PROTOCOL_TLSconnectv1_2, mqtc=None., Keepalive=60) mqttc.loop_start()

जबकि 1: होरा = समय। समय () नींद (.1) प्रकाशित। एकल ("LEDTERREMOTO", "चालू", qos = 1, होस्टनाम = "172.31.83.191")

# if connflag ==True: # mqttc.publish("message", json.dumps({'message':"TERREMOTO"}), qos=1) if gatilho==1: publish.single("TEMPO", str (गोल(hora_disparo-hora, 0)), qos=1, hostname="172.31.83.191") publish.single("LEDTERREMOTO", "on", qos=1, hostname="172.31.83.191") और: publish.single("TEMPO", "99", qos=1, hostname="172.31.83.191") # Print("") if (hora>hora_disparo) और (gatilho==1): # Print("TERREMOTO") # प्रिंट (connflag) अगर connflag == सच: # mqttc.publish("message", json.dumps({'message':"TERREMOTO"}), qos=1) # mqttc.publish("message", "TERREMOTO ", qos=1) mqttc.publish("message", json.dumps("TERREMOTO - PROCURE UMA ZONA SEGURA"), qos=1)

# प्रिंट ("टेस्ट एसएनएस") # publish.single("LED", "on", hostname="172.31.83.191") publish.single("SIRENE", "on", qos=1, hostname="172.31. 83.191") publish.single("TEMPO", "TERREMOTO", qos=1, hostname="172.31.83.191") publish.single("ACIONADO", "OFF", qos=1, hostname="172.31.83.191") publish.single("twitteralarme", "on", qos=1, hostname="172.31.83.191") publish.single("twitter", "TERREMOTO - PROCURE UMA ZONA SEGURA", qos=1, hostname="172.31.८३.१९१") gatilho=0 नींद(५) m = subscribe.simple(topics, hostname="172.31.83.191", बरकरार=गलत) अगर m.topic=="ACIONADO" और str(m.payload.decode(" utf-8"))=="OFF": गैटिल्हो = 0 प्रिंट ("कैंसलाडो") अगर m.topic=="medico" और str(m.payload.decode("utf-8"))=="on ": if connflag == True: mqttc.publish("medico", json.dumps("MEDICOS - EMERGENCIA TERREMOTO"), qos=1) if m.topic=="bombeiro" and str(m.payload.decode("utf-8"))=="on": if connflag == True: mqttc.publish("bombeiro", json.dumps("BOMBEIRO - EMERGENCIA TERREMOTO"), qos=1) अगर m.topic==" एम्बुलेंस" और str(m.payloa d.decode("utf-8"))=="on": if connflag == True: mqttc.publish("ambulancia", json.dumps("AMBULANCIA - EMERGENCIA TERREMOTO"), qos=1) अगर m. विषय=="तत्काल" और str(m.payload.decode("utf-8"))=="on": publish.single("ACIONADO", 1, qos=1, hostname="172.31.83.191") gatilho=1 hora_disparo=time.time()+5 अगर str(m.payload.decode("utf-8"))=="ON": if gatilho==1: print("acelerado 20") hora_disparo=hora_disparo -20 अन्य: प्रिंट ("एसीनाडो") publish.single("ACIONADO", 1, qos=1, hostname="172.31.83.191") gatilho=1 hora_disparo=time.time()+60

चरण 6: Codigo Twitter - Monitoração

Codigo Twitter - Monitoração
Codigo Twitter - Monitoração

कोडिगो मॉनिटराकाओ डो ट्विटर, पेसक्विसा पोस्ट और रेगियाओ डे सोरोकाबा

कोडिगो रोडांडो और माक्विना वर्चुअल और AWS EC2

एन

चहचहाना आयात से *आयात विन्यास आयात paho.mqtt.publish as publish

समय से आयात नींद

twitter = Twitter(auth = OAuth(config.access_key, config.access_secret, config.consumer_key, config.consumer_secret))

अक्षांश = -२३.५४६२११ देशांतर = -४६.६३७८४० alcance = ५० परिणाम = १

publish.single("twitter_alarme", "ON", hostname="34.230.74.201")

result_count = 0 last_id = कोई नहीं ध्वज = 0

मेरे लिए रेंज में (६०): #------------------------------------------ ---------------------------- # अक्षांश और देशांतर के आधार पर खोज करें # ट्विटर एपीआई डॉक्स: https://dev। twitter.com/rest/reference/get/search… #------------------------------------- ---------------------------------- कोशिश करें: क्वेरी = twitter.search.tweets(q = "#Terremoto", जियोकोड = "%f,%f,%dkm"% (अक्षांश, देशांतर, alcance), max_id = last_id) प्रिंट ("leu")

सिवाय: प्रिंट ("एर्रो एसेसो ट्विटर") ब्रेक

क्वेरी में परिणाम के लिए ["स्थितियाँ"]:

#----------------------------------------------------- ----------------------- # किसी परिणाम को केवल तभी संसाधित करें जब उसका भौगोलिक स्थान हो #--------------------- -------------------------------------------------- ---- यदि परिणाम ["भौगोलिक"]: परिणाम_काउंट + = 1 अंतिम_आईडी = परिणाम ["आईडी"] नींद (1) यदि परिणाम_काउंट == परिणाम: ध्वज + = 1 प्रकाशित करें। एकल ("ट्विटर_लार्म", "चालू", hostname="34.230.74.201") publish.single("twitter", "TERREMOTO - DETECTADO", hostname="34.230.74.201") ब्रेक

चरण 7: एस्ट्रुटुरा एडब्ल्यूएस

एस्ट्रुटुरा एडब्ल्यूएस
एस्ट्रुटुरा एडब्ल्यूएस
एस्ट्रुटुरा एडब्ल्यूएस
एस्ट्रुटुरा एडब्ल्यूएस
एस्ट्रुटुरा एडब्ल्यूएस
एस्ट्रुटुरा एडब्ल्यूएस

Utilizamos uma maquina virtual rodando ubuntu na estrutura AWS EC2

उपयोग एक एडब्ल्यूएस आईओटी कोर के लिए सेवा के रूप में एमक्यूटीटी पर कॉन्फिगुरामोस के रूप में टिपो डी मेन्सेजम के अनुरूप है

उपयोगिता विषय एडब्ल्यूएस एसएनएस क्यू एरम एसीओनाडोस पेलो एडब्ल्यूएस आईओटी कोर करते हैं

सिफारिश की: