İçindekiler:
- Adım 1: Dragonbord 410c - Publicação Dos Sensörleri - Analogicos
- 2. Adım: Sensörler Dijital - Publicação
- Adım 3: Codigo Para Aconamento Sirene
- Adım 4: Codigo Twitter - Gönderi
- Adım 5: Centro De Comando
- 6. Adım: Codigo Twitter - Monitoração
- 7. Adım: Estrutura AWS
Video: Centro De Comando Acil Durumlar - Erupção De Vulcão E Terremotos: 7 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Projeler, akademik çalışmalar için ortak çalışma, internetin olumsuz etkilerinin doğal, olası ve algılayıcı algılayıcılarının IOT de sıcaklık, aydınlatma, salınım (bot) tarafından değerlendirilmesi. Herhangi bir işbirliğine girmeden önce, Twitter ve uygulamalarıyla ilgili tüm uyarıları destekleyin.
Olasılıkların çeşitliliği, her türlü çözümün, enformasyonun en iyi şekilde değerlendirilmesi, en iyi bilgilerin doğrulanması için kullanılabilir. En önemli kararlardan biri, en kritik nokta.
SMS, e-posta, e-posta, sirene ve twitter için uyarılar.
IOT CORE, EC2 e SNS dahil olmak üzere AWS'nin yinelenen projeleriyle iletişim kurması
DragonBord 410c sensörleri
müşteriler android mqtt
Sendo todo desenvolvido em python
Arabalar:
Diego Fernandes dos Santos – [email protected]
Gabriel Piovani Moreira dos Santos – [email protected]
Gustavo Venancio Luz – [email protected]
Paulo Henrique Almeida Santos – [email protected]
Adım 1: Dragonbord 410c - Publicação Dos Sensörleri - Analogicos
Abaixo ya da kamuya açık sensörler analojiler, sıcaklıklar ve ışıklar için sensörler için sensörler, tüm konfigürasyonlar için farklı ayarlamalar yapın, her şeyi kontrol edin, enviarem um uyarıları için tüm protokolleri kontrol edin.
Este uyarılar bir conagem regressiva que pode ser suspensa veya acelerada pelo operador.
O contador para o alarma começa contagem regressiva em 60 seguntos, e todo novo alarma decresce o condor em 20 segundos.
programa rodando dentro da ejderha borad 410c
#!/usr/bin/python3import spidev libsoc'tan içe aktar gpio'yu zamandan içe aktar uyku
# Importa lib para comunicacao com MOSQUITTO paho.mqtt.client'i mqtt olarak içe aktarın
spi = spidev. SpiDev() spi.open(0, 0) spi.max_speed_hz=10000 spi.mode = 0b00 spi.bits_per_word = 8
#Usando bir porta ADC1 channel_select1=[0x01, 0x80, 0x00]
#Para bir porta ADC2 kullanımı o seguinte vetor de configuraÃÆ'§ÃÆ'£o channel_select2=[0x01, 0xA0, 0x00]
def on_connect(mqttc, obj, flags, rc): print("rc: " + str(rc))
def on_message(mqttc, obj, msg): print(msg.topic + " " + str(msg.qos) + " " + str(msg.payload))
def on_publish(mqttc, obj, mid): print("Mesaj Kimliği: " + str(mid) + "\n") pass
# Criamos veya istemci ve setamos konfigürasyonları mqttc = mqtt. Client()
mqttc.on_message = on_message mqttc.on_connect = on_connect mqttc.on_publish = on_publish
pub = mqtt. Client("grupo3")
# Conexao com localhost, labredes için testamos fora. broker_address ="34.230.74.201"
pub.connect(broker_adresi)
if _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 iken contador < 50: gpio_cs.set_high() sleep(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 print("Sıcaklık: %f\n" % adc_value) pub.publish("temperatura", str(adc_value)) # teste para acionar conador do alarme, teste ultima leitura + 5%
if adc_value_old==0: adc_value_old=adc_value if adc_value > (adc_value_old*1.05): pub.publish("ALARME", "AÇIK") print ("Alarmado temperatura") adc_value_old=adc_value uyku(1)
gpio_cs.set_high() sleep(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 print(" Luminosidade: %f\n" % adc_value2) pub.publish("luminosidade", str(adc_value2))
# teste para acionar conador do alarme, teste ultima leitura + 50%
if adc_value2_old==0: adc_value2_old=adc_value2 ise adc_value2 > (adc_value2_old*1.5): pub.publish("ALARME", "AÇIK") yazdır ("Alarmado Luminosidade") adc_value2_old=adc_value2 sleep(3)
2. Adım: Sensörler Dijital - Publicação
código para publicação dos sensores digitais
İşletim sensörleri dijital ortamlar için projeto foram o tilte que tespita os tremores e o botão para simular o uso de um botão de pânico.
Her şeyi saptayan bir anormallik olup olmadığını kontrol etmek için bir regresyon ve iniciada.
programa rodando dentro da ejderha borad 410c
libsoc_zero. GPIO'dan içe aktarma Düğmesi libsoc_zero. GPIO'dan içe aktarma Zamandan eğim içe aktarma uyku içe aktarma paho.mqtt.client as mqtt içe aktarma sys
def on_connect(mqttc, obj, flags, rc): print("Conectado " + str(rc))
def on_message(mqttc, obj, msg): print(msg.topic + " " + str(msg.qos) + " " + str(msg.payload))
def on_publish(mqttc, obj, mid): # print("Mesaj Kimliği: " + str(mid) + "\n") pass
defDetectaTilt(): count = 0 sleep_count = 0 while True: try: tilt.wait_for_tilt(1) dışında: sleep_count += 1 else: count += 1 sleep_count += 1 sleep_count > 999 ise: break
print("count:", count) if count>200: pub = mqttc.publish("TERREMOTO", "ON") pub = mqttc.publish("SISMOGRAFO", str(count)) # Criamos o client ve setamos suas configuracoes mqttc = mqtt. Client()
mqttc.on_message = on_message mqttc.on_connect = on_connect mqttc.on_publish = on_publish
konu = "grupo3"
# Conexao com localhost, labredes için testamos fora. mqttc.connect("34.230.74.201", 1883)
eğme = eğme('GPIO-A')
btn = Düğme('GPIO-C')
while True: sleep(0.25)DetectaTilt() if btn.is_pressed(): pub = mqttc.publish("PANICO", "ON") print("Botao ON") sleep(1) pub = mqttc.publish("PANICO ", "KAPALI") # başka: # pub = mqttc.publish("PANICO", "KAPALI") # print("Botao KAPALI")
Adım 3: Codigo Para Aconamento Sirene
SIRENE için ek abonelikler, dragon board 410c programa rodando dentro
# Importa lib para comunicacao com MOSQUITTOimport paho.mqtt.client as mqtt
libsoc_zero. GPIO'dan içe aktar zamandan LED'i içe aktar uyku led = LED('GPIO-E') #led.off()
# Define o que fazer ao conectar def on_connect(client, obj, flags, rc): print("ConexÃÆ'£o estabelecida com broker")
# Define 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")) == "on": print("Sirene ligada") led.on() else: print("Sierene apagada") led.off()
# IP aracı broker_address = "34.230.74.201"
# Cria o cliente sub = mqtt. Client("grupo3")
sub.connect(broker_address)
sub.on_message = on_message sub.on_connect = on_connect
# Increve no topico sub.subscribe("SIRENE", qos=0)
# Döngü para escuta sub.loop_forever()
Adım 4: Codigo Twitter - Gönderi
Endişelenmek için her şeyi yapın.
AWS EC2 için sanal ortam
#!/usr/bin/env python #------------------------------------------ ---------------------------------- # twitter-post-status # - zaman tünelinize bir durum mesajı gönderir #--- -------------------------------------------------- ------------------ paho.mqtt.subscribe'ı abone olarak içe aktar
ithalat zamanı
twitter içe aktarmadan *
#------------------------------------------------ ---------------------- # yeni durumumuz ne olmalı? #------------------------------------------------ ---------------------- new_status = "#Terremoto Procure uma zona segura - teste"
#------------------------------------------------ ---------------------- # API kimlik bilgilerimizi yükleyin #---------------------- ------------------------------------------------- içe aktarmak sys sys.path.append(".") içe aktarma yapılandırması
#------------------------------------------------ ---------------------- # twitter API nesnesi oluştur #---------------------- ------------------------------------------------- twitter = Twitter(auth = OAuth('senha removida))
#------------------------------------------------ ---------------------- # yeni bir durum gönderin # twitter API dokümanları: https://dev.twitter.com/rest/reference/post/statu… #------------------------------------------------ ----------------------
while 1: m = abone.simple("twitteralarme", ana bilgisayar adı="172.31.83.191", tutulan=Yanlış) if m.topic=="twitteralarme" ve str(m.payload.decode("utf-8")) =="on": sonuçlar = twitter.statuses.update(status = (new_status)+str(time.time())) # print("güncellenmiş durum: %s" % yeni_status)
Adım 5: Centro De Comando
semper que acionado um dispositivo el kitabı ve uyarıları bir el kitabının kullanım kılavuzu için geçerlidir. O operador pode iptal o envio ou acionar o envio imediato uyarı yapmak.
Parametreler, panodan faydalanma ve android telefonları kullanma, merkezde çalışma yapma.
AWS EC2 için sanal ortam
paho.mqtt.client'i pahoimport olarak içe aktar paho.mqtt.abone ol abone ol paho.mqtt.yayınla yayınla json içe aktarma zamanını içe aktar altı ssl'yi zamandan içe aktar uykuyu içe aktar
konular = ['#']
gatilho=0 hora_disparo=0 yayın.single("ACIONADO", "KAPALI", qos=1, ana bilgisayar adı="172.31.83.191") yayın.single("sensor1", "KAPALI", qos=1, ana bilgisayar adı="172.31.83.191") yayın.single("sensör2", "KAPALI", qos=1, ana bilgisayar adı="172.31.83.191")
connflag = Yanlış
def on_connect(client, userdata, flags, rc): global connflag connflag = True print(connflag) print("Bağlantı sonucu döndürüldü: " + str(rc))
def on_message(client, userdata, msg): # print("teste") print(msg.topic+" "+str(msg.payload))
def on_log(client, userdata, level, buf): print(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 = "9e85dfd42pem.certificate. crt" keyPath = "9e85dfd42a-private.pem.key" mqttc.tls_set(caPath, certfile=certPath, keyfile=keyPath, cert_reqs=ssl. CERT_REQUIRED, tls_version=ssl. PROTOCOL2No_tciphers,awconnect,TLSv1sw,, canlı tut=60) mqttc.loop_start()
while 1: hora=time.time() sleep(.1) yayınlama.single("LEDTERREMOTO", "on", qos=1, hostname="172.31.83.191")
# if connflag ==True: # mqttc.publish("message", json.dumps({'message':"TERREMOTO"}), qos=1) if gatilho==1:Publish.single("TEMPO", str (round(hora_disparo-hora, 0)), qos=1, hostname="172.31.83.191") yayınla.single("LEDTERREMOTO", "on", qos=1, hostname="172.31.83.191") başka: yayınla.single("TEMPO", "99", qos=1, hostname="172.31.83.191") # print(" ") if (hora>hora_disparo) ve (gatilho==1): # print("TERREMOTO") # print(connflag) if connflag == Doğru: # mqttc.publish("message", json.dumps({'message':"TERREMOTO"}), qos=1) # mqttc.publish("message", "TERREMOTO" ", qos=1) mqttc.publish("message", json.dumps("TERREMOTO - UMA ZONA SEGURA'YI SATIN ALMAK"), qos=1)
# print("teste SNS") # yayın.single("LED", "açık", ana bilgisayar adı="172.31.83.191") yayın.single("SIRENE", "açık", qos=1, hostname="172.31. 83.191") yayın.single("TEMPO", "TERREMOTO", qos=1, ana bilgisayar adı="172.31.83.191") yayın.single("ACIONADO", "KAPALI", qos=1, ana bilgisayar adı="172.31.83.191") yayın.single("twitteralarme", "on", qos=1, hostname="172.31.83.191") yayın.single("twitter", "TERREMOTO - UMA ZONA SEGURA PROCURE", qos=1, hostname="172.31.83.191") gatilho=0 uyku(5) m = abone.simple(topics, hostname="172.31.83.191", protected=False) if m.topic=="ACIONADO" ve str(m.payload.decode(" utf-8"))=="KAPALI": gatilho=0 print("cancelado") eğer m.topic=="medico" ve str(m.payload.decode("utf-8"))=="on ": if connflag == Doğru: mqttc.publish("medico", json.dumps("MEDICOS - ACİL TERREMOTO"), qos=1) if m.topic=="bombeiro" ve str(m.payload.decode("utf-8"))=="on": if connflag == Doğru: mqttc.publish("bombeiro", json.dumps("BOMBEIRO - ACİL TERREMOTO"), qos=1) eğer m.topic==" ambulancia" ve str(m.payloa d.decode("utf-8"))=="on": if connflag == Doğru: mqttc.publish("ambulancia", json.dumps("AMBULANCIA - ACİL TERREMOTO"), qos=1) eğer m. topic=="urgente" ve str(m.payload.decode("utf-8"))=="on": yayın.single("ACIONADO", 1, qos=1, hostname="172.31.83.191") gatilho=1 hora_disparo=time.time()+5 if str(m.payload.decode("utf-8"))=="AÇIK": if gatilho==1: print("acelerado 20") hora_disparo=hora_disparo -20 else: print("Acionado") yayın.single("ACIONADO", 1, qos=1, hostname="172.31.83.191") gatilho=1 hora_disparo=time.time()+60
6. Adım: Codigo Twitter - Monitoração
código monitoração twitter yapmak, pesquisa post na regiao de sorocaba
AWS EC2 için sanal ortam
n
twitter'dan içe aktar *import yapılandırmasını içe aktar paho.mqtt.publish as yayınlamak
zamandan içe uyku
twitter = Twitter(auth = OAuth(config.access_key, config.access_secret, config.consumer_key, config.consumer_secret))
enlem = -23.546211 boylam = -46.637840 alcance = 50 sonuç = 1
yayınlama.single("twitter_alarme", "AÇIK", ana bilgisayar adı="34.230.74.201")
sonuç_sayısı = 0 last_id = Yok bayrak = 0
i aralığında(60): #------------------------------------------- ------------------------------ # enlem ve boylam bazında arama yapın # twitter API dokümanları: https://dev. twitter.com/rest/reference/get/search… #------------------------------------ ---------------------------------- deneyin: sorgu = twitter.search.tweets(q = "#Terremoto", geocode = "%f, %f, %dkm" % (enlem, boylam, alcance), max_id = last_id) print("leu")
hariç: print("erro acesso twitter") sonu
["durumlar"] sorgusundaki sonuç için:
#------------------------------------------------ ---------------------- # yalnızca bir coğrafi konumu varsa bir sonucu işleyin #---------------- -------------------------------------------------- ---- if sonuç["geo"]: sonuç_sayısı += 1 last_id = sonuç["kimlik"] uyku(1) if result_count == resultados: flag += 1 yayın.single("twitter_alarme", "AÇIK", hostname="34.230.74.201") yayınla.single("twitter", "TERREMOTO - DETECTADO", hostname="34.230.74.201") ara
7. Adım: Estrutura AWS
Utilizamos uma maquina sanal rodando ubuntu ve östrutura AWS EC2
AWS IOT CORE para o serviço de MQTT onde configuramos olarak açıkões uyumlu o tipo de mensagem kullanın
AWS IOT CORE'dan faydalanma konuları AWS SNS'yi sorguluyor.
Önerilen:
D882 TRANSİSTÖR KULLANARAK OTOMATİK ACİL DURUM IŞIK DEVRESİ NASIL YAPILIR: 3 Adım
D882 TRANSİSTÖR KULLANARAK OTOMATİK ACİL DURUM IŞIK DEVRESİ NASIL YAPILIR: MERHABA ARKADAŞLAR KANALIMIZA HOŞ GELDİNİZ, BUGÜN SİZLERE D882 TRANSİSTÖR KULLANARAK OTOMATİK ACİL IŞIK DEVRESİ YAPILACAĞINI GÖSTERİYORUM
Pilsiz Acil Durum LED Meşalesi: 10 Adım
Pilsiz Acil Durum LED Meşalesi: Herkese Merhaba, Bu benim ilk Talimatlarım, bu nedenle geri bildiriminiz daha fazla gelişmem için gerçekten yardımcı olacak. Ayrıca daha fazla proje için YouTube kanalıma göz atın.https://www.youtube.com/channel/UCy7KKu5hVrFcyWw32…Bugün size h
Acil USB Güç Kaynağı (3D Basılı): 4 Adım (Resimlerle)
Acil Durum USB Güç Kaynağı (3D Baskı): Bu proje, bir araçta kullanacağınız gibi, elektrik kesintisi veya kamp gezisi durumunda USB cihazlarını şarj etmek için 12V pil kullanır. Bataryaya bir USB araç şarj cihazı takmak kadar basit. Sandy Kasırgası'ndan sonra gücüm yoktu ve
Kendi Elle Çevirmeli Acil Durum Powerbank'ınızı Yapın: 4 Adım (Resimlerle)
Kendi Elle Çalıştırılan Acil Durum Powerbank'ınızı Yapın: Bu projede size modifiye edilmiş bir powerbank ile birlikte elle çalıştırılan bir jeneratörün nasıl oluşturulacağını göstereceğim. Bu sayede acil bir durumda prize ihtiyaç duymadan powerbank'ınızı şarj edebilirsiniz. Yol boyunca size ayrıca neden BLDC mot
Acil Durum Güç Bankası - DIY Araç Kutusu Solar: Radyo+ Şarj Cihazı+ Acil Durum için Işık!: 4 Adım
Acil Durum Güç Bankası - Kendin Yap Araç Kutusu Solar: Radyo+ Şarj Cihazı+ Acil Durum için Işık!: Ekle 28 Mart 2015: Alet kutumu acil durumlar için yaptım ve şimdi şehrim çamura gömüldüğü için kullanıyorum. Tecrübe olarak telefon şarj etmek ve radyo dinlemek için hizmet ettiğimi söyleyebilirim. Eski bir alet çantası mı? eski bir bilgisayar hoparlörü? kullanılmayan 12 voltluk bir pil mi? Yapabilirsiniz