İçindekiler:

Centro De Comando Acil Durumlar - Erupção De Vulcão E Terremotos: 7 Adım
Centro De Comando Acil Durumlar - Erupção De Vulcão E Terremotos: 7 Adım

Video: Centro De Comando Acil Durumlar - Erupção De Vulcão E Terremotos: 7 Adım

Video: Centro De Comando Acil Durumlar - Erupção De Vulcão E Terremotos: 7 Adım
Video: Бегство от иллюзий: Бернардо Каструп раскрывает реальность 2024, Kasım
Anonim
Centro De Comando Acil Durumlar - Erupção De Vulcão E Terremotos
Centro De Comando Acil Durumlar - Erupção De Vulcão E Terremotos

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

Dragonbord 410c - Publicação Dos Sensörleri - Analogicos
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

Sensörler Dijital - Publicação
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

Codigo Para Aconamento Sirene
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

Codigo Twitter - Gönderi
Codigo Twitter - Gönderi
Codigo Twitter - Gönderi
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

Centro De Comando
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

Codigo Twitter - Monitoração
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

Estrutura AWS
Estrutura AWS
Estrutura AWS
Estrutura AWS
Estrutura AWS
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: