Obsah:

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

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

Video: Centro De Comando Emergencias - Erupção De Vulcão E Terremotos: 7 krokov
Video: IMPACTO PROFUNDO - 01/12/14 - Sessão da Tarde 2024, November
Anonim
Centro De Comando Emergencias - Erupção De Vulcão E Terremotos
Centro De Comando Emergencias - Erupção De Vulcão E Terremotos

Naše akademické ceny za internetovú televíziu môžu mať za následok jednu z najrozšírenejších a najrozmanitejších prírodných a senzorových senzorov IOT teploty, svietivosti, oscilácie a zvyšovania teploty. Niektoré cenové ponuky pre predchádzajúcu integráciu do Twitteru a aplikácie, ktoré podporujú väčšinu činností.

Dostatočné možnosti pre rôzne aplikácie, ako napríklad centrálne operačné systémy, ktoré môžu mať za následok nedostatok spoľahlivosti a automatizovanosti a pravdepodobnosti falšovania. Rozhodnite sa, čo urobíte, aby ste to zvládli.

Riešenie všetkých problémov spojených s odosielaním hudby, ako aj používanie SMS, e -mailu, sirény a twitteru.

O projekte pokračovania v používaní rekuperácií AWS vrátane IOT CORE, EC2 a SNS

Senzory DragonBord 410c

klienti android mqtt

Odosielajte všetky python

Autori:

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 senzory - analógové

Dragonbord 410c - Publicação Dos Sensores - analógové
Dragonbord 410c - Publicação Dos Sensores - analógové

Analogické snímače digitálneho signálu, teplotné senzory a svetelné snímače majú rôzne konfiguračné parametre, ako je detekcia, ale môžu sa líšiť od rôznych typov protokolov, aby sa zabezpečilo protokolovanie.

Všetky reakcie môžu mať za následok regresiu, ktorá môže viesť k spomaleniu operátora.

Oproti predchádzajúcemu mesiacu došlo k regresii 60 spätných pohybov, čo znamená, že nová evidencia zaznamenala pokles o 20 percent.

program rodando dentro da dragon borad 410c

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

# Dôležitá informácia pre komunitu MOSQUITTO import paho.mqtt.client ako mqtt

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

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

#Para usar and 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 ("ID správy:" + str (stred) + "\ n") prejsť

# 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

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, zatiaľ čo contador <50: gpio_cs.set_high () spánok (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)) # všetky akcie, ktoré môžete urobiť, aby ste urobili poplach, maximálne testované + 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ánok (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

Väčšina digitálnych senzorov

Niektoré senzory digitalizujú svoje projektové operácie a môžu detegovať otrasy, ako aj podobné paraboly, ako aj bežné chyby.

môžu detekovať rôzne anomálie alebo tlaky na tlač a vyvolať regresiu a inicializáciu.

program rodando dentro da dragon borad 410c

from libsoc_zero. GPIO import Buttonfrom libsoc_zero. GPIO import Tilt from time import spánok 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 správy:" + str (stred) + "\ n") prejsť

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 = Button ('GPIO-C')

zatiaľ čo pravda: spánok (0,25) detekuje "," OFF ") # else: # pub = mqttc.publish (" PANICO "," OFF ") # print (" Botao OFF ")

Krok 3: Codigo Para Acionamento Sirene

Codigo Para Acionamento Sirene
Codigo Para Acionamento Sirene

Zaregistrujte sa do predplatného SIRENE, napíšte svoje plány do hry Dragon Ball 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 viac ako jeden konektor definujúci on_connect (klient, obj, vlajky, rc): print („ConexÃÆ'à £Â o establishmentelecida com broker“)

# Definujte viac ako jeden prijímač, ktorý je definovaný ako správa on_message (klient, obj, sprá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 - príspevok

Codigo Twitter - Príspevok
Codigo Twitter - Príspevok
Codigo Twitter - Príspevok
Codigo Twitter - Príspevok

Publikácia sa uskutoční na Twitteri a zobrazí sa výstraha.

virtuálne auto na AWS EC2

#!/usr/bin/env python #---------------------------------------- ------------------------------- # twitter-post-status #-uverejní správu o stave na vašej časovej osi # --- ---------------------------------------------------------- ------------------ import paho.mqtt.subscribe to subscribe

čas importu

z importu z twitteru *

#------------------------------------------------- ---------------------- # aký by mal byť náš nový stav? #------------------------------------------------- ---------------------- new_status = "#Terremoto Procure uma zona segura-teste"

#------------------------------------------------- ---------------------- # načítajte naše poverenia API # ---------------------- ------------------------------------------------- import sys sys.path.append (".") konfigurácia importu

#------------------------------------------------- ---------------------- # vytvoriť twitter API objekt # ---------------------- ------------------------------------------------- twitter = Twitter (auth = OAuth ('senha remove))

#------------------------------------------------- ---------------------- # uverejniť nový stav # twitter dokumenty API: https://dev.twitter.com/rest/reference/post/statu… #------------------------------------------------- ----------------------

pričom 1: m = subscribe.simple ("twitteralarme", názov hostiteľa = "172.31.83.191", ponechané = nepravda), ak 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.

Používajte niekoľko základných dosiek alebo telefónov s Androidom a spolupracujte s centrom operácií.

virtuálne auto na AWS EC2

import paho.mqtt.client ako pahoimport paho.mqtt.subscribe to subscribe import paho.mqtt.publish as publish import json import time import šesť import ssl from time import sleep

Témy = ['#']

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 = Nepravda

def on_connect (client, userdata, flags, rc): global connflag connflag = True print (connflag) print ("Pripojenie vrátilo výsledok:" + str (rc))

def on_message (klient, užívateľské údaje, správa): # print ("teste") print (msg.topic+""+str (msg.payload))

def on_log (klient, užívateľské údaje, ú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 ()

pričom 1: hora = čas.čas () spánok (.1) publish.single („LEDTERREMOTO“, „zapnuté“, qos = 1, názov hostiteľa = „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") publish.single ("LEDTERREMOTO", "on", qos = 1, hostname = "172.31.83.191") else: publikovať.single ("TEMPO", "99", qos = 1, hostname = "172.31.83.191") # print ("") if (hora> hora_disparo) and (gatilho == 1): # print ("TERREMOTO") # print (connflag) if connflag == True: # mqttc.publish ("message", json.dumps ({'message': "TERREMOTO"}), qos = 1) # mqttc.publish ("message", "TERREMOTO ", qos = 1) mqttc.publish (" sprá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.83.191 ") gatilho = 0 spánok (5) m = predplatné.jednoduché (témy, názov hostiteľa =" 172.31.83.191 ", ponechané = nepravdivé) ak m.topic ==" ACIONADO "a str (m.payload.decode (" utf-8 ")) ==" VYPNUTÉ ": gatilho = 0 tlač (" Cancellado "), ak m.topic ==" medico "a str (m.payload.decode (" utf-8 ")) ==" na ": if connflag == True: mqttc.publish (" medico ", json.dumps (" MEDICOS - EMERGENCIA TERREMOTO "), qos = 1) ak 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) ak 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 - Monitorovanie
Codigo Twitter - Monitorovanie

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

virtuálne auto na AWS EC2

n

z twitter importu *import konfigurácie import paho.mqtt.publish ako publikovať

z času importu spánku

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

zemepisná šírka = -23,546211 zemepisná dĺžka = -46,637840 alcance = 50 resultados = 1

publish.single ("twitter_alarme", "ON", názov hostiteľa = "34.230.74.201")

result_count = 0 last_id = žiadny príznak = 0

pre i v rozsahu (60): #----------------------------------------- ------------------------------ # vykonajte vyhľadávanie na základe zemepisnej šírky a dĺžky # twitter dokumenty API: https:// dev. twitter.com/rest/reference/get/search… #------------------------------------- ---------------------------------- skúste: query = twitter.search.tweets (q = "#Terremoto", geokód = " %f, %f, %dkm" %(zemepisná šírka, dĺžka, alcance), max_id = posledný_id) vytlačiť ("leu")

okrem: print ("erro acesso twitter") prestávka

pre výsledok v dotaze ["stavy"]:

#------------------------------------------------- ---------------------- # výsledok spracujte iba vtedy, ak má geolokáciu # ----------------- ---------------------------------------------------------- ---- 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") prestávka

Krok 7: Estrutura AWS

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

Použitie virtuálnej rodiny s ubuntu na základe AWS EC2

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

Využívajte všetky možnosti AWS SNS a vyberte si IOT CORE

Odporúča: