Мазмұны:

Python: 5 қадаммен (суреттермен) автоматтандырылған Com Web қызметі
Python: 5 қадаммен (суреттермен) автоматтандырылған Com Web қызметі

Бейне: Python: 5 қадаммен (суреттермен) автоматтандырылған Com Web қызметі

Бейне: Python: 5 қадаммен (суреттермен) автоматтандырылған Com Web қызметі
Бейне: Hacked Jacuzzi, JDK 18, Kotlin 1.7.0, ECMAScript 2022 and new Amazon products [MJC News #10] 2024, Қараша
Anonim
Python көмегімен Automatizadas Com Web қызметі
Python көмегімен Automatizadas Com Web қызметі

Жоспарланған жүйенің мониторингі бойынша, планшеттерде, атмосферада, температурада, ультрафиолет сәулелерінде, вело вентрода және плантада (секта/мольдада) байланыс бар. Alguns desses dados são obtidos localmente, enquanto outros são obtidos for meio de um Web Service conectado à uma estação meteorolggica (ешнәрсе жоқ, эффектілер пайдаланылады және Faculade de Engenharia de Sorocaba). Бұл ThingSpeak веб -сайтында жұмыс істейтін бағдарламалар.

1 -қадам: Utilizado аппараттық құралы

Қолданбалы жабдық
Қолданбалы жабдық

Жобаның құрылымы бойынша:

1x Qualcomm Dragonboard 410c

1x Grove көретін сенсорлық мезанин

1x Су көру сенсоры

1x IMU 10OF Grove датчигі v1.0

1x Sunlight Grove датчигі v1.0

1x USB тінтуірі

1x Teclado USB

1x монитор

1x Cabo HDMI

1x Adaptador HDMI-VGA

Acesso à dados da estação meteorológica FACENS

2 -қадам: Montagem Do Hardware

Montagem Do Hardware
Montagem Do Hardware

Айдаһар тақтасы сенсоры мен сенсорды орнатыңыз, оларды алдын -ала орындаңыз:

1: Groove Sunlight v1.0 сенсоры бар.

2: +VV немесе 5V контакты IMU-10DOF.

3: +5V сымсыз сенсорлармен байланысады.

4: GND IMU-10DOF.

5: SDA/SCL ХМУ-10 корреспонденциясы.

6: Pino Sig do Су сенсоры конектадо немесе пино 2.

3 -қадам: Atmega328 микробағдарламасы

Sensors Mezzanine атрибутымен, Atmega328 микроконтроллерімен, сонымен қатар Arduino платформаларымен, сонымен қатар DragonBoard IDE бағдарламалық жасақтамасымен жұмыс істейді. Микроконтроллер жоқ микробағдарлама мен бағдарламалық жасақтама үшін DragonBoard немесе Mezzanine бағдарламалары қажет.

Микробағдарлама Embarcado -ға жауап беру үшін сенсорлық операцияларды жүргізеді, бұл DragonBoard сериялы портативті портативті байланыстар мен операциялық жүйелермен байланыс орнатады.

*Библиотекалар мен микробағдарламалық жасақтаманың болмауы қажет. Қосымша ақпарат келесідей:

imu-10DOF

Күн сәулесі сенсоры

Бағдарламалық жасақтама бағдарламалық жасақтамасы:

4 -қадам: Python бағдарламалық жасақтамасы

Python бағдарламасы
Python бағдарламасы

Импортталатын бағдарламалар: «urllib2», «json», «time», «serial», «paho.mqtt.publish», «psutil» e «ондық». Функциялардың анықтамасы ('comJSON' e 'semJSON') кез келген уақытта анықталады.

import urllib2, json #para pegar os dados da estacaoimport time #para o time.sleep () импорттық серия #пара o Arduino импорт paho.mqtt. жариялау ретінде жариялау #пара жарияланым импорт psutil #пара конфигурациясы немесе url импорт ондық #пара түрлендіргіші

Опубликовано 9 января 2013, 9:07 Esteteo Meteorológica (еш жерде «url» жоқ). Мысалы, JSON арқылы байланыс орнатылған кезде, олар әр түрлі жағдайда ('i' e 'j'), 'i' параметрлері арқылы қабылданады (соңғы кезде 49 -ге дейінгі аралықта орналасқан). 49) e -j 'para contar quantas ques de la coudigo já rodou.

url = «https://www.fieldclimate.com/api/CIDIStationData/GetLast?user_name=facens&user_passw=clima&station_name=002035C0» #URL мекенжайын анықтаңыз

i = 49 #Параграф - бұл сіздің ата -анаңыз

j = 0 #Бағдарлама

«No» while (1) 'енгізіңіз, «Жоқ» комментарийлерін «Ешқайсысы» деп жазыңыз. JSON URL мекенжайын өзгертуге болады, егер сіз «уақытында» жұмыс жасамасаңыз, онда бұл циклды қалпына келтіруге мүмкіндік береді. URL мекенжайы 'urllib2.urlopen (url)', «уақыт аралығы = X» параметрлері, сонымен қатар URL мекен -жайы бойынша сұраныстарды шешуге мүмкіндік береді. Егер сіз URL -ге уақытты күтуге уақыт бөлсеңіз, онда сіз «comJSON» бағдарламасын іске қосасыз ба, ол уақытты көрсетеді. URL мекенжайы «semJSON» функциясын іске қосқаннан кейін жылдамдықты жоғалтады. Амбос функциялары бір -бірінен айырмашылығы бар, олар бір -бірінен айырмашылығы бар ('comJSON' және басқа да мүмкіндіктер, 'semJSON' não). ComJSON 'semJSON' және «comJSON» функциялары. Iremos «comJSON» түсіндіреді

while (1): jsonurl = None #Inicializa a 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) #URL мекен -жайына сілтеме жасаңыз, егер: jsonurl жоқ болса: басып шығару 'Erro ao atualizar dados' semJSON () #Se não abriu o URL, mostra os dados obtidos localmente (do Arduino) j += 1 басып шығарады '---------------------------------- -------------------------------------------------- ------------------------------------------ / n уақыт.ұйқы (1)

«ComJSON» функциясын орындап, URL мекен -жайындағы «әмбебап» сілтемелерді орындаңыз. Тапсырыстарды алу үшін сіз «Array» немесе «ReturnDataSet» дегенді қолдана аласыз. Операциялық операциялар, байланыс құралдары сериялы және тізбектелген болып табылады (оқылатын сызық ()) немесе Strings түрлендіретін Strings түрлендірулері, аудармалар, жазбалар. Recebidos os Arduíno, dabos da estação, recessémés osessoso senses específicos sensors específicos sensors to do objeto 'dados' (exemplo '' '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) # Ардуинді алудың бір түрі бар #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: print 'Molhado' else: print 'Seco' print 'Temperatura:', ardTemp, '*C' print 'Pressao:', ardPres, 'Pa' print '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 ())

Ойын -сауық туралы мақалалар - бұл ең бастысы. Сонымен қатар, идентификаторлық арнаның анықтамасы, хосттың өзгеруі, хосттың қауіпсіздігі, конфигурациясы, қамтамасыз етілмегенTCP, useUnsecuredWebsockets және useSSLWebsockets (usamos True, False, False). Cariamos mais uma variável que irá guardar o 'caminho' para o kanal, e uma outra para guardar, em String, or que enviado para servits (com todas as variáveis convertidas) және жариялау үшін ешқандай жариялау жоқ. жалғыз (тақырып, жүктеме = tPayload, хост атауы = mqttHost, порт = tPort, tls = tTLS, тасымалдау = tTransport) '. Директордың функциялары.

#Envia channelID = «344243» #Canal craado for group group apiKey = «1PK9ELK0L4AH8CVP» #Código dolo peing ThingSpeak mqttHost = «mqtt.thingspeak.com» #configurações de comunicaçãSUs UseSUFUUUUUUUUUUUWWEUPUPUPUPUPUPUUUUUUUUUUUUUUWEUUUUUWTECHSUPUPUPTUUUUUUUUWTUPTUPTUPUPTUUUUUUUUUUUUFTFOJALARIYALARINI TƏSLİNME «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 =» арналар/« + арнаID +»/жариялау/« + 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 -қадам: O веб -қызметін конфигурациялау

O веб -қызметін конфигурациялау
O веб -қызметін конфигурациялау

ThingSpeak бағдарламасының веб -сервистік қызметтері, сонымен қатар платформалық нұсқаулықтардың бірі. Қарап отырсақ, сайттар ештеңе жоқ, сайттарда ештеңе жоқ. Мәліметтер мен мәзірлерді қосқанда -> Canais -> Meus Canais және «Novo Canal» деген сөз жоқ. Тіркелу, каналдағы эсколемалар, демек, сіз оларды шеше алмайсыз, сонымен қатар оларды пайдалану мүмкін емес. 7 жоқ.

Канал, ID ID Canal, Chave de Escrita e uma Chave de Leitura. Каналға жеке куәлік беру «Chaves» немесе «Chaves» деген арнаға қосымша емес. Python арнасы арнаның ақпараты бойынша қосымша болып табылады, бұл каналдың ID конфигурациясын қажет етеді:

channelID = «Canal Aqua ID»

Chave de Escrita комбинациясы:

apiKey = «Инсира және Чаве де Эскрита»

Python app.py қолданбасы конфигурацияланбаған кезде, олар қажет болған жағдайда ғана реттеледі:

useUnsecuredTCP = True

useUnsecuredWebsockets = FalseuseSSLWebsockets = False mqttHost = «mqtt.thingspeak.com» if useUnsecuredTCP: tTransport = «tcp» tPort = 1883 tTLS = None if useUnsecuredWebsockets: tTranstSortSortSportSetNetSortSetNetName веб-розеткалар «tTLS = {'ca_certs':»/etc/ssl/certs/ca-sertifikatlar.crt «, 'tls_version': ssl. PROTOCOL_TLSv1} tPort = 443 topic =» арналар/« + channelID +»/жариялау/« + apiKey

Қарап шығатын болсақ, мысалы, температура 2 -де жоқ (температура 2 = «+» өріс2 = «+вариантты температура), ешқандай комментарий жоқ:

tPayload = «field1 =» + str (ardAgua) + «& field2 =» + str (ardTemp) + «& field3 =» + str (ardPres) + «& field4 =» + str (ardUV) + «& field5 =» + str (деректер) + «& field6 =» + str (vel_vento) + «& field7 =» + str (үмітсіз)

Python бағдарламасының бағдарламалық жасақтамасы мен веб -сервистердің басты нұсқасы. ThingSpeak жоқ, бұл мүмкіндіктің барлығын бақылап отыру керек.

Ұсынылған: