Агуулгын хүснэгт:
- Алхам 1: Hardware Utilizado
- Алхам 2: Montagem Do Hardware хийх
- Алхам 3: Firmware Atmega328
- Алхам 4: Python програм хангамж
- Алхам 5: Вэб үйлчилгээг тохируулах
Видео: Irrigações Automatizadas Com Web Service Utilizando Python: 5 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:05
Хяналт шалгалтын систем, дэлгэцийн төлөв байдал, агаар мандал, температур, хэт ягаан туяа, хэт ягаан туяа, вело видо, кондичао планта (сека/молхада). Alguns desses dados são obtidos localmente, enquanto outros são obtidos por meio de um Web Service conectado à uma estação meteorológica (No caso, estamos utilizando a da Faculdade de Engenharia de Sorocaba). Энэ нь ThingSpeak -ийн вэбсайтыг ашиглахаас өөр аргагүй юм.
Алхам 1: Hardware Utilizado
Төслийн хувьд дараахь зүйлийг хийх шаардлагатай болно.
1х Qualcomm Dragonboard 410c
1x Grove харсан мэдрэгч Mezzanine
1х ус харагч мэдрэгч
1х IMU 10OF Grove Sensor v1.0
1х нарны гэрлийн төгөл мэдрэгч v1.0
1х хулганы USB
1 x Teclado USB
1х дэлгэц
1x Cabo HDMI
1х Adaptador HDMI-VGA
Acesso à dados da estação meteorológica FACENS
Алхам 2: Montagem Do Hardware хийх
Луузны хавтангийн мэдрэгчийг байрлуулж, урд талд нь ажиллуулна уу.
1: Нарны гэрэл Groove v1.0 мэдрэгчтэй.
IMU-10DOF-ийн 2: +5V контакта.
3: +5V e Gnd conectados aos pinos корреспондентууд усны мэдрэгч хийдэг.
4: GND IMU-10DOF.
5: SDA/SCL нь IMU-10-тэй харилцдаг.
6: Pino Sig do Water sensor conectado ao pino 2.
Алхам 3: Firmware Atmega328
Мэдрэгч төхөөрөмжүүд нь Mezzanine, мөн микроконтроллер Atmega328-ийг ашиглах боломжтой бөгөөд энэ нь програм хангамж, програм хангамж, IDE програмыг DragonBoard дээр ашиглах боломжтой болно. Mezzanine, a DragonBoard нь компьютерийн програм хангамжийн хувьд микроконтроллергүй байхын тулд програм хангамжийг ашиглах шаардлагатай болно.
Мэдрэгч, мэдрэгч, програм хангамжийн харилцаа холбоо, үйлдлийн систем, програм хангамж, програм хангамжийг DragonBoard -ээр дамжуулан дамжуулах програм хангамжийн баталгаажуулалт.
*Библиотекас програм хангамжийн програм хангамж ашиглах шаардлагагүй болно. Тэмдэглэл:
imu-10DOF
Нарны гэрэл мэдрэгч
O firmware utilizado pode ser encontrado aqui ou aqui:
Алхам 4: Python програм хангамж
Импортлох програмууд: 'urllib2', 'json', 'time', 'serial', 'paho.mqtt.publish', 'psutil' e 'decimal'. Foram Definidos duas funções ('comJSON' e 'semJSON') que serão explicadas mais tarde.
import urllib2, json #para pegar os dados da estacaoimport time #para o time.sleep () import serial #para o Arduino import paho.mqtt.pub нийтлэх хэлбэрээр нийтлэх
O primiro passo é gravar em uma variável o endereço de onde serão obtidos os dados da Estação Meteorológica (no caso estamos gravando na variável 'url'). Жишээ нь, янз бүрийн хувилбарууд ('i' e 'j'), utilizando 'i' параграфууд нь JSON -ээр дамжуулагдах боломжтой (como a posichão mais sone da Array será a 49, inicializamos 'i' como) 49) e 'j' para contar quantas vezes o código já rodou.
url = "https://www.fieldclimate.com/api/CIDIStationData/GetLast?user_name=facens&user_passw=clima&station_name=002035C0" #URL хаягийг тодорхойлох
i = 49 #Пара эрхлэгч
j = 0 #Хөтөлбөр хийх
Үгүй бол 'while (1)' гэж оруулна уу, 'jsonurl' como 'None' гэсэн сонголтыг хийгээрэй. Энэ нь URL JSON -ийг өөрчилснөөр, ямар ч тохиолдолд 'while' хийх боломжгүй болно. Хязгааргүй URL хаягийг ашиглах нь 'urllib2.urlopen (url)', нэмэлт өгөгдлүүдтэй холбоотой 'timeout = X' гэсэн утгатай бөгөөд энэ нь URL хаягийг устгах боломжтой болно. Хөтөлбөрийг тохируулахын тулд та цаг дуусах ёстой бөгөөд энэ нь 'comJSON' програмыг ашиглах боломжтой болно. Ашиглах URL нь ямар ч хэмнэлттэй биш, харин 'semJSON' функцтэй болно. Ambos нь funções são muito parecidas, tendo como diferença os dados da estação ('comJSON' irá mostrar e enviar os dados da estação, enquanto 'semJSON' não). Como 'semJSON' e uma função derivada de 'comJSON'. Iremos 'comJSON' -ийг тайлбарласан болно
while (1): jsonurl = None #Inicializa a varivavel como Биш хэвлэх 'Passo:', j print 'Atualizando dados' оролдох: jsonurl = urllib2.urlopen (url, timeout = 5) #tenta abrir o url em no máximo 5 segundos Хэрэв jsonurl None биш бол: 'Dados atualizados' comJSON (jsonurl) #Se conseguiu abrir o URL, mostra todos os dados -с бусад зүйлийг хэвлэ: хэрэв jsonurl None бол: хэвлэх 'Erro ao atualizar dados' semJSON () #Se não abriu o URL, mostra os dados obtidos localmente (do Arduino) pass j += 1 print '---------------------------------- -------------------------------------------------- ------------------------------------------ / n 'цаг. унтах (1)
Нэн тэргүүнд 'comJSON', мөн "аав" гэсэн URL -уудыг дахин ашиглах боломжтой. Хүлээн авагч нь маш олон янзын арга хэмжээ авах боломжтой бөгөөд 'ReturnDataSet' юм. Бодит байдал, үйл ажиллагааны дараалал, дараалал нь цуваа хэлбэрээр унших (унших шугам) (эсвэл унших шугам) (эсвэл унших мөр ()) нь Strings -ийг өөрчилж, өөрчилж, өөрчилж болно. Recebidos os dados do Arduíno, reseptoremos os dados da estação, simplesmente acessando os sensors específicos dent sens do do objeto 'dados' (жишээ нь '' ReturnDataSet '] [' sens_aver_6_5] ').
def comJSON (jsonurl): #envia todos os dados dados = json.loads (jsonurl.read ()) #carrega os dados JSON da página já aberta #Arduino ard = serial. Serial ('/dev/tty96B0', 115200) # Induliza a variavel que receptberá os dados do Arduíno #Recebe os dados do Arduíno ardAgua = int (ard.readline (). rstrip ()) ardTemp = float (ard.readline (). rstrip ()) ardPres = int (ard.readline) ().rstrip ()) ardUV = float (ard.readline (). rstrip ())
"\ nArduino" хэвлэх
if ardAgua == 1: хэвлэх 'Molhado' өөр: хэвлэх 'Seco' хэвлэх 'Temperatura:', ardTemp, '*C' хэвлэх 'Pressao:', ardPres, 'Pa' хэвлэх 'Ultra-Violeta:', ardUV, ' lx '
#Эстакао
'\ nJSON' хэвлэх 'URL:', jsonurl #Recebe os dados da estação data = dados ['ReturnDataSet'] ['f_date'] vel_vento = dados ['ReturnDataSet'] ['sens_aver_6_5'] umidade = dados ['ReturnDataSet'] ['sens_aver_19_507']
'Өгөгдөл:', өгөгдлийг хэвлэх
'Velocidade do Vento:', vel_vento, 'm/s' хэвлэх 'Umidade do ar:', umidade, '%' хэвлэх
#Хувиргах
vel_vento = аравтын. Аравтын (vel_vento.rstrip ()) umidade = аравтын. Аравтын (umidade.rstrip ())
Охидын мэдлэг, ойлголтын тухай аав, ээж, найз нөхөд. Үүний зэрэгцээ, тодорхой суваг бүхий ID -ийн суваг, Chave de Escrita, o Host -ийн тохиргоог тохируулах, ХамгаалагдаагүйTCP -ийг тохируулах, SecUsecuredWebsockets ашиглах SSSLWebsockets (usamos Үнэн, Худал, Хуурамч). Criamos mais uma variável que irá guardar o 'caminho' para o channel, e uma outra para guardar, em String, o que será enviado para o servidor (com todas as variáveis convertidas) e public tentar publicar os dados no servidor usando 'нийтлэх. ганц бие (сэдэв, ачаалал = tPayload, хостын нэр = mqttHost, порт = tPort, tls = tTLS, тээвэр = tTransport) '. А давталтын гол үүрэг гүйцэтгэгч.
#Envia channelID = "344243" #Canal criado Пара о Grupo apiKey = "1PK9ELK0L4AH8CVP" # Código dado pelo ThingSpeak mqttHost = "mqtt.thingspeak.com" # configurações де comunicação useUnsecuredTCP = True useUnsecuredWebsockets = Худал useSSLWebsockets = Хуурамч useUnsecuredTCP бол: tTransport = "tcp" tPort = 1883 tTLS = UseUnsecuredWebsockets бол байхгүй: tTransport = "websockets" tPort = 80 tTLS = UseSSLWebsockets: import ssl tTransport = "websockets" tTLS = {'ca_certs'://// cert.crt ", 'tls_version': ssl. PROTOCOL_TLSv1} tPort = 443 topic =" сувгууд/" + channelID +"/нийтлэх/" + apiKey #Cria variavel com o 'caminho' para o channel tPayload =" field1 = " + str (ardAgua) + "& field2 =" + str (ardTemp) + "& field3 =" + str (ardPres) + "& field4 =" + str (ardUV) + "& field5 =" + str (data) + "& field6 =" + str ", port = tPort, tls = tTLS, transport = tTransport) #Envia os dados time.sleep (0.5) хэвлэх 'Dados enviados' -ээс бусад: 'Erro ao enviar dados' хэвлэх
Алхам 5: Вэб үйлчилгээг тохируулах
Вэб үйлчилгээ эсвэл ThingSpeak -ийг ашиглах боломжтой. Тайлбар, сайтууд байхгүй бол thingspeak.com e criamos uma conta. Нэвтрэхээс өмнө цэсийг нээхээс өөр аргагүй болно -> Canais -> Meus Canais e então clicamos no novoo "Novo Canal". Товчлуур, сувгийн нэр томъёо, эскреевмос нь тодорхой ойлголтыг өгдөг. Caso байхгүй, utilizamos 7.
Суваг, суваг, ID суваг, Chave de Escrita e uma Chave de Leitura. O ID do Canal se encontra abaixo do nome do kanal e a Chave de Escrita na "Chaves" гэх мэт. Python нь суваг, сувгийн мэдээллийн тохиргоог хийх шаардлагатай гэж үзсэний үндсэн дээр:
channelID = "Canal aqui ID эсвэл ID ID"
Chave de Escrita -ийн танилцуулга:
apiKey = "Инсира а Чаве де Эскрита"
Python app.py програмыг ашиглах боломжгүй, тохиргоог хийх шаардлагагүй болно.
useUnsecuredTCP = Үнэн
useUnsecuredWebsockets = FalseuseSSLWebsockets = False mqttHost = "mqtt.thingspeak.com" if useUnsecuredTCP: tTransport = "tcp" tPort = 1883 tTLS = None if useUnsecuredWebsockets: tTranstSortSortSortSportSetNet вэбсокетууд "tTLS = {'ca_certs':"/etc/ssl/certs/ca-sertifikatlar.crt ", 'tls_version': ssl. PROTOCOL_TLSv1} tPort = 443 сэдэв =" сувгууд/" + channelID +"/нийтлэх/" + apiKey
Жишээ нь, вэбсайтын гүйцэтгэл, жишээ нь, ямар ч хүчирхийлэлгүй температур 2 (кампусын хамгаалалт), "талбар2 ="+хувьсах_температура, ямар ч асуудал байхгүй:
tPayload = "field1 =" + str (ardAgua) + "& field2 =" + str (ardTemp) + "& field3 =" + str (ardPres) + "& field4 =" + str (ardUV) + "& field5 =" + str (өгөгдөл) + "& field6 =" + str (vel_vento) + "& field7 =" + str (umidade)
Python -ийн програм хангамж, сувгийн програм хангамж, вэбсайт эсвэл эцэг эхийн харилцаа холбоог сайжруулах програмууд. ThingSpeak байхгүй тул та үүнийг хийх боломжтой болно.
Зөвлөмж болгож буй:
MONITORAMENTO DA UMIDADE DO SOLO DE UMA HORTA UTILIZANDO ARDUINO E ANDROID: 15 алхам
MONITORAMENTO DA UMIDADE DO SOLO DE UMA HORTA UTILIZANDO ARDUINO E ANDROID: A ideia do nosso projeto é monitorer a umadade do solo de uma horta e apresentar to tela do celular para acompanhamento real
DIY GPS Tracker-Python програм: 5 алхам (зурагтай)
DIY GPS Tracker --- Python програм: Би хоёр долоо хоногийн өмнө дугуйн тэмцээнд оролцсон. Дууссаны дараа би маршрут, тэр үед унаж байсан хурдыг шалгахыг хүссэн юм. Харамсалтай нь үүнд хүрч чадаагүй. Одоо би GPS tracker хийхдээ ESP32 -ийг ашигладаг бөгөөд дугуй унах маршрутаа бүртгүүлэхийн тулд би үүнийг авах болно
Como Subir Datos De Un Acelerómetro a Ubidots, Utilizando Arduino YÚN: 6 алхам
Como Subir Datos De Un Acelerómetro a Ubidots, Utilizando Arduino YÚN: Arduino Y Ú OpenWrt, el Arduino Y & Uacute, OpenWrt-Yun хувилбаруудын хамгийн сүүлийн хувилбарууд нь OpenWrt-Yun програм хангамжийн систем юм
Python болон Arduino дээрх MIDI Drum Kit: 5 алхам (зурагтай)
Python болон Arduino дээрх MIDI Drum Kit: Би багаасаа л бөмбөрийн хэрэгсэл худалдаж авахыг хүсдэг байсан. Тэр үед бүх хөгжмийн төхөөрөмжүүд дижитал програмтай байдаггүй байсан тул өнөө үед бид хангалттай байгаа тул үнэ, хүлээлтийн хамт хэт өндөр байсан. Саяхан би c худалдаж авахаар шийдсэн
ESP8266 -NODEMCU $ 3 WiFi модуль #2 - WEB хуудсаар дамжуулан утасгүй зүү удирдах: 9 алхам (зурагтай)
ESP8266 -NODEMCU $ 3 WiFi модуль #2 - WEB хуудсаар дамжуулан утасгүй холболтыг хянах: Эдгээр бичил тооцооллын шинэ ертөнц гарч ирсэн бөгөөд энэ бол ESP8266 NODEMCU юм. Энэ бол esp8266 орчныг arduino IDE -д хэрхэн эхлүүлж буй видеогоор дамжуулан хэрхэн суулгахыг харуулсан эхний хэсэг юм