Სარჩევი:
- ნაბიჯი 1: Dragonbord 410c - Publicação Dos Sensores - Analogicos
- ნაბიჯი 2: Sensores Digitais - Publicação
- ნაბიჯი 3: Codigo Para Acionamento Sirene
- ნაბიჯი 4: Codigo Twitter - გამოქვეყნება
- ნაბიჯი 5: ცენტრო დე კომანდო
- ნაბიჯი 6: Codigo Twitter - Monitoração
- ნაბიჯი 7: Estrutura AWS
ვიდეო: Centro De Comando Emergencias - Erupção De Vulcão E Terremotos: 7 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
ინტერნეტის გაცნობის მიზნით, არსებობს ინტერნეტის გაცნობის წყაროები, რომლითაც შესაძლებელია გამოვიყენოთ აკონდიცირებული სტრესული ტემპერატურის IOT ტემპერატურის, სინათლის, oscilação (. Tilte) e botã. ეს არის არაინტენსიური კოლაბორაციული გადაცემა, რომელიც მოიცავს ტვიტერს და აპლიკაციებს, რომლებიც მხარს უჭერენ სიფხიზლეს.
Diante a possibilidade de diversos meios de entrada na solução, caberá um centre de de operações avaliar se informacão esta correta evitando assim falsos-positivos dos dispositivos automatisado e avaliar a possibilidade de fakenews. Tal tomada de decisão is a important diante ao pânico que um alarme falso pode gerar.
გააგზავნეთ გაფრთხილების მენსტრუაცია იმის გათვალისწინებით, თუ როგორ გამოიყენოთ SMS შეტყობინებები, გააგზავნეთ მომხმარებლის კლიენტები, ელ.ფოსტა, ტვიტერი და ტვიტერი.
AWS მოიცავს IOT CORE, EC2 და SNS
Sensores da DragonBord 410c
კლიენტები android mqtt
Sendo todo desenvolvido em პითონი
ავტოები:
დიეგო ფერნანდეს დოს სანტოსი - [email protected]
გაბრიელ პიოვანი მორეირა დოს სანტოსი - [email protected]
გუსტავო ვენანსიო ლუზი - [email protected]
პაულო ანრიკე ალმეიდა სანტოსი - [email protected]
ნაბიჯი 1: Dragonbord 410c - Publicação Dos Sensores - Analogicos
Abaixo o codigo de publicação dos sensores analógicos, os sensores de temperatura e luminosidade estão configurados para que assim que detectm uma variação for fora do padrão pré estabelecido enviarem um alerta através do Protoko mqtt sinalizandand.
ეს არის სიგნალი, რომლითაც ხდება regressiva contagem regressiva que pode ser suspensa ou acelerada pelo operador.
O contador para o alerta começa contagem regressiva em 60 სხვაგან, და ძალიან ახალი სიგნალი deteca decresce o contador em 20 სეგუნდო.
programa rodando dentro da dragon borad 410c
#!/usr/bin/python3 იმპორტი spidev საწყისი libsoc იმპორტი gpio დროიდან იმპორტი ძილის
# იმპორტის წიგნი კომუნიკკაოსთვის 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
#Usando a porta ADC1 channel_select1 = [0x01, 0x80, 0x00]
#პარამ გამოიყენე პორტა ADC2 გამოიყენე ან აირჩიე კონფიგურაცია
def on_connect (mqttc, obj, flags, rc): print ("rc:" + str (rc))
def on_message (mqttc, obj, msg): print (msg.topic + "" + str (msg.qos) + "" + str (msg.payload))
def on_publish (mqttc, obj, mid): print ("Message Id:" + str (mid) + "\ n") pass
# Criamos o client e setamos suas configuracoes mqttc = mqtt. კლიენტი ()
mqttc.on_message = on_message mqttc.on_connect = on_connect mqttc.on_publish = on_publish
pub = mqtt. Client ("grupo3")
# დაათვალიერეთ 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 () sleep (0.00001) gpio_cs.set_low () rx = spi.xfer (channel_select1) gp) 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 ბეჭდვა ("ტემპერატურა: % f / n" % adc_value) pub.publish ("temperatura", str (adc_value)) # teste para acionar contador do alarme, teste ultima leitura + 5%
თუ adc_value_old == 0: adc_value_old = adc_value თუ adc_value> (adc_value_old*1.05): pub.publish ("ALARME", "ON") print ("Alarmado temperatura") adc_value_old = adc_value sleep (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") print ("Alarmado Luminosidade") adc_value2_old = adc_value2 ძილი (3)
ნაბიჯი 2: Sensores Digitais - Publicação
código para publicação dos sensores digitais
Os sensores digitais neste projeto foram o tilte que detea os tremores e o botão para simular o uso de um botão de pânico.
quando detector uma anomalia ou botão de pânico pressionado a contagem regressiva é iniciada.
programa rodando dentro da dragon borad 410c
libsoc_zero. GPIO იმპორტის ღილაკი libsoc_zero. GPIO იმპორტი Tilt დროიდან იმპორტი ძილის იმპორტი paho.mqtt.client როგორც mqtt იმპორტი sys
def on_connect (mqttc, obj, flags, rc): print ("Conectado" + str (rc))
def on_message (mqttc, obj, msg): print (msg.topic + "" + str (msg.qos) + "" + str (msg.payload))
def on_publish (mqttc, obj, mid): # print ("Message Id:" + str (mid) + "\ n") pass
def deteaTilt (): count = 0 sleep_count = 0 while True: try: tilt.wait_for_tilt (1) გარდა: sleep_count += 1 სხვა: count += 1 sleep_count += 1 თუ sleep_count> 999: შესვენება
print ("count:", count) if count> 200: pub = mqttc.publish ("TERREMOTO", "ON") pub = mqttc.publish ("SISMOGRAFO", str (count)) # Criamos o client and setamos suas კონფიგურაცია mqttc = mqtt. კლიენტი ()
mqttc.on_message = on_message mqttc.on_connect = on_connect mqttc.on_publish = on_publish
თემა = "grupo3"
# დაათვალიერეთ localhost, თქვენ უნდა შეამოწმოთ ლაბორატორიები. mqttc.connect ("34.230.74.201", 1883)
დახრა = დახრა ('GPIO-A')
btn = ღილაკი ('GPIO-C')
ხოლო True: ძილი (0.25) deteaTilt () თუ btn.is_pressed (): pub = mqttc.publish ("PANICO", "ON") print ("Botao ON") sleep (1) pub = mqttc.publish ("PANICO "," OFF ") # else: # pub = mqttc.publish (" PANICO "," OFF ") # print (" Botao OFF ")
ნაბიჯი 3: Codigo Para Acionamento Sirene
Codigo para subscrição para acionamento da SIRENE, programa rodando dentro da dragon board 410c
# იმპორტი Libra Comunicacao com MOSQUITTOimport paho.mqtt.client as mqtt
libsoc_zero. GPIO იმპორტი LED დროიდან იმპორტი ძილის led = LED ('GPIO-E') #led.off ()
# განსაზღვრეთ o que fazer ao conectar def on_connect (კლიენტი, obj, flags, rc): print ("ConexÃÆ' £ o estabelecida com broker")
# განსაზღვრეთ, თუ რა არის მიმღები uma მენეჯერი def on_message (კლიენტი, obj, შეტყობინება): print ("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 do broker broker_address = "34.230.74.201"
# Cria o cliente sub = mqtt. Client ("grupo3")
ქვე. დაკავშირება (ბროკერის_ადრესა)
sub.on_message = on_message sub.on_connect = on_connect
# არ გაზარდო თემა ქვე. გამოწერა ("SIRENE", qos = 0)
# Loop para escuta sub.loop_forever ()
ნაბიჯი 4: Codigo Twitter - გამოქვეყნება
Código para publicação do twitter assim que acionado o alarme.
ვირტუალური როდანდო ვირტუალური და AWS EC2
#!/usr/bin/env პითონი #-------------------------------------------- ---------------------------------- # twitter-post-status #-აქვეყნებს სტატუსის შეტყობინებას თქვენს ვადებს # --- ------------------------------------------------------ ------------------ იმპორტი paho.mqtt. გამოიწერე გამოწერა
იმპორტის დრო
ტვიტერის იმპორტიდან *
#----------------------------------------------------- ---------------------- # როგორი უნდა იყოს ჩვენი ახალი სტატუსი? #----------------------------------------------------- ---------------------- new_status = "#Terremoto Procure uma zona segura-teste"
#----------------------------------------------------- ---------------------- # ჩატვირთეთ ჩვენი API სერთიფიკატები # ---------------------- ---------------------------------------------------- იმპორტი sys sys.path.append (".") იმპორტი კონფიგურაცია
#----------------------------------------------------- ---------------------- # შექმნა twitter API ობიექტი # ---------------------- ---------------------------------------------------- ტვიტერი = Twitter (auth = OAuth ('senha removeida))
#----------------------------------------------------- ---------------------- # განათავსეთ ახალი სტატუსი # twitter API დოკუმენტები: https://dev.twitter.com/rest/reference/post/statu… #----------------------------------------------------- ----------------------
ხოლო 1: m = subscribe.simple ("twitteralarme", hostname = "172.31.83.191", შენარჩუნებულია = ყალბი) თუ m.topic == "twitteralarme" და str (m.payload.decode ("utf-8")) == "ჩართული": results = twitter.statuses.update (status = (new_status)+str (time.time ())) # print ("განახლებული სტატუსი: % s" % new_status)
ნაბიჯი 5: ცენტრო დე კომანდო
გაეცანით, თუ როგორ უნდა განვმარტოთ სახელმძღვანელო ან გამოვაჩინოთ ჩვენი გაფრთხილება სახელმძღვანელო, თუ ჩვენ გამოვიყენებთ ჩვენს კონტაქტს რეგრესიას გარემოს დაცვისთვის. O operador pode cancerlar o envio ou acionar o envio imediato do alerta.
ჩვენ შეგვიძლია გამოვიყენოთ დაფის გამოყენება ანდროიდისთვის და შევასრულო ტელეფონი, რათა შევასრულო ოპერაციის ცენტრის კომანდო.
ვირტუალური როდანდო ვირტუალური და AWS EC2
იმპორტი paho.mqtt.client როგორც pahoimport paho.mqtt. გამოწერა გამოიწერე გამოწერა იმპორტი paho.mqtt. გამოქვეყნება გამოქვეყნების იმპორტის json იმპორტის დრო იმპორტის ექვს იმპორტის ssl დროიდან იმპორტის ძილი
თემები = ['#']
gatilho = 0 hora_disparo = 0 გამოქვეყნება. ერთი ("ACIONADO", "OFF", qos = 1, hostname = "172.31.83.191") published.single ("sensor1", "OFF", qos = 1, hostname = "172.31.83.191 ") published.single (" sensor2 "," OFF ", qos = 1, hostname =" 172.31.83.191 ")
connflag = ყალბი
def on_connect (კლიენტი, მომხმარებლის მონაცემები, დროშები, rc): გლობალური კონფიგურაცია connflag = ჭეშმარიტი ბეჭდვა (კონფლაგი) ბეჭდვა ("კავშირის დაბრუნებული შედეგი:" + სტრიქონი (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_TLSv1), awct = s, qt, Keepalive = 60) mqttc.loop_start ()
ხოლო 1: hora = დრო. დრო () ძილი (.1) გამოქვეყნება. ერთი ("LEDTERREMOTO", "on", qos = 1, hostname = "172.31.83.191")
# if connflag == მართალია: # mqttc.publish ("შეტყობინება", json.dumps ({'შეტყობინება ":" TERREMOTO "}), qos = 1) თუ gatilho == 1: გამოქვეყნება. ერთი (" TEMPO ", ქ. (რაუნდი (hora_disparo-hora, 0)), qos = 1, hostname = "172.31.83.191") published.single ("LEDTERREMOTO", "on", qos = 1, hostname = "172.31.83.191") სხვა: გამოქვეყნება.ერთი ("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") # published.single ("LED", "on", hostname = "172.31.83.191") published.single ("SIRENE", "on", qos = 1, hostname = "172.31. 83.191 ") publik.single (" TEMPO "," TERREMOTO ", qos = 1, hostname =" 172.31.83.191 ") publik.single (" ACIONADO "," OFF ", qos = 1, hostname =" 172.31.83.191 ") published.single ("twitteralarme", "on", qos = 1, hostname = "172.31.83.191") published.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 ")) ==" OFF ": gatilho = 0 ბეჭდვა (" cancellado ") თუ m.topic ==" medico "და str (m.payload.decode (" utf-8 ")) ==" on ": if 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 == " სასწრაფო დახმარების მანქანა "და მ. პაილოა d.decode ("utf -8")) == "on": if connflag == True: mqttc.publish ("ambulancia", json.dumps ("AMBULANCIA - EMERGENCIA TERREMOTO"), qos = 1) თუ მ. თემა == "urgente" and str (m.payload.decode ("utf-8")) == "on": published.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 სხვა: ბეჭდვა ("Acionado") published.single ("ACIONADO", 1, qos = 1, hostname = "172.31.83.191") gatilho = 1 hora_disparo = დრო. დრო ()+60
ნაბიჯი 6: Codigo Twitter - Monitoração
twitter მონიტორინგის გაკეთება twitter– ზე, პოსკვისას პოსტების გაგზავნა ჩვენს რეგიონში
ვირტუალური კოდი და ვირტუალური მოწყობილობა AWS EC2
n
twitter იმპორტიდან *იმპორტი კონფიგურაცია იმპორტი paho.mqtt. გამოქვეყნება გამოაქვეყნე
დროიდან იმპორტი ძილის
twitter = Twitter (author = OAuth (config.access_key, config.access_secret, config.consumer_key, config.consumer_secret))
გრძედი = -23.546211 გრძედი = -46.637840 ალკანსი = 50 შედეგი = 1
Publish.single ("twitter_alarme", "ON", hostname = "34.230.74.201")
result_count = 0 last_id = არცერთი დროშა = 0
მე დიაპაზონში (60): #--------------------------------------------- ------------------------------ # განახორციელეთ ძებნა გრძედის და გრძედის საფუძველზე # twitter API დოკუმენტები: 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") შესვენება
მოთხოვნის
#----------------------------------------------------- ---------------------- # შედეგის დამუშავება მხოლოდ იმ შემთხვევაში თუ მას აქვს გეოლოკაცია # ----------------- ------------------------------------------------------ ---- თუ შედეგი ["geo"]: result_count += 1 last_id = შედეგი ["id"] ძილი (1) if result_count == resultados: flag += 1 გამოქვეყნება. ერთი ("twitter_alarme", "ON", hostname = "34.230.74.201") publik.single ("twitter", "TERREMOTO - DETECTADO", hostname = "34.230.74.201") შესვენება
ნაბიჯი 7: Estrutura AWS
გამოიყენეთ ვირტუალური რონანდო უბუნტუ და ესტრუტურა AWS EC2
გამოიყენეთ AWS IOT CORE მომსახურების MQTT კონფიგურაციისთვის, როგორც მენეჯმენტის ტიპების შესაბამისად
გამოიყენეთ თემები AWS SNS– ისთვის AWS IOT CORE
გირჩევთ:
ნახევარი ნაბიჯი: 5 ნაბიჯი (სურათებით)
სემინარი: IntroduçãoNeste projeto, você construirá um an sistema de semáforos: არსებობს 3 LED ნათურები სხვადასხვა ბირთვით (verde, amarelo e vermelho) para imitar os semáforos dos carros; არსებობს 2 LED ნათურები სხვადასხვა ბირთვით (verde და vermelho) იმისთვის, რომ გააკეთოთ
Comando Por Voz - DragonBoard410c: 5 ნაბიჯი
Comando Por Voz - DragonBoard410c: Este guia ir á პროგრამის იულიუსის კონფიგურაციის ან პროგრამის შემუშავება, რომელიც მოიცავს Coruja- ს, რომელიც არის პატივცემული ჩვენი პროგრამის შემდგომი რეკონსტრუქციის ამ მოდელის მოდელისა და პორტუგალიის სტიქიის პორტუგალიურ ენაზე
Arduino Uno თევზის მიმწოდებელი 6 იაფი და მარტივი ნაბიჯი!: 6 ნაბიჯი
Arduino Uno თევზის მიმწოდებელი 6 იაფი და მარტივი ნაბიჯი! შინაური ცხოველების მქონე ადამიანებს, ალბათ, იგივე პრობლემა ჰქონდათ, როგორც მე: შვებულება და დავიწყება. მე მუდმივად მავიწყდებოდა ჩემი თევზის გამოკვება და ყოველთვის ვცდილობდი ასე გამეკეთებინა სანამ ის წავიდოდა
აკუსტიკური ლევიტაცია Arduino Uno– ით ეტაპობრივად (8 ნაბიჯი): 8 ნაბიჯი
აკუსტიკური ლევიტაცია Arduino Uno– სთან ერთად ეტაპობრივად (8 საფეხური): ულტრაბგერითი ხმის გადამცემები L298N Dc მდედრობითი ადაპტერი დენის წყაროს მამაკაცის dc pin Arduino UNOBreadboard და ანალოგური პორტები კოდის გადასაყვანად (C ++)
Centro De Cómputo Para Niños Con Raspberry Pi: 7 ნაბიჯი
Centro De Cómputo Para Niños Con Raspberry Pi: Esto ser á n los primeros pas la de Raspberry Pi და ello necesitaremos: Raspberry Pi 2 ადაპტატორი წითელი და მიკრო USB Tarjeta micro SD (de 8 gb) კაბელი HDMI Cargador Rat ó n Teclado para computadoraEn caso de contar con un Kit de inicio