Мазмуну:
- 1 -кадам: Dragonbord 410c - Publicação Dos Sensores - Analogicos
- 2 -кадам: Sensores Digitais - Publicação
- 3 -кадам: Codigo Para Acionamento Sirene
- 4 -кадам: Codigo Twitter - Пост
- 5 -кадам: Centro De Comando
- 6 -кадам: Codigo Twitter - Мониторинг
- 7 -кадам: Estrutura AWS
Video: Centro De Comando Explorencias - Erupção De Vulcão E Terremotos: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Колдонуу шарттары интернет -ресурстар менен камсыз кылынат, ошондой эле 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
Аналогико публикацио дос сенсор аналогико, 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
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
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 - Пост
Коомчулуктун алдында твиттерди ачуу үчүн.
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
колдонмону аныктоо үчүн колдонмону колдоно аласыз. Оператор пода канцелярия ал энвио же акионар ал эндио дед алтерта.
Диск тактасы колдонулганда, андроид телефонду иштетүү үчүн борбордук жана командалык операцияларды аткарат.
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 - Мониторинг
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
AWS EC2 менен иштөө виртуалдык технологияларды колдонууга мүмкүндүк берет
AWS IOT CORE программасы MQTT конфигурациясын ачуу үчүн колдонулат.
AWS SNS үчүн колдонулган темалар AWS IOT CORE менен иштейт.
Сунушталууда:
Кантип кадам эсептегич жасоо керек?: 3 кадам (сүрөттөр менен)
Step Counter кантип жасалат ?: Мен көптөгөн спортто жакшы аткарчумун: жөө басуу, чуркоо, велосипед тебүү, бадминтон ойноо ж.б. Мейли, менин ичимди карачы ……. Ооба, баары бир мен машыгуу үчүн кайра баштоону чечтим. Мен кандай жабдыктарды даярдашым керек?
IPodдо Doomду 5 жеңил кадам менен ойноңуз !: 5 кадам
Doom'ду IPodдо 5 жеңил кадам менен ойноңуз!: Doom жана башка ондогон оюндарды ойноо үчүн iPod'уңузда Rockboxту кантип кош жүктөө керектиги боюнча этап-этабы менен көрсөтмө. Бул чындыгында оңой нерсе, бирок менин iPodдо кыйроо ойноп жатканымды көргөндөрдүн көбү дагы эле таң калышат жана көрсөтмө менен чаташып кетишет
Comando Por Voz - DragonBoard410c: 5 кадам
Comando Por Voz - DragonBoard410c: Este guia ir á Конфигурациялоо программасы Юлий юнто кому Coruja, que ã o programue de rechecimento de rechecimento de voz e o modelo acico uacute; stico em Portugu ê s a vantagem da utiliza ç & doilde Ju
Акустикалык левитация Arduino Uno менен кадам-кадам (8-кадам): 8 кадам
Акустикалык левитация менен Arduino Uno Step-by-Step (8-кадам): ультрадыбыштуу үн өткөргүчтөр L298N Dc аял адаптеринин электр энергиясы менен камсыздоосу эркек токту Arduino UNOBreadboard Бул кантип иштейт: Биринчиден, сиз Arduino Uno кодун жүктөп бересиз (бул санарип менен жабдылган микроконтроллер) жана аналогдук порттор кодду айландыруу үчүн (C ++)
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 адаптер жана micro USB Tarjeta micro SD (8 Гб) кабели HDMI Cargador Rat ó n Teclado para үчүн comp en compartadora en conto con un un Kitio inicio