Obsah:
- Krok 1: Dragonbord 410c - publicação dos senzory - analógové
- Krok 2: Sensores Digitais - Publicação
- Krok 3: Codigo Para Acionamento Sirene
- Krok 4: Codigo Twitter - príspevok
- 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 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
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é
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
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
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
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
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
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
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:
Počítadlo krokov - mikro: bit: 12 krokov (s obrázkami)
Počítadlo krokov - mikro: bit: Tento projekt bude počítadlom krokov. Na meranie našich krokov použijeme senzor akcelerometra, ktorý je vstavaný v Micro: Bit. Zakaždým, keď sa Micro: Bit zatrasie, pridáme k počtu 2 a zobrazíme ho na obrazovke
Comando Por Voz - DragonBoard410c: 5 krokov
Comando Por Voz - DragonBoard410c: Este guia ir á konfigurácia a konfigurácia programu Julius junto com o Coruja, que s ã o rešpekting program umo de de reconhecimento de voz e o modelo ac ú stico em Portugu ê s.A vantagem da utiliza ç ã o do Ju
Akustická levitácia s Arduino Uno krok za krokom (8 krokov): 8 krokov
Akustická levitácia s Arduino Uno krok za krokom (8 krokov): Ultrazvukové meniče zvuku L298N Dc napájací adaptér ženského adaptéra s mužským DC kolíkom Arduino UNOBreadboard Ako to funguje: Najprv nahráte kód do Arduino Uno (je to mikrokontrolér vybavený digitálnym a analógové porty na prevod kódu (C ++)
Bolt - Nočné hodiny pre bezdrôtové nabíjanie DIY (6 krokov): 6 krokov (s obrázkami)
Bolt - Nočné hodiny bezdrôtového nabíjania DIY (6 krokov): Indukčné nabíjanie (tiež známe ako bezdrôtové nabíjanie alebo bezdrôtové nabíjanie) je typ bezdrôtového prenosu energie. Na prenos elektriny do prenosných zariadení používa elektromagnetickú indukciu. Najbežnejšou aplikáciou je bezdrôtové nabíjanie 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 primo pasos de la Raspberry Pi y para ellocescesces: Raspberry Pi 2 Adaptador de red a micro USB Tarjeta micro SD (de 8 gb) Cable HDMI Cargador Rat ó n Teclado para výpočtová metóda, ako začať s balíkom inicializácií