Агуулгын хүснэгт:

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

Видео: Centro De Comando Explorencias - Erupção De Vulcão E Terremotos: 7 алхам

Видео: Centro De Comando Explorencias - Erupção De Vulcão E Terremotos: 7 алхам
Видео: БОЛЬШОЙ ВЗРЫВ! Украинские силы взорвали два российских командных пункта! 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 de temperatura, luminosidade, oscilânão (интернэт). Твиттер, аппликэйшн нь ямар ч мэдээлэл өгөхгүй байх боломжийг олгодог.

Өөр өөр боломжууд байгаа бол энэ нь автоматаар хийгдэх болно. Энэ нь маш чухал үүрэг гүйцэтгэдэг.

Мэдээлэл, мессеж, үйлчлүүлэгчийн мктт, имэйл, sirene, twitter -ийг ашиглаарай.

AWS, IOT CORE, EC2 e 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

Тайлбарыг буцааж англи (Америкийн Нэгдсэн Улс) руу орчуулах уу?

Тэмдэглэл нь ямар ч асуудалгүй болсны дараа дахин ажиллах боломжтой болно.

Энэ нь 60 -аас дээш тооны регрессийн жагсаалт, 20 -оос дээш насны хүүхдүүдийг илрүүлэх боломжийг олгоно.

програм rodando dentro da dragon borad 410c

#!/usr/bin/python3import spidev from libsoc import gpio импортын цаг унтахаас.

# Importa lib para comunicacao com MOSQUITTO paho.mqtt.client -ийг mqtt хэлбэрээр импортлох

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

#ADC1 сувгийг сонгоно уу_select1 = [0x01, 0x80, 0x00]

ADC2 портыг ашиглахдаа суваг_сонгох тохиргоог ашиглаарай = = 0x01, 0xA0, 0x00]

def on_connect (mqttc, obj, flags, rc): хэвлэх ("rc:" + str (rc))

def on_message (mqttc, obj, msg): хэвлэх (msg.topic + "" + str (msg.qos) + "" + str (msg.payload))

def on_publish (mqttc, obj, mid): хэвлэх ("Message Id:" + str (mid) + "\ n") pass

# Criamos o үйлчлүүлэгч e setamos тохиргоонууд 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, labra -гийн туршилтын програмууд. 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 () sleep (0.00001) gpio_cs.set_low () rx = spi.xfer (channel_selects.) gx) 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)) # 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") хэвлэх ("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 = contador + 1 adc_value2 = (rx [1] << 8) & 0b1100000000 adc_value2 = зар (rx [2] & 0xff) adc_value2 = adc_value2 /10 хэвлэх ("Luminosidade: % f / n" % adc_value2) pub.publish ("luminosidade", str (adc_value2))

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

хэрэв adc_value2_old == 0: adc_value2_old = adc_value2 бол adc_value2> (adc_value2_old*1.5): pub.publish ("ALARME", "ON") хэвлэх ("Alarmado Luminosidade") adc_value2_old = adc_value2 унтах (3))

Алхам 2: Digoresis Sensores - Publicação

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

código para publicação dos sensores digitalis

Мэдрэмжийг олж мэдэхийн тулд чичирхийлэл, симуляцийн хэлбэр, хэтэрхий их зүйлийг мэдэх боломжтой болно.

аномалия эсвэл боть деформацид орох боломжтой.

програм rodando dentro da dragon borad 410c

libsoc_zero. GPIO импортлох товчлуураас libsoc_zero. GPIO импортлох Цаг хугацааны импорт унтах импорт paho.mqtt.client mqtt импорт sys хэлбэрээр

def on_connect (mqttc, obj, flags, rc): хэвлэх ("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 бол 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

сэдэв = "grupo3"

# Conexao com localhost, labra -гийн шалгалтууд. mqttc.connect ("34.230.74.201", 1883)

хазайлт = хазайлт ('GPIO-A')

btn = Товчлуур ('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 ") # өөр: # pub = mqttc.publish (" PANICO "," OFF ") # хэвлэх (" Botao OFF ")

Алхам 3: Кодиго Пара Акионаменто Сирене

Кодиго Пара Акионаменто Сирене
Кодиго Пара Акионаменто Сирене

SIRENE програм хангамжийн дэд анги, луу самбар 410c програм хангамж.

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

libsoc_zero. GPIO импортын LED нь импортын цаг унтраалтаас LED = LED ('GPIO-E') #led.off ()

# O_connect (үйлчлүүлэгч, obj, туг, rc) -ыг тодорхойлох

# Тодорхойл o_ fazer ao хүлээн авагч uma mensagem def on_message (клиент, обж, мессеж): хэвлэх ("LED" + str (message.payload.decode ("utf-8"))) хэрэв str (message.payload.decode ("utf-8"))) == "on": print ("Sirene ligada") led.on () other: print ("Sierene apagada") led.off ()

# IP do broker broker_address = "34.230.74.201"

# Cria o cliente sub = mqtt. Client ("grupo3")

дэд холболт (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.subscribe дарж бүртгүүлээрэй

импортлох хугацаа

twitter импортоос *

#------------------------------------------------- ---------------------- # бидний шинэ статус ямар байх ёстой вэ? #------------------------------------------------- ---------------------- new_status = "#Terremoto Procure uma zona segura-teste"

#------------------------------------------------- ---------------------- # манай API итгэмжлэлийг ачаална # ---------------------- ------------------------------------------------ импорт sys sys.path.append (".") импортын тохиргоог хийнэ үү

#------------------------------------------------- ---------------------- # twitter API объект үүсгэх # ---------------------- ------------------------------------------------ twitter = Твиттер (auth = OAuth ('senha removida)))

#------------------------------------------------- ---------------------- # шинэ статус оруулах # twitter API docs: https://dev.twitter.com/rest/reference/post/statu… #------------------------------------------------- ----------------------

while 1: m = subscribe.simple ("twitteralarme", hostname = "172.31.83.191", хадгалагдсан = Худал), хэрэв m.topic == "twitteralarme" ба str (m.payload.decode ("utf-8")) == "on": үр дүн = twitter.statuses.update (status = (new_status)+str (time.time ())) # хэвлэх ("шинэчлэгдсэн байдал: % s" % new_status)

Алхам 5: Centro De Comando

Центро Де Командо
Центро Де Командо

semper que acionado um dispositivo гарын авлага эсвэл гарын авлага Detectado um alerta manual to usuário é acionada uma contagem regressiva para envio de mensagem. O operador pode cancelar o envio ou acionar o envio imediato do alerta.

Хяналтын самбарыг ашиглахын тулд андройд утас хийх боломжтой бөгөөд энэ нь компьютерийн төв болон командын хооронд хийгддэг.

AWS EC2 дээр виртуал програмыг ашиглах боломжтой

paho.mqtt.client импортлох paho.mqtt.subscribe гэж бүртгүүлэх импорт paho.mqtt.publish as нийтлэх импорт

сэдэв = ['#']

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 = Худал

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 ()

while 1: hora = time.time () sleep (.1) publish.single ("LEDTERREMOTO", "on", qos = 1, hostname = "172.31.83.191")

# if connflag == Үнэн: # 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") нийтлэх.single ("twitter", "TERREMOTO - PROCURE UMA ZONA SEGURA", qos = 1, hostname = "172.31.83.191 ") gatilho = 0 унтах (5) m = захиалга хийх utf-8 ")) ==" OFF ": gatilho = 0 хэвлэх (" цуцлах ") хэрэв m.topic ==" medico "ба str (m.payload.decode (" utf-8 ")) ==" асаалттай байвал ": хэрэв connflag == Үнэн бол: mqttc.publish (" medico ", json.dumps (" MEDICOS - EMERGENCIA TERREMOTO "), qos = 1) m.topic ==" bombeiro "ба str (m.payload.decode ("utf -8"))) == "on": if connflag == Үнэн: mqttc.publish ("bombeiro", json.dumps ("BOMBEIRO - EMERGENCIA TERREMOTO"), qos = 1) хэрэв m.topic == " түргэн тусламж "болон str (m.payloa d.decode ("utf -8")) == "on": if connflag == True: mqttc.publish ("ambulancia", json.dumps ("AMBULANCIA - EMERGENCIA TERREMOTO"), qos = 1) if m. сэдэв == "яаралтай" ба str (m.payload.decode ("utf-8")) == "дээр": publish.single ("ACIONADO", 1, qos = 1, хостын нэр = "172.31.83.191") gatilho = 1 hora_disparo = time.time ()+5 бол 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 - Monitoração

Кодиго Твиттер - Хяналт
Кодиго Твиттер - Хяналт

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

AWS EC2 дээр виртуал програмыг ашиглах боломжтой

n

twitter импортоос *импорт тохиргооны импорт paho.mqtt.pub нийтлэх

цагаас эхлэн унтах

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

өргөрөг = -23.546211 уртраг = -46.637840 alcance = 50 үр дүнados = 1

publish.single ("twitter_alarme", "ON", hostname = "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 = сүүлийн_ид) хэвлэх ("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

Эструтура AWS
Эструтура AWS
Эструтура AWS
Эструтура AWS
Эструтура AWS
Эструтура AWS

AWS EC2 програмыг ашиглан виртуал сүлжээг ашиглах боломжтой

AWS IOT CORE -ийг ашиглахын тулд MQTT -ийг тохируулахын тулд тохиргоог хийж болно.

AWS SNS -ийг ашиглах үндсэн сэдэв нь AWS IOT CORE юм.

Зөвлөмж болгож буй: