Obsah:
- Krok 1: Dragonbord 410c - Publicação Dos Sensores - Analogicos
- Krok 2: Sensores Digitais - Publicação
- Krok 3: Codigo Para Acionamento Sirene
- Krok 4: Codigo Twitter - příspěvek
- Krok 5: Centro De Comando
- Krok 6: Codigo Twitter - Monitoração
- Krok 7: Estrutura AWS
Video: Centro De Comando Emergencias - Erupção De Vulcão E Terremotos: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
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
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
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 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
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
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
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
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:
Počitadlo kroků - mikro: bit: 12 kroků (s obrázky)
Počitadlo kroků - Micro: Bit: Tento projekt bude počítadlem kroků. K měření našich kroků použijeme snímač akcelerometru, který je zabudovaný v Micro: Bit. Pokaždé, když se Micro: Bit zatřese, přidáme 2 k počtu a zobrazíme ho na obrazovce
Comando Por Voz - DragonBoard410c: 5 kroků
Comando Por Voz - DragonBoard410c: Este guia ir á konfigurace a instalace programu Julius junto com o Coruja, que s ã o respektive program umo de de rekonhecimento de voz e o modelo ac ú stico em Portugu ê s.A vantagem da utiliza ç ã o do Ju
Akustická levitace s Arduino Uno krok za krokem (8 kroků): 8 kroků
Akustická levitace s Arduino Uno krok za krokem (8 kroků): Ultrazvukové měniče zvuku L298N Dc samice napájecí zdroj s mužským DC pinem Arduino UNOBreadboard Jak to funguje: Nejprve nahrajete kód do Arduino Uno (je to mikrokontrolér vybavený digitálním a analogové porty pro převod kódu (C ++)
Bolt - Noční hodiny bezdrátového nabíjení DIY (6 kroků): 6 kroků (s obrázky)
Bolt - Noční hodiny bezdrátového nabíjení DIY (6 kroků): Indukční nabíjení (známé také jako bezdrátové nabíjení nebo bezdrátové nabíjení) je druh bezdrátového přenosu energie. Využívá elektromagnetickou indukci k poskytování elektřiny přenosným zařízením. Nejběžnější aplikací je bezdrátové nabíjení Qi
Centro De Cómputo Para Niños Con Raspberry Pi: 7 Steps
Centro De Cómputo Para Niños Con Raspberry Pi: Estos ser á n los primos pasos de la Raspberry Pi y para ello necesitaremos: Raspberry Pi 2 Adaptador de red a micro USB Tarjeta micro SD (de 8 gb) Cable HDMI Cargador Rat ó n Teclado para výpočetní funkce související se sadou inicializací