Мазмұны:
- 1 -қадам: Dragonbord 410c - Public Sensão Dos Sensores - Analogicos
- 2 -қадам: Digitesis Sensores - Publicação
- 3 -қадам: Codigo Para Acionamento Sirene
- 4 -қадам: Codigo Twitter - Пост
- 5 -қадам: Centro De Comando
- 6 -қадам: Twitter -дегі Codigo - Мониторинг
- 7 -қадам: Estrutura AWS
Бейне: Centro De Comando Explorencias - Erupção De Vulcão E Terremotos: 7 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Ақпараттық технологиялар интернет -ресурстарда қол жетімді емес, сонымен қатар IOT температурасы, жарықтандыру, осцилануо (сенсорлық) сенсорлық сенсорлар мен Интернет -ресурстарға қол жетімді болады. Алдымен ешқандай байланыс орнатылған жоқ, бұл Twitter -дегі ескертулерге қолдау көрсетуге мүмкіндік береді.
Әр түрлі операциялар мен операциялар мүмкін емес болғандықтан, сіз автоматты түрде жұмыс жасай аласыз, олар автоматты түрде қол жетімді болады. Домашинаның шешімі өте маңызды.
SMS -хабарламалар, клиенттерге қызмет көрсету, электрондық пошта, құпия хабарламалар мен твиттер арқылы хабарлама жіберуге болады.
IW CORE, EC2 e SNS, AWS -ті жаңартуға болады.
DragonBord 410c сенсорлары
Android mqtt клиенттері
Питоннан жасалынған сендо
Автомобильдер:
Диего Фернандес дос Сантос - [email protected]
Габриэль Пиовани Морейра дос Сантос - [email protected]
Густаво Венансио Луз - [email protected]
Пауло Анрике Альмейда Сантос - [email protected]
1 -қадам: Dragonbord 410c - Public Sensão Dos Sensores - Analogicos
Аналогикалық позициялардың сенсорлық функциялары, олардың температурасы мен температурасы сенсорлық конфигурацияларды анықтауға мүмкіндік береді, бұл кезде сіз оларды анықтай аласыз.
Тіркелгеннен кейін бұл операцияны тоқтату керек.
Бұл 60 регресс бойынша 60 регресс бойынша, егер сіз 20 жаңартуды анықтайтын болсаңыз.
Dragon borad 410c бағдарламасы
#!/usr/bin/python3import 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
#ADC1 порталын пайдалану_арнасы_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): басып шығару («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_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 басып шығару («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%
if adc_value2_old == 0: adc_value2_old = adc_value2 if adc_value2> (adc_value2_old*1.5): pub.publish («ALARME», «ON») басып шығару («Alarmado Luminosidade») adc_value2_old = adc_value2 ұйқы (3)
2 -қадам: Digitesis Sensores - Publicação
código para publicação dos sensites digitizis
Дірілдеудің дірілін анықтайтын сенсорлық сигналдар сенсорлық жағдайда немесе симуляцияда болады.
кездейсоқ анықталуы мүмкін, бұл сіздің регрессияңызға әсер етеді.
Dragon borad 410c бағдарламасы
libsoc_zero. GPIO импорттау түймешігінен libsoc_zero. GPIO импорты mqtt импорттау жүйесі ретінде импорттау paho.mqtt.client импортталатын уақыттан ауытқу
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 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 and setamos suas mqttc = mqtt. Client () конфигурациялары
mqttc.on_message = on_message mqttc.on_connect = on_connect mqttc.on_publish = on_publish
тақырып = «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) «,» ӨШІРУ «) # басқа: # pub = mqttc.publish (» PANICO «,» ӨШІРУ «) # басып шығару (» Botao OFF «)
3 -қадам: Codigo Para Acionamento Sirene
SIRENE акционерлік қоғамына арналған қосымша бағдарлама, 410c айдаһар тақтасы.
# MOSQUITTOimport paho.mqtt.client файлын mqtt ретінде импорттау
libsoc_zero. GPIO импорттық жарық диоды импорттық ұйқыдан LED = LED ('GPIO-E') #led.off ()
# Connectar def_connect анықтаңыз (клиент, объект, жалаушалар, rc): басып шығару («Conex £ £ installelecida com broker»)
# Анықтаңыз o_message (клиент, obj, хабарлама): басып шығару («LED» + str (message.payload.decode («utf-8»))) егер str (message.payload.decode («utf-8»)) == «on»: print («Sirene ligada») led.on () else: print («Sierene apagada») led.off ()
# IP do broker_address = «34.230.74.201»
# Cria o cliente sub = mqtt. Client («grupo3»)
sub.connect (broker_address)
sub.on_message = on_message sub.on_connect = on_connect
# Тақырыпқа жазылудан бас тартыңыз («SIRENE», qos = 0)
# Loop for escuta sub.loop_forever ()
4 -қадам: Codigo Twitter - Пост
Жалпыға қол жетімді Twitter -де дабыл қағу керек.
AWS EC2 виртуалды бағдарламасының негізгі нұсқасы
#!/usr/bin/env python #---------------------------------------- ------------------------------ # twitter-post-status #-уақыт шкаласына күй хабарын жібереді # --- -------------------------------------------------- ------------------ импорт paho.mqtt.жазылу ретінде жазылыңыз
импорт уақыты
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 = жазылу.қарапайым («twitteralarme», хост атауы = «172.31.83.191», сақталған = Жалған) егер m.topic == «twitteralarme» және str (m.payload.decode («utf-8»)) == «қосулы»: нәтижелер = twitter.statuses.update (status = (new_status)+str (time.time ())) # басып шығару («жаңартылған күй: % s» % new_status)
5 -қадам: Centro De Comando
қолмен жұмыс жасайтын нұсқаулық немесе анықтамалық анықтамалар пайдаланушыға қол жеткізуге мүмкіндік береді. Операторлық потенциалды бөліктерге енуге болады.
Деректер тақтасы қолданылғаннан кейін андроид пен телефонды басқару үшін де, компьютерді басқару үшін де қажет.
AWS EC2 виртуалды бағдарламасының негізгі нұсқасы
paho.mqtt.client pahoimport paho.mqtt.subon ретінде жазылу
тақырыптар = ['#']
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 (клиент, пайдаланушы деректері, жалаушалар, rc): global connflag connflag = True print (connflag) басып шығару («Қосылым қайтарылған нәтиже:» + str (rc))
def on_message (клиент, пайдаланушы деректері, хабар): # басып шығару («тест») басып шығару (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 == True: # mqttc.publish («хабарлама», json.dumps ({'хабар': «TERREMOTO»}), qos = 1) егер 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 («хабар», json.dumps ({'хабар': «TERREMOTO»}), qos = 1) # mqttc.publish («хабар», «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 = жазылу.қарапайым (тақырыптар, хост атауы =» 172.31.83.191 «, сақталған = Жалған), егер m.topic ==» ACIONADO «және str (m.payload.decode (») utf-8 «)) ==» ӨШІРУ «: gatilho = 0 басып шығару (» жою «) егер m.topic ==» medico «және str (m.payload.decode (» utf-8 «)) ==» қосулы болса «: егер connflag == True: mqttc.publish (» medico «, json.dumps (» MEDICOS - EMERGENCIA TERREMOTO «), qos = 1) егер m.topic ==» bombeiro «және str (m.payload.decode («utf -8»)) == «on»: if connflag == True: mqttc.publish («bombeiro», json.dumps («BOMBEIRO - EMERGENCIA TERREMOTO»), qos = 1) егер m.topic == « жедел жәрдем »және көшесі (м. 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 if str (m.payload.decode («utf-8»)) == «ON»: егер gatilho == 1: print («acelerado 20») hora_disparo = hora_disparo -20 басқа: print («Acionado») publish.single («ACIONADO», 1, qos = 1, хост атауы = «172.31.83.191») gatilho = 1 hora_disparo = time.time ()+60
6 -қадам: Twitter -дегі Codigo - Мониторинг
twitter -ді бақылаңыз, сонымен қатар сорокаба туралы хабарлама жазыңыз
AWS EC2 виртуалды бағдарламасының негізгі нұсқасы
n
twitter импортынан *импорттау конфигурациясын импорттау paho.mqtt.публикация ретінде жариялаңыз
уақыттан бастап ұйқы импортталады
twitter = Twitter (auth = OAuth (config.access_key, config.access_secret, config.consumer_key, config.consumer_secret))
ендік = -23.546211 бойлық = -46.637840 альцанс = 50 нәтижеdos = 1
publish.single («twitter_alarme», «ON», хост атауы = «34.230.74.201»)
result_count = 0 last_id = Ешқандай жалауша = 0
i үшін (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») үзіліс
сұрау нәтижесі үшін [«күйлер»]:
#------------------------------------------------- ---------------------- # тек геолокация болған жағдайда нәтижені өңдейді # ----------------- -------------------------------------------------- ---- 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 -ді қолданады.
Ұсынылған:
Arduino басқарылатын робот - екі қадам: 13 қадам (суреттермен)
Arduino басқарылатын роботты екіжақты: Мен әрқашан роботтарға қызығатынмын, әсіресе адамның іс -әрекетіне еліктеуге тырысатын. Бұл қызығушылық мені жаяу жүруге және жүгіруге еліктей алатын екіжақты робот құрастыруға және дамытуға талпындырды. Бұл нұсқаулықта мен сізге көрсетемін
Comando Por Voz - DragonBoard410c: 5 қадам
Comando Por Voz - DragonBoard410c: Este guia ir á Julius junto com o Coruja бағдарламасының конфигурациясын орнатыңыз, содан кейін Португалиядағы «стико эмоционалды режим» бағдарламасын құрметтеу қажет
Arduino Uno көмегімен акустикалық левитация Қадамдық қадам (8 қадам): 8 қадам
Акустикалық левитация Arduino Uno Қадамдық қадаммен (8-қадам): ультрадыбыстық дыбыс түрлендіргіштері L298N Dc әйелдер адаптерінің ток көзі еркек тоқ сымымен Arduino UNOBreadboard Бұл қалай жұмыс істейді: Біріншіден, сіз кодты Arduino Uno-ға жүктейсіз (бұл сандық жүйемен жабдықталған микроконтроллер) және кодты түрлендіру үшін аналогтық порттар (C ++)
Түймені іске қосатын қадам реттегіші: 4 қадам
Түймені іске қосатын қадам реттегіші:
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 үшін ақысыз. есептік жазбалар