Obsah:

Centro De Comando Emergencias - Erupção De Vulcão E Terremotos: 7 kroků
Centro De Comando Emergencias - Erupção De Vulcão E Terremotos: 7 kroků

Video: Centro De Comando Emergencias - Erupção De Vulcão E Terremotos: 7 kroků

Video: Centro De Comando Emergencias - Erupção De Vulcão E Terremotos: 7 kroků
Video: International May Day Online Rally 2023 2024, Listopad
Anonim
Centro De Comando Emergencias - Erupção De Vulcão E Terremotos
Centro De Comando Emergencias - Erupção De Vulcão E Terremotos

Projekce akademických cen a cen pro internetová připojení k internetu, která má více přirozených vlastností, více možností detekce senzorů IOT teploty, osvětlení, oscilação (sklonu) Nejčastěji se jedná o předchozí integraci o Twitteru a aplikaci, která podporuje více aktivit.

Dividendové a různorodé možnosti využití, různé možnosti centralizované a dostupné informace o různých možnostech automatizace a automatizace a faktech. Rozhodující pro rozhodování a rozhodující opatření, která se týkají poplachu a selhání.

Komplexní řešení pro větší výběr uživatelů zvažuje použití SMS, e -mailu, sirény a twitteru.

O projektu, který můžete použít k opakování AWS včetně IOT CORE, EC2 e SNS

Senzory DragonBord 410c

klienti android mqtt

Odesílejte vše od pythonu

Autoři:

Diego Fernandes dos Santos - [email protected]

Gabriel Piovani Moreira dos Santos - [email protected]

Gustavo Venancio Luz - [email protected]

Paulo Henrique Almeida Santos - [email protected]

Krok 1: Dragonbord 410c - Publicação Dos Sensores - Analogicos

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

Analogové a digitální senzory, senzory teploty a světelné senzory konfigurují více parametrů, než jsou detekovatelné, různé variace pro různé typy protokolů, které umožňují různé způsoby protokolování a synchronizaci.

Dojde k dalšímu regresi a zpětnému rázu, což je důvodem pro pozastavení nebo zpomalení operátora.

Odešlete prosím o více než 60 sekund zpět, abyste nově detekovali pokles o 20 procent.

program rodando dentro da dragon borad 410c

#!/usr/bin/python3import spidev z libsoc import gpio z času importu spánku

# Importa lib para comunicacao com MOSQUITTO import paho.mqtt.client as mqtt

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

#Usaando a porta ADC1 channel_select1 = [0x01, 0x80, 0x00]

#Para usar a porta ADC2 use or 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 ("Message Id:" + str (mid) + "\ n") pass

# Criamos o klient e setamos suas configuracoes 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, uma vez que testamos fora do labredes. broker_address = "34.230.74.201"

pub.connect (broker_address)

if _name _ == '_ main_': gpio_cs = gpio. GPIO (18, gpio. DIRECTION_OUTPUT)

s gpio.request_gpios ([gpio_cs]): contador = 0 adc_value_old = 0 adc_value2_old = 0 zatímco contador <50: gpio_cs.set_high () spánek (0,00001) gpio_cs.set_low () rx = spi.xfer (channel_select1) gpio_) 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 ("Temperatura: % f / n" % adc_value) pub.publish ("temperatura", str (adc_value)) # teste para acionar contador 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", "ON") print ("Alarmado temperatura") adc_value_old = adc_value sleep (1)

gpio_cs.set_high () spánek (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_val (rx [2] & 0xff) adc_value2 = adc_value2 /10 print ("Luminosidade: % f / n" % adc_value2) pub.publish ("luminosidade", str (adc_value2))

# teste para acionar contador do alarme, teste ultima leitura + 50%

if adc_value2_old == 0: adc_value2_old = adc_value2 if adc_value2> (adc_value2_old*1.5): pub.publish ("ALARME", "ON") print ("Alarmado Luminosidade") adc_value2_old = adc_value2 sleep (3)

Krok 2: Sensores Digitais - Publicação

Sensores Digitais - Publicação
Sensores Digitais - Publicação

Digitální čidla pro dospělé

Osenzory digitálních snímačů mohou procházet a zjišťovat, jak detekovat otřesy, ale také se mohou podobat druhému nebo druhému problému.

quando detectado uma anomalia ou botão de pânico pressionado a contagem regressiva é initiada.

program rodando dentro da dragon borad 410c

from libsoc_zero. GPIO import Buttonfrom libsoc_zero. GPIO import Tilt from time import spánkový import paho.mqtt.client as mqtt import 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 ("ID zprávy:" + str (střední) + "\ n") průchod

def detectaTilt (): count = 0 sleep_count = 0 while True: try: tilt.wait_for_tilt (1) okrem: sleep_count += 1 else: count += 1 sleep_count += 1 if sleep_count> 999: break

print ("count:", count) if count> 200: pub = mqttc.publish ("TERREMOTO", "ON") pub = mqttc.publish ("SISMOGRAFO", str (count)) # Criamos o client e setamos suas configuracoes mqttc = mqtt. Client ()

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

topic = "grupo3"

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

tilt = Tilt ('GPIO-A')

btn = Tlačítko ('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 "," OFF ") # else: # pub = mqttc.publish (" PANICO "," OFF ") # print (" Botao OFF ")

Krok 3: Codigo Para Acionamento Sirene

Codigo Para Acionamento Sirene
Codigo Para Acionamento Sirene

Codigo para subscrição para acionamento da SIRENE, programa rodando dentro da dragon board 410c

# Importa lib para comunicacao com MOSQUITTOimport paho.mqtt.client as mqtt

z libsoc_zero. GPIO import LED z času import LED spánku = LED ('GPIO-E') #led.off ()

# Definujte okénko a conektar def on_connect (klient, obj, vlajky, rc): print („ConexÃà £Â o establishmentelecida com broker“)

# Definujte více než jeden přijímač uma mensagem def on_message (klient, obj, zpráva): 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 do broker 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)

# Loop para escuta sub.loop_forever ()

Krok 4: Codigo Twitter - příspěvek

Codigo Twitter - příspěvek
Codigo Twitter - příspěvek
Codigo Twitter - příspěvek
Codigo Twitter - příspěvek

Zveřejnění můžete provést na twitteru a aktivovat alarm.

virtuální realita AWS EC2

#!/usr/bin/env python #---------------------------------------- ------------------------------- # twitter-post-status #-zveřejní stavovou zprávu na vaši časovou osu # --- ---------------------------------------------------------- ------------------ import paho.mqtt.subscribe jako předplatné

čas importu

z twitterového importu *

#------------------------------------------------- ---------------------- # jaký by měl být náš nový stav? #------------------------------------------------- ---------------------- new_status = "#Terremoto Procure uma zona segura-teste"

#------------------------------------------------- ---------------------- # načíst naše přihlašovací údaje API # ---------------------- ------------------------------------------------- import sys sys.path.append (".") importovat konfiguraci

#------------------------------------------------- ---------------------- # vytvořit twitter API objekt # ---------------------- ------------------------------------------------- twitter = Twitter (auth = OAuth ('senha removeida))

#------------------------------------------------- ---------------------- # zveřejnit nový stav # twitter dokumenty API: https://dev.twitter.com/rest/reference/post/statu… #------------------------------------------------- ----------------------

zatímco 1: m = subscribe.simple ("twitteralarme", hostname = "172.31.83.191", ponecháno = False) if m.topic == "twitteralarme" a str (m.payload.decode ("utf-8")) == "on": results = twitter.statuses.update (status = (new_status)+str (time.time ())) # print ("updated status: % s" % new_status)

Krok 5: Centro De Comando

Centro De Comando
Centro De Comando

semper que acionado um dispositivo manual ou detectado um alerta manual do usuário é acionada uma contagem regressiva para envio de mensagem. O operador pode zrušení o envio ou acionar o envio imediato do alerta.

Para uso do dasboard using Android or telefone para compor and mesa de operação do centro de comando.

virtuální realita AWS EC2

import paho.mqtt.client jako pahoimport paho.mqtt.subscribe jako předplatné import paho.mqtt.publish jako publikovat import json import time import šest import ssl from time import sleep

témata = ['#']

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.83.191 ") publish.single (" sensor2 "," OFF ", qos = 1, hostname =" 172.31.83.191 ")

connflag = False

def on_connect (klient, uživatelská data, vlajky, rc): global connflag connflag = True print (connflag) print ("Connection returns result:" + str (rc))

def on_message (klient, uživatelská data, zpráva): # print ("teste") print (msg.topic+""+str (msg.payload))

def on_log (klient, uživatelská data, úroveň, 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 = "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_TLSctc.waw), keepalive = 60) mqttc.loop_start ()

while 1: hora = time.time () sleep (.1) publish.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 (kulatý (hora_disparo-hora, 0)), qos = 1, název_hostitele = "172.31.83.191") publish.single ("LEDTERREMOTO", "on", qos = 1, hostname = "172.31.83.191") else: publikovat.single ("TEMPO", "99", qos = 1, hostname = "172.31.83.191") # print ("") if (hora> hora_disparo) a (gatilho == 1): # print ("TERREMOTO") # print (connflag) if connflag == True: # mqttc.publish ("message", json.dumps ({'message': "TERREMOTO"}), qos = 1) # mqttc.publish ("zpráva", "TERREMOTO ", qos = 1) mqttc.publish (" zpráva ", json.dumps (" TERREMOTO - PROCURE UMA ZONA SEGURA "), qos = 1)

# print ("teste SNS") # 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 0,83,191 ") gatilho = 0 spánek (5) m = předplatné. Jednoduché (témata, název hostitele =" 172.31.83.191 ", zachováno = nepravdivé) pokud m.topic ==" ACIONADO "a str (m.payload.decode (" utf-8 ")) ==" VYPNUTO ": gatilho = 0 tisk (" Cancellado "), pokud m.topic ==" medico "a str (m.payload.decode (" utf-8 ")) ==" na ": if connflag == True: mqttc.publish (" medico ", json.dumps (" MEDICOS - EMERGENCIA TERREMOTO "), qos = 1) if m.topic ==" bombeiro "a str (m.payload.decode ("utf -8")) == "on": if connflag == True: mqttc.publish ("bombeiro", json.dumps ("BOMBEIRO - EMERGENCIA TERREMOTO"), qos = 1) if m.topic == " ambulancia “a str (m.payloa d.decode ("utf -8")) == "on": if connflag == True: mqttc.publish ("ambulancia", json.dumps ("AMBULANCIA - EMERGENCIA TERREMOTO"), qos = 1) if m. topic == "urgente" a 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 if str (m.payload.decode ("utf-8")) == "ON": if gatilho == 1: print ("acelerado 20") hora_disparo = hora_disparo -20 else: print ("Acionado") publish.single ("ACIONADO", 1, qos = 1, hostname = "172.31.83.191") gatilho = 1 hora_disparo = time.time ()+60

Krok 6: Codigo Twitter - Monitoração

Codigo Twitter - Monitorování
Codigo Twitter - Monitorování

código monitoração do twitter, pesquisa post on regiao de sorocaba

virtuální realita AWS EC2

n

z twitteru import *import konfigurace import paho.mqtt.publish jako publikovat

z časového importu spánku

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

zeměpisná šířka = -23,546211 zeměpisná délka = -46,637840 alcance = 50 resultados = 1

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

result_count = 0 last_id = Žádný příznak = 0

pro i v rozsahu (60): #----------------------------------------- ------------------------------ # proveďte vyhledávání na základě zeměpisné šířky a délky # twitter dokumenty API: https:// dev. twitter.com/rest/reference/get/search… #------------------------------------- ---------------------------------- zkuste: query = twitter.search.tweets (q = "#Terremoto", geokód = " %f, %f, %dkm" %(zeměpisná šířka, délka, alcance), max_id = poslední_id) tisk ("leu")

kromě: print ("erro acesso twitter") přestávka

pro výsledek v dotazu ["stavy"]:

#------------------------------------------------- ---------------------- # výsledek zpracujte pouze v případě, že má geolokační # ----------------- ---------------------------------------------------------- ---- if result ["geo"]: result_count += 1 last_id = result ["id"] sleep (1) if result_count == resultados: flag += 1 publish.single ("twitter_alarme", "ON",, hostname = "34.230.74.201") publish.single ("twitter", "TERREMOTO - DETECTADO", hostname = "34.230.74.201") přestávka

Krok 7: Estrutura AWS

Estrutura AWS
Estrutura AWS
Estrutura AWS
Estrutura AWS
Estrutura AWS
Estrutura AWS

Využití virtuálního virtuálního počítače s Ubuntu AWS EC2

Použití a AWS IOT CORE para o serviço de MQTT onde configuramos as ações odpovídat o tipo de mensagem

Využijte nejlepší možnosti AWS SNS a získejte více AWS IOT CORE

Doporučuje: