विषयसूची:
- चरण 1: Dragonbord 410c - Publicação Dos sensores - Analogicos
- चरण 2: सेंसर डिजिटाईस - Publicação
- चरण 3: कोडिगो पैरा एकियोनामेंटो सायरेन
- चरण 4: कोडिगो ट्विटर - पोस्ट
- चरण 5: सेंट्रो डी कोमांडो
- चरण 6: Codigo Twitter - Monitoração
- चरण 7: एस्ट्रुटुरा एडब्ल्यूएस
वीडियो: Centro de Comando Emergencias - Erupção De Vulcão E Terremotos: 7 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
प्रोजेटो एकेडेमिको पैरा एटेंडर सेनेरियो डी कोलाबोराकाओ एट्रैवेस दा इंटरनेट पैरा डिवल्गाकाओ डे डेस्ट्रेस नेचुरैस, ओन्डे सेरा पॉसिवेल ए डिटेक्को डॉस एकंटेसीमेंटोस एट्रैवेस डी सेंसर्स आईओटी डी टेम्पेरेटा, ल्यूमिनोसिडेड, (ओसिला) ई। 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
अबाइक्सो ओ कोडिगो डे पब्लिकाकाओ डॉस सेंसर्स एनालोजिकोस, ओएस सेंसर्स डी टेम्परेचर ई ल्यूमिनोसिडेड एस्ताओ कॉन्फिगुराडोस पैरा क्यू एसिम क्यू डिटेक्टेरेम उमा वेरिआकाओ फोरा दो पैड्रो प्री एस्टाबेलसीडो एनविरेम उम अलर्टा एट्रैवेट्स डू प्रोटोकॉल इवेंटो एमक्यू।
एस्टे अलर्टा कॉमेका ए कॉन्टेजेम रेग्रेसिवा क्यू पोड सेर सस्पेंसा या एक्सेलेराडा पेलो ऑपरेटर।
ओ कोंटाडोर पैरा ओ अलर्टा कॉमेका कॉन्टेजेम रेग्रेसिवा एम 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
कोडिगो पैरा पब्लिकाकाओ डॉस सेंसर्स डिजिटाईस
ओएस सेंसर्स डिजिटैस नेस्टे प्रोजेटो फोरम ओ टिल्ट क्यू डिटेक्टा ओएस ट्रेमोर्स ई ओ बोटाओ पैरा सिमुलर ओ उसो डी उम बोताओ डे पैनिको।
क्वांडो डिटेक्टाडो उमा एनोमेलिया या बोटाओ डे पैनिको प्रेशनैडो ए कॉन्टेजेम रेग्रेसिवा इन इनिसियाडा।
प्रोग्राम रोडांडो डेंट्रो दा ड्रैगन बोराड 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
कोडिगो मॉनिटराकाओ डो ट्विटर, पेसक्विसा पोस्ट और रेगियाओ डे सोरोकाबा
कोडिगो रोडांडो और माक्विना वर्चुअल और 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
उपयोग एक एडब्ल्यूएस आईओटी कोर के लिए सेवा के रूप में एमक्यूटीटी पर कॉन्फिगुरामोस के रूप में टिपो डी मेन्सेजम के अनुरूप है
उपयोगिता विषय एडब्ल्यूएस एसएनएस क्यू एरम एसीओनाडोस पेलो एडब्ल्यूएस आईओटी कोर करते हैं
सिफारिश की:
Arduino कार रिवर्स पार्किंग अलर्ट सिस्टम - कदम दर कदम: 4 कदम
Arduino कार रिवर्स पार्किंग अलर्ट सिस्टम | स्टेप बाय स्टेप: इस प्रोजेक्ट में, मैं Arduino UNO और HC-SR04 अल्ट्रासोनिक सेंसर का उपयोग करके एक साधारण Arduino कार रिवर्स पार्किंग सेंसर सर्किट डिजाइन करूंगा। इस Arduino आधारित कार रिवर्स अलर्ट सिस्टम का उपयोग स्वायत्त नेविगेशन, रोबोट रेंजिंग और अन्य रेंज r के लिए किया जा सकता है
DIY कदम/डीआईआर लेजर गैल्वो नियंत्रक: 5 कदम (चित्रों के साथ)
DIY STEP / DIR LASER GALVO कंट्रोलर: नमस्ते, इस निर्देश में, मैं आपको दिखाना चाहता हूं कि आप ILDA मानक गैल्वो लेजर स्कैनर के लिए अपना खुद का स्टेप / dir इंटरफ़ेस कैसे बना सकते हैं। जैसा कि आप जानते होंगे कि मैं "DIY-SLS-3D-Printer" और "जेआरएलएस १००० DIY एसएलएस-३डी-पी
पिक्सेल किट चल रहा है माइक्रोपायथन: पहला कदम: 7 कदम
पिक्सेल किट रनिंग माइक्रोपायथन: पहला कदम: कानो के पिक्सेल की पूरी क्षमता को अनलॉक करने की यात्रा फ़ैक्टरी फ़र्मवेयर को माइक्रोपायथन के साथ बदलने के साथ शुरू होती है लेकिन यह केवल शुरुआत है। Pixel Kit पर कोड करने के लिए हमें अपने कंप्यूटरों को इससे कनेक्ट करना होगा। यह ट्यूटोरियल समझाएगा कि क्या
बैटरी के आंतरिक प्रतिरोध को मापने के लिए 4 कदम: 4 कदम
बैटरी के आंतरिक प्रतिरोध को मापने के लिए 4 कदम: यहां 4 सरल चरण दिए गए हैं जो बैटर के आंतरिक प्रतिरोध को मापने में आपकी मदद कर सकते हैं।
Centro de Computo Para Niños Con Raspberry Pi: 7 कदम
Centro de Computo Para Niños Con Raspberry Pi: Estos serán los primeros pasos de la Raspberry Pi y para ello necesitaremos: Raspberry Pi 2 Adaptador de red a micro USB Tarjeta micro SD(de 8 gb) केबल HDMI Cargador Ratón Teclado para ComputadoraEn caso de contar con un Kit de inicio