Агуулгын хүснэгт:
- Алхам 1: Dragonbord 410c - Publicação Dos Sensores - Analogicos
- Алхам 2: Digoresis Sensores - Publicação
- Алхам 3: Кодиго Пара Акионаменто Сирене
- Алхам 4: Codigo Twitter - Бичлэг хийх
- Алхам 5: Centro De Comando
- Алхам 6: Codigo Twitter - Monitoração
- Алхам 7: Estrutura AWS
Видео: Centro De Comando Explorencias - Erupção De Vulcão E Terremotos: 7 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Боловсруулах үйлчилгээ нь интернэт сүлжээнд ашиглах боломжтой, 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
Тайлбарыг буцааж англи (Америкийн Нэгдсэн Улс) руу орчуулах уу?
Тэмдэглэл нь ямар ч асуудалгүй болсны дараа дахин ажиллах боломжтой болно.
Энэ нь 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
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 - Бичлэг хийх
Олон нийтийн мэдээллийн хэрэгслээр дамжуулан түгшүүрт холбогдож болно.
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 EC2 програмыг ашиглан виртуал сүлжээг ашиглах боломжтой
AWS IOT CORE -ийг ашиглахын тулд MQTT -ийг тохируулахын тулд тохиргоог хийж болно.
AWS SNS -ийг ашиглах үндсэн сэдэв нь AWS IOT CORE юм.
Зөвлөмж болгож буй:
Ухаалаг мотоциклийн HUD прототип (алхам алхмаар навигаци хийх гэх мэт): 9 алхам
Ухаалаг мотоциклийн HUD прототип (ээлжлэн навигаци хийх гэх мэт): Сайн байна уу! Энэхүү зааварчилгаа нь миний мотоциклийн дуулга дээр суурилуулах зориулалттай HUD (Heads-Up Display) платформыг хэрхэн бүтээж, бүтээсэн тухай түүх юм. Үүнийг " газрын зураг " уралдааны хүрээнд бичсэн болно. Харамсалтай нь би үүнийг бүрэн дуусгаж чадаагүй
Comando Por Voz - DragonBoard410c: 5 алхам
Comando Por Voz - DragonBoard410c: Este guia ir á Julius junto com o Coruja програмыг тохируулах програмыг сонгож аваарай, тэр нь "Португалийн стико эмоцио" програмыг дагаж мөрдөхөд туслах болно
Arduino Uno ашиглан акустик левитаци Алхам алхам (8 алхам): 8 алхам
Arduino Uno-тай акустик Levitation Алхам алхамаар (8 алхам): хэт авианы дууны дамжуулагч L298N Dc эмэгтэй адаптерийн эрэгтэй тэжээлийн тэжээлийн хангамж Arduino UNOBreadboard Энэ нь хэрхэн ажилладаг вэ: Нэгдүгээрт, та кодыг Arduino Uno-д байршуулдаг (энэ нь дижитал төхөөрөмжөөр тоноглогдсон микроконтроллер юм. кодыг хөрвүүлэх аналог портууд (C ++)
DIY Arduino робот гар, Алхам алхам: 9 алхам
DIY Arduino робот гар, алхам алхмаар: Эдгээр заавар нь танд робот гарыг хэрхэн яаж хийхийг зааж өгөх болно
Centro De Cómputo Para Niños Con Raspberry Pi: 7 алхам
Raspberry Pi Centro De Cómputo Para Niños Con Raspberry Pi: Raspberry Pi 2 Adaptador de micro USB Tarjeta micro SD (8 gb) кабель HDMI Cargador Rat ó n Teclado пара. ComputadoraEn Kit de inicio