Mündəricat:
- Addım 1: Dragonbord 410c - Publicação Dos Sensores - Analogicos
- Addım 2: Sensores Digitais - Publicação
- Addım 3: Codigo Para Acionamento Sirene
- Addım 4: Codigo Twitter - Göndər
- Addım 5: Centro De Comando
- Addım 6: Codigo Twitter - Monitoração
- Addım 7: Estrutura AWS
Video: Centro De Comando Yeniləşənlər - Erupção De Vulcão E Terremotos: 7 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
İstifadəçi məlumatlarını internetdən əldə etmək üçün istifadə edilə bilər, bu da IOT -un temperatura, luminosidade, oscilânãoo de desenstres de desastres naturais, internet üzərindən istifadə edilə bilər. Əlaqə üçün heç bir əlaqə qurulmamışdır.
Mümkün qədər çox məlumat əldə etmək mümkün deyilsə, bu məlumatların avtomatik olaraq avtomatik olaraq avtomatik olaraq yerləşdirilməsi də mümkündür. Bu, çox vacib bir məsələdir.
SMS -lər, müştəri məlumatları, e -poçt, sirr və e -poçt mesajları ilə əlaqə saxlaya bilərsiniz.
AWS daxil olmaqla IOT CORE, EC2 və SNS daxil olmaqla, bir layihə hazırlayacaqsınız.
DragonBord 410c sensorlar
Android mqtt müştəriləri
Python ilə əlaqəli tapşırıqlar
Avtomobil:
Diego Fernandes dos Santos - [email protected]
Gabriel Piovani Moreira dos Santos - [email protected]
Gustavo Venancio Luz - [email protected]
Paulo Henrique Almeida Santos - [email protected]
Addım 1: Dragonbord 410c - Publicação Dos Sensores - Analogicos
Ümumi məlumatların təhlili ilə əlaqədar olaraq, temperaturun və temperaturun ölçülməsi üçün lazım olan bütün məlumatların müəyyən edilməsi, məlumatların qəbulu və qurulması ilə əlaqədardır.
Əməliyyatlar bir neçə gündən sonra dayandırıla bilər.
Bu proqramlar 60 -a qədər geri qayıtdıqdan sonra, 20 -dən çoxunu aşkar etmək üçün yeni proqramlar açılır.
dragon borad 410c üçün rodando proqramı
#!/usr/bin/python3import spidev from libsoc import gpio idxalı yuxudan.
# MOSQUITTO paho.mqtt.client -i mqtt kimi idxal edin
spi = spidev. SpiDev () spi.open (0, 0) spi.max_speed_hz = 10000 spi.mode = 0b00 spi.bits_per_word = 8
#ADC1 portunu istifadə edin channel_select1 = [0x01, 0x80, 0x00]
#ADC2 portunu istifadə etmək üçün kanal_select2 konfiqurasiyasından istifadə edin = [0x01, 0xA0, 0x00]
def on_connect (mqttc, obj, bayraqlar, rc): çap ("rc:" + str (rc))
def on_message (mqttc, obj, msg): çap (msg.topic + "" + str (msg.qos) + "" + str (msg.payload))
def on_publish (mqttc, obj, mid): print ("Mesaj Id:" + str (mid) + "\ n") keç
# Criamos və ya müştəri konfiqurasiya etmək üçün mqttc = mqtt. Client ()
mqttc.on_message = on_message mqttc.on_connect = on_connect mqttc.on_publish = on_publish
pub = mqtt. Client ("qrupo3")
# Conexao com localhost, bu zaman testlər ən yaxşı şəkildə aparılır. broker_address = "34.230.74.201"
pub.connect (broker_adress)
_ adı _ == '_ ana_' olarsa: gpio_cs = gpio. GPIO (18, gpio. DIRECTION_OUTPUT)
gpio.request_gpios ([gpio_cs]) ilə: 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_selcs._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 çap ("Temperatura: % f / n" % adc_value) pub.publish ("temperatura", str (adc_value)) # həyəcan siqnalı, son test + 5%
əgər adc_value_old == 0: adc_value_old = adc_value əgər adc_value> (adc_value_old*1.05): pub.publish ("ALARME", "ON") çap ("Alarmado temperatura") adc_value_old = adc_value yuxu (1)
gpio_cs.set_high () yuxu (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_value2 | (rx [2] & 0xff) adc_value2 = adc_value2 /10 çap ("Luminosidade: % f / n" % adc_value2) pub.publish ("luminosidade", str (adc_value2))
# həyəcan siqnalı, son test + 50%
əgər adc_value2_old == 0: adc_value2_old = adc_value2 əgər adc_value2> (adc_value2_old*1.5): pub.publish ("ALARME", "ON") yazdır ("Alarmado Luminosidade") adc_value2_old = adc_value2 yuxu (3)
Addım 2: Sensores Digitais - Publicação
código para publicação dos senses digits
Səs -küy sarsıldıqda və ya simulyasiya edildikdə, bu sistemin bütün funksiyalarını müəyyən edə bilərsiniz.
bir anomaliya və ya bir anormallıq aşkar edildikdə, geriyə və ya geri qayıtmaq lazımdır.
dragon borad 410c üçün rodando proqramı
libsoc_zero. GPIO idxal düyməsindən libsoc_zero. GPIO idxalı Mqtt idxal sys olaraq paho.mqtt.client idxalı yuxudan idxal zamandan yatır
def on_connect (mqttc, obj, bayraqlar, rc): çap ("Conectado" + str (rc))
def on_message (mqttc, obj, msg): çap (msg.topic + "" + str (msg.qos) + "" + str (msg.payload))
def on_publish (mqttc, obj, mid): # print ("Mesaj Id:" + str (mid) + "\ n") keç
def detectaTilt (): count = 0 sleep_count = 0 True isə: cəhd edin: tilt.wait_for_tilt (1) istisna olmaqla: sleep_count += 1 başqa: count += 1 sleep_count += 1 if sleep_count> 999: break
print ("say:", say) əgər say> 200: pub = mqttc.publish ("TERREMOTO", "ON") pub = mqttc.publish ("SISMOGRAFO", str (count)) # Müştəri və ya müştərilərə müraciət edin configuracoes mqttc = mqtt. Client ()
mqttc.on_message = on_message mqttc.on_connect = on_connect mqttc.on_publish = on_publish
mövzu = "qrupo3"
# Conexao com localhost, bu zaman testlər ən yaxşı şəkildə aparılır. mqttc.connect ("34.230.74.201", 1883)
əymək = əymək ('GPIO-A')
btn = Düymə ('GPIO-C')
while True: sleep (0.25) detectaTilt () if btn.is_pressed (): pub = mqttc.publish ("PANICO", "ON") print ("Botao ON") yuxu (1) pub = mqttc.publish ("PANICO) "," OFF ") # başqa: # pub = mqttc.publish (" PANICO "," OFF ") # çap (" Botao OFF ")
Addım 3: Codigo Para Acionamento Sirene
SIRENE üçün əsas proqramlar, dragon board 410c üçün proqram təminatı.
# MOSQUITTOimport paho.mqtt.client olaraq mqtt olaraq # comunicacao ilə əlaqə qurun
libsoc_zero. GPIO idxal LED-dən vaxt idxalı yuxu led = LED ('GPIO-E') #led.off ()
# On_connect (müştəri, obj, bayraqlar, rc) ilə əlaqəli məlumatları təyin edin: çap edin ("ConexÃƒÆ £ £ təsis etmək üçün broker")
# On_message (müştəri, obj, mesaj) defa bir alıcı təyin edin: çap edin ("LED" + str (message.payload.decode ("utf-8"))) əgər str (message.payload.decode ("utf-8"))) == "on": print ("Sirene ligada") led.on () else: print ("Sierene apagada") led.off ()
# IP broker broker_address = "34.230.74.201"
# Müştəri sub = mqtt. Client ("qrupo3")
sub.connect (broker_adress)
sub.on_message = on_message sub.on_connect = on_connect
# Sub.subbone olmaq üçün heç bir mövzu artırmayın ("SIRENE", qos = 0)
# Loop para escuta sub.loop_forever ()
Addım 4: Codigo Twitter - Göndər
Təcili olaraq həyəcan siqnalını twitter -də paylaşın.
AWS EC2 -də virtual idarəetmə sistemləri
#!/usr/bin/env python #---------------------------------------- ------------------------------- # twitter-post-status #-zaman çizelgenize bir status mesajı göndərir # --- -------------------------------------------------- ------------------ import paho.mqtt.subunə olaraq abunə olun
idxal vaxtı
twitter idxalından *
#------------------------------------------------- ---------------------- # yeni statusumuz nə olmalıdır? #------------------------------------------------- ---------------------- new_status = "#Terremoto Procure proqram təminatı-test"
#------------------------------------------------- ---------------------- # API etimadnaməmizi yükləyin # ---------------------- ------------------------------------------------ idxal sys sys.path.append (".") idxal konfiqurasiyası
#------------------------------------------------- ---------------------- # twitter API obyekti yaradın # ---------------------- ------------------------------------------------ twitter = Twitter (auth = OAuth ('senha removida))
#------------------------------------------------- ---------------------- # yeni bir status göndər # twitter API sənədləri: https://dev.twitter.com/rest/reference/post/statu… #------------------------------------------------- ----------------------
1: m = abunə olun.sadə ("twitteralarme", hostname = "172.31.83.191", saxlanılan = Yanlış) əgər m.topic == "twitteralarme" və str (m.payload.decode ("utf-8")) == "açıq": nəticələr = twitter.statuses.update (status = (new_status)+str (time.time ())) # print ("updated status: % s" % new_status)
Addım 5: Centro De Comando
təlimatlar və ya təlimatlar istifadəçilər üçün ən çox məlumat əldə etmək üçün əlinizdən gələni edin. Əməliyyat sistemini yoxlayın və ya işinizi yoxlayın.
İstifadəçilərin bütün işləri Android -də, telefonda və ya mərkəzi telefonda edilə bilər.
AWS EC2 -də virtual idarəetmə sistemləri
paho.mqtt.client pahoimport paho.mqtt.subone olaraq abunə ol idxal paho.mqtt.pub olaraq nəşr et idxal json idxal vaxt idxal et idxal yuxudan altı idxal ssl
mövzular = ['#']
gatilho = 0 hora_disparo = 0 nəşr.single ("ACIONADO", "OFF", qos = 1, hostname = "172.31.83.191") publish.single ("sensor1", "OFF", qos = 1, hostname = "172.31).83.191 ") dərc edin.single (" sensor2 "," OFF ", qos = 1, hostname =" 172.31.83.191 ")
connflag = Yanlış
def on_connect (müştəri, istifadəçi məlumatları, bayraqlar, rc): qlobal connflag connflag = Əsl çap (connflag) çapı ("Bağlantı nəticə verdi:" + str (rc))
def on_message (müştəri, istifadəçi məlumatları, msg): # çap ("teste") çap (msg.topic+""+str (msg.payload))
def on_log (müştəri, istifadəçi məlumatları, səviyyə, buf): çap (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_TLSvcone, mttt), keepalive = 60) mqttc.loop_start ()
while 1: hora = time.time () yuxu (.1) dərc.single ("LEDTERREMOTO", "on", qos = 1, hostname = "172.31.83.191")
# if connflag == Doğru: # mqttc.publish ("mesaj", json.dumps ({'mesaj': "TERREMOTO"}), qos = 1) əgər gatilho == 1: publish.single ("TEMPO", str (yuvarlaq (hora_disparo-hora, 0)), qos = 1, hostname = "172.31.83.191") publish.single ("LEDTERREMOTO", "on", qos = 1, hostname = "172.31.83.191") başqa: dərc edin.single ("TEMPO", "99", qos = 1, hostname = "172.31.83.191") # print ("") if (hora> hora_disparo) və (gatilho == 1): # print ("TERREMOTO") # print (connflag) if connflag == Doğru: # mqttc.publish ("mesaj", json.dumps ({'mesaj': "TERREMOTO"}), qos = 1) # mqttc.publish ("mesaj", "TERREMOTO") ", qos = 1) mqttc.publish (" mesaj ", json.dumps (" TERREMOTO - UMA ZONA SEGURA PROCURE "), 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 ") dərc et.single (" ACIONADO "," OFF ", qos = 1, hostname =" 172.31.83.191 ")) publish.single ("twitteralarme", "on", qos = 1, hostname = "172.31.83.191") dərc et.single ("twitter", "TERREMOTO - PROCURE UMA ZONA SEGURA", qos = 1, hostname = "172.31).83.191 ") gatilho = 0 yuxu (5) m = abunə olun. Sadə (mövzular, ana adı =" 172.31.83.191 ", saxlanılan = Yanlış), əgər m.topic ==" ACIONADO "və str (m.payload.decode (" utf-8 ")) ==" OFF ": gatilho = 0 print (" ləğv ") əgər m.topic ==" medico "və str (m.payload.decode (" utf-8 ")) ==" on ": əgər connflag == Doğru: mqttc.publish (" medico ", json.dumps (" MEDICOS - EMERGENCIA TERREMOTO "), qos = 1) if m.topic ==" bombeiro "və str (m.payload.decode ("utf -8"))) == "on": əgər connflag == Doğru: mqttc.publish ("bombeiro", json.dumps ("BOMBEIRO - EMERGENCIA TERREMOTO"), qos = 1) əgər m.topic == " təcili yardım "və str (m.payloa d.decode ("utf -8")) == "on": əgər connflag == Doğru: mqttc.publish ("ambulansiya", json.dumps ("AMBULANSİYA - EMERGENCIA TERREMOTO"), qos = 1) əgər m. mövzu == "təcili" və str (m.payload.decode ("utf-8")) == "on": publish.single ("ACIONADO", 1, qos = 1, ana adı = "172.31.83.191") gatilho = 1 hora_disparo = time.time ()+5 əgər str (m.payload.decode ("utf-8")) == "ON": gatilho == 1 olarsa: print ("acelerado 20") hora_disparo = hora_disparo -20 başqa: print ("Acionado") publish.single ("ACIONADO", 1, qos = 1, hostname = "172.31.83.191") gatilho = 1 hora_disparo = time.time ()+60
Addım 6: Codigo Twitter - Monitoração
twitter və ya sorocabada yazılan mesajları izləyin
AWS EC2 -də virtual idarəetmə sistemləri
n
twitter idxalından *idxal konfiqurasiya idxalı paho.mqtt.publish olaraq yayımlayın
vaxtdan idxal yuxu
twitter = Twitter (auth = OAuth (config.access_key, config.access_secret, config.consumer_key, config.consumer_secret))
Enlem = -23.546211 Boylam = -46.637840 alcance = 50 nəticəados = 1
publish.single ("twitter_alarme", "ON", ana bilgisayar adı = "34.230.74.201")
result_count = 0 last_id = Bayraq yoxdur = 0
i üçündür (60): #----------------------------------------- ------------------------------ # Enlem və Boylam əsasında bir axtarış aparın # twitter API sənədləri: https:// dev. twitter.com/rest/reference/get/search… #------------------------------------- ---------------------------------- cəhd edin: sorğu = twitter.search.tweets (q = "#Terremoto"), coğrafi kod = " %f, %f, %dkm" %(enlem, boylam, alcance), max_id = last_id) çap ("leu")
istisna olmaqla: çap ("erro acesso twitter") fasilə
sorğu ilə nəticələnmək üçün ["statuslar"]:
#------------------------------------------------- ---------------------- # nəticəni yalnız coğrafi mövqeyə malik olduqda emal edin # ----------------- -------------------------------------------------- ---- əgər nəticə ["coğrafi"]: nəticə_sayı += 1 son_id = nəticə ["id"] yuxu (1) əgər nəticə_sayı == nəticə nəticələri: bayraq += 1 nəşr.single ("twitter_alarme", "ON", hostname = "34.230.74.201") publish.single ("twitter", "TERREMOTO - DETECTADO", ana adı = "34.230.74.201") fasilə
Addım 7: Estrutura AWS
AWS EC2 ilə virtual şəbəkə qurmaq üçün istifadə edin
AWS IOT CORE istifadə edərək MQTT -ni konfiqurasiya etmək üçün bu məlumatları istifadə edin.
AWS SNS ilə əlaqədar mövzular AWS IOT CORE ilə əlaqədardır
Tövsiyə:
Arduino Avtomobil Ters Park Diqqət Sistemi - Addım -addım: 4 addım
Arduino Avtomobil Ters Park Diqqət Sistemi | Addım-addım: Bu layihədə, Arduino UNO və HC-SR04 Ultrasonik Sensoru istifadə edərək sadə bir Arduino Car Reverse Park Sensor Dövrü dizayn edəcəyəm. Bu Arduino əsaslı Avtomobil Ters siqnal sistemi Avtonom Naviqasiya, Robot Aralığı və digər diapazonlarda istifadə edilə bilər
Addım -addım PC qurulması: 9 addım
Addım -addım PC Bina: Təchizat: Təchizat: MotherboardCPU & CPU soyuducu PSU (Enerji təchizatı vahidi) Yaddaş (HDD/SSD) RAMGPU (tələb olunmur) Kassa Alətləri: Tornavida ESD bilərzik/mattermal pasta/aplikator
Comando Por Voz - DragonBoard410c: 5 addım
Comando Por Voz - DragonBoard410c: İstifadəçi tərəfindən dəstəklənir; Julius junto ilə Coruja proqramının qurulması və qurulması, Portuqaliya stikosundakı proqramların yenidən qurulması və yenidən qurulması ilə əlaqədardır
Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım
Arduino Uno ilə Akustik Levitasiya Adım Adım (8 addım): ultrasəs səs ötürücüləri L298N Dc dişi qadın adapteri kişi dc pinli Arduino UNOBreadboard Bu necə işləyir: Əvvəlcə Arduino Uno-ya kod yükləyirsiniz (rəqəmsal ilə təchiz edilmiş bir mikro nəzarətçidir) və kodu çevirmək üçün analog portlar (C ++)
Centro De Cómputo Para Niños Con Raspberry Pi: 7 addım
Raspberry Pi ilə əlaqəli Centro De Cómputo: Raspberry Pi 2, USB Rəqəmsal Micro SD (8 gb), HDMI Cargador Siçovul və Taclad; komplektləşdirmək üçün Kit kitabçası