Мазмуну:

Centro De Comando Explorencias - Erupção De Vulcão E Terremotos: 7 кадам
Centro De Comando Explorencias - Erupção De Vulcão E Terremotos: 7 кадам

Video: Centro De Comando Explorencias - Erupção De Vulcão E Terremotos: 7 кадам

Video: Centro De Comando Explorencias - Erupção De Vulcão E Terremotos: 7 кадам
Video: ¿Que comer con brackets en 🇨🇴 ? - Odontología Láser #Shorts 2024, Ноябрь
Anonim
Centro De Comando Explorencias - Erupção De Vulcão E Terremotos
Centro De Comando Explorencias - Erupção De Vulcão E Terremotos

Колдонуу шарттары интернет -ресурстар менен камсыз кылынат, ошондой эле IOT де temperatura, luminosidade, oscilânão (тилке) потенциалдуу жөндөмдүүлүктөрдү табуу үчүн, интернет -деталдарды табуу мүмкүнчүлүгү. Айырмасы жок, алдын ала интеграциялык комментарий Твиттерде жана электрондук почтада колдоо көрсөтүлүшү керек.

Диверсиялар да, программалар да, операциялар да мүмкүн болушунча автоматтык түрдө автоматтык түрдө автоматтык түрдө ишке ашат. Талап кылынган чечимдер диапазону ao pânico que um alarme falso pode gerar.

Комментарийлерди SMS аркылуу жөнөтүү, кардарларды тейлөө, электрондук почта, сырттан жана твиттерден билдирүү жөнөтүү керек.

AWS менен IOT CORE, EC2 жана SNS боюнча рекультивациялоо керек.

DragonBord 410c

андроид mqtt кардарлары

Питон менен иштөө

Автомобилдер:

Диего Фернандес дос Сантос - [email protected]

Габриэль Пиовани Морейра дос Сантос - [email protected]

Густаво Венансио Луз - [email protected]

Пауло Анрике Альмейда Сантос - [email protected]

1 -кадам: Dragonbord 410c - Publicação Dos Sensores - Analogicos

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

Аналогико публикацио дос сенсор аналогико, os sensors de temperatura e luminosidade estáo configurados for the assim que que assimim que a detarem uma variação for padrão pré setelecido enviarem um alerta através do protocolo umqto sinalizando.

Эскертмелердин кайсынысы болбосун, бул операциянын артында турат.

Бул 60 регресстин регрессивдүү эместиги, ал эми 20 жаңылыктын жок кылынышы.

dragon borad 410c

#!/usr/bin/python3import spidev libsoc импорттук gpio импорттук убакыттан

# Импорт lib para comunicacao com MOSQUITTO mahtt катары paho.mqtt.client импорттоо.

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

ADS1 портуна #Usando a porta channel_select1 = [0x01, 0x80, 0x00]

#ADC2 портунун конфигурациясын колдонуу каналдын_элект2 = [0x01, 0xA0, 0x00]

def on_connect (mqttc, obj, желектер, rc): басып чыгаруу ("rc:" + str (rc))

def on_message (mqttc, obj, msg): басып чыгаруу (msg.topic + "" + str (msg.qos) + "" + str (msg.payload))

def on_publish (mqttc, obj, mid): print ("Message Id:" + str (mid) + "\ n") pass

# Criamos же кардар конфигурациялары 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, бул жерде тестирлөөнү жасаңыз. broker_address = "34.230.74.201"

pub.connect (broker_address)

эгер _ аты _ == '_ негизги _': gpio_cs = gpio. GPIO (18, gpio. DIRECTION_OUTPUT)

менен gpio.request_gpios ([gpio_cs]): contador = 0 adc_value_old = 0 adc_value2_old = 0 contador <50: gpio_cs.set_high () уйку (0.00001) gpio_cs.set_low () rx = spi.xfer (channel_selects.) g) 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 басып чыгаруу ("Temperatura: % f / n" % adc_value) pub.publish ("temperatura", str (adc_value)) # тестирлөөнүн жыйынтыгы + 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 уйку (1)

gpio_cs.set_high () уйку (0.00001) gpio_cs.set_low () rx = spi.xfer (channel_select2) gpio_cs.set_high () contador = 1 + adc_value2 = (rx [1] << 8) & 0b1100000000 adc_value2 = adc_value2 | (rx [2] & 0xff) adc_value2 = adc_value2 /10 басып чыгаруу ("Luminosidade: % f / n" % adc_value2) pub.publish ("luminosidade", str (adc_value2))

# тестирлөөнүн жыйынтыгы + 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 уйку (3)

2 -кадам: Sensores Digitais - Publicação

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

código para publicação dos sensores digitizis

Дисциплиналардын жардамы менен треморлор жана симуляторлордун жардамы менен тренерлер пайда болот.

табуу аномалия же ката кетирүү же басуу.

dragon borad 410c

libsoc_zero. GPIO импорттоо Buttonfromдан libsoc_zero. GPIO импорттоо Убакыттан импорттоо уйку импорту paho.mqtt.client mqtt импорт системасы катары

def on_connect (mqttc, obj, flags, rc): print ("Conectado" + str (rc))

def on_message (mqttc, obj, msg): басып чыгаруу (msg.topic + "" + str (msg.qos) + "" + str (msg.payload))

def on_publish (mqttc, obj, mid): # print ("Message Id:" + str (mid) + "\ n") pass

def detectaTilt (): count = 0 sleep_count = 0 True: аракет кылыңыз: tilt.wait_for_tilt (1) тышкары: sleep_count += 1 башка: 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

theme = "grupo3"

# Conexao com localhost, бул жерде тестирлөөнү жасаңыз. mqttc.connect ("34.230.74.201", 1883)

эңкейтүү = эңкейүү ('GPIO-A')

btn = Баскыч ('GPIO-C')

while True: уйку (0.25) detectaTilt () if btn.is_pressed (): pub = mqttc.publish ("PANICO", "ON") басып чыгаруу ("Botao ON") уйку (1) pub = mqttc.publish ("PANICO) "," OFF ") # башка: # pub = mqttc.publish (" PANICO "," OFF ") # print (" Botao OFF ")

3 -кадам: Codigo Para Acionamento Sirene

Codigo Para Acionamento Sirene
Codigo Para Acionamento Sirene

SIRENE үчүн программалык камсыздоо, ажыдаар тактасы 410c үчүн дрождун программасы.

# Импорт lib para comunicacao com MOSQUITTOimport paho.mqtt.client mqtt катары

libsoc_zero. GPIO импорттук LED убактысынан импорттук уйку led = LED ('GPIO-E') #led.off ()

# On_connect (кардар, обж, желектер, rc) боюнча кезектеги фазерди аныктаңыз: басып чыгаруу ("ConexÃƒÆ £ £ түзүү жөнүндө" брокер ")

# Белгилеңиз_мессаж боюнча кардар (кардар, обж, билдирүү): басып чыгаруу ("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 брокер_адреси = "34.230.74.201"

# Кредит кардары sub = mqtt. Client ("grupo3")

sub.connect (broker_address)

sub.on_message = on_message sub.on_connect = on_connect

# Sub.subscribe темасын көбөйтпөңүз ("SIRENE", qos = 0)

# Loop para escuta sub.loop_forever ()

4 -кадам: Codigo Twitter - Пост

Codigo Twitter - Пост
Codigo Twitter - Пост
Codigo Twitter - Пост
Codigo Twitter - Пост

Коомчулуктун алдында твиттерди ачуу үчүн.

AWS EC2 виртуалдык системасын түзүү

#!/usr/bin/env python #---------------------------------------- ------------------------------- # twitter-post-status #-убакыт тилкеңизге статус билдирүүсүн жазат # --- -------------------------------------------------- ------------------ import paho.mqtt.subuncribe as subscribe

импорттоо убактысы

twitter импортунан *

#------------------------------------------------- ---------------------- # биздин жаңы статусубуз кандай болушу керек? #------------------------------------------------- ---------------------- new_status = "#Terremoto Procure менеджер-сыноо"

#------------------------------------------------- ---------------------- # биздин API ишеним грамоталарын жүктө # ---------------------- ------------------------------------------------- импорт sys sys.path.append (".") импорттук конфигурациясы

#------------------------------------------------- ---------------------- # twitter API объектисин түзүү # ---------------------- ------------------------------------------------- twitter = Twitter (auth = OAuth ('senha removida))

#------------------------------------------------- ---------------------- # жаңы статус жарыялоо # twitter API документтери: https://dev.twitter.com/rest/reference/post/statu… #------------------------------------------------- ----------------------

ал эми 1: m = subscribe.simple ("twitteralarme", hostname = "172.31.83.191", сакталып = False) эгер m.topic == "twitteralarme" жана str (m.payload.decode ("utf-8")) == "күйүк": жыйынтыктар = twitter.statuses.update (status = (new_status)+str (time.time ())) # print ("updated status: % s" % new_status)

5 -кадам: Centro De Comando

Centro De Comando
Centro De Comando

колдонмону аныктоо үчүн колдонмону колдоно аласыз. Оператор пода канцелярия ал энвио же акионар ал эндио дед алтерта.

Диск тактасы колдонулганда, андроид телефонду иштетүү үчүн борбордук жана командалык операцияларды аткарат.

AWS EC2 виртуалдык системасын түзүү

pahoimport катары paho.mqtt.client импорттоо paho.mqtt.subscribe катары жазуу

темалар = ['#']

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 (client, userdata, flags, rc): global connflag connflag = True print (connflag) print ("Байланыш кайтарылган жыйынтык:" + str (rc))

def on_message (client, userdata, msg): # print ("teste") print (msg.topic+""+str (msg.payload))

def on_log (кардар, колдонуучу маалыматы, деңгээл, buf): басып чыгаруу (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_TLSvcnn, ctq), keepalive = 60) mqttc.loop_start ()

ал эми 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 (round (hora_disparo-hora, 0)), qos = 1, hostname = "172.31.83.191") publish.single ("LEDTERREMOTO", "on", qos = 1, hostname = "172.31.83.191") башка: жарыялоо.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 (" билдирүү ", 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 уйку (5) m = жазылуу.жөнөкөй (темалар, хосттун аты =" 172.31.83.191 ", сакталып = Жалган) эгер m.topic ==" ACIONADO "жана str (m.payload.decode (" utf-8 ")) ==" ӨЧҮК ": gatilho = 0 басып чыгаруу (" жок кылуу ") эгерде m.topic ==" medico "жана str (m.payload.decode (" utf-8 ")) ==" күйүк ": if connflag == True: mqttc.publish (" medico ", json.dumps (" MEDICOS - EMERGENCIA TERREMOTO "), qos = 1) if m.topic ==" bombeiro "жана str (m.payload.decode ("utf -8"))) == "on": if connflag == True: mqttc.publish ("bombeiro", json.dumps ("BOMBEIRO - EMERGENCIA TERREMOTO"), qos = 1) if m.topic == " тез жардам "жана көчөсү (m.payloa d.decode ("utf -8")) == "on": if connflag == True: mqttc.publish ("ambulancia", json.dumps ("AMBULANCIA - EMERGENCIA TERREMOTO"), qos = 1) if m. theme == "Emergencye" жана 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 башка: print ("Acionado") publish.single ("ACIONADO", 1, qos = 1, hostname = "172.31.83.191") gatilho = 1 hora_disparo = time.time ()+60

6 -кадам: Codigo Twitter - Мониторинг

Codigo Twitter - Мониторинг
Codigo Twitter - Мониторинг

twitter, pesquisa постторунун регистриндеги суротторду көзөмөлдөө

AWS EC2 виртуалдык системасын түзүү

п

twitter импортунан *импорттун конфигурациясын импорттоо paho.mqtt.publish катары жарыялоо

Убакытты импорттоо

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

кеңдик = -23.546211 узундук = -46.637840 alcance = 50 resultados = 1

publish.single ("twitter_alarme", "ON", хосттун аты = "34.230.74.201")

result_count = 0 last_id = Эч бир желек = 0

i үчүн диапазондо (60): #----------------------------------------- ------------------------------ # кеңдикке жана узундукка негизделген издөө жүргүзүү # twitter API docs: https:// dev. twitter.com/rest/reference/get/search… #------------------------------------- ---------------------------------- аракет: query = twitter.search.tweets (q = "#Terremoto"), геокод = " %f, %f, %dkm" %(кеңдик, узундук, альцанс), max_id = last_id) басып чыгаруу ("leu")

тышкары: басып чыгаруу ("erro acesso twitter") тыныгуу

сурамдын натыйжасы үчүн ["статустар"]:

#------------------------------------------------- ---------------------- # геолокациясы бар болсо гана натыйжаны иштетет # ----------------- -------------------------------------------------- ---- if result ["geo"]: result_count += 1 last_id = result ["id"] sleep (1) if result_count == resultados: flag += 1 publish.single ("twitter_alarme", "ON", хосттун аты = "34.230.74.201") publish.single ("twitter", "TERREMOTO - DETECTADO", хосттун аты = "34.230.74.201") тыныгуу

7 -кадам: Estrutura AWS

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

AWS EC2 менен иштөө виртуалдык технологияларды колдонууга мүмкүндүк берет

AWS IOT CORE программасы MQTT конфигурациясын ачуу үчүн колдонулат.

AWS SNS үчүн колдонулган темалар AWS IOT CORE менен иштейт.

Сунушталууда: