Мазмұны:
- 1 -қадам: Utilizado аппараттық құралы
- 2 -қадам: Montagem Do Hardware
- 3 -қадам: Atmega328 микробағдарламасы
- 4 -қадам: Python бағдарламалық жасақтамасы
- 5 -қадам: O веб -қызметін конфигурациялау
Бейне: Python: 5 қадаммен (суреттермен) автоматтандырылған Com Web қызметі
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
Жоспарланған жүйенің мониторингі бойынша, планшеттерде, атмосферада, температурада, ультрафиолет сәулелерінде, вело вентрода және плантада (секта/мольдада) байланыс бар. 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
Айдаһар тақтасы сенсоры мен сенсорды орнатыңыз, оларды алдын -ала орындаңыз:
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 бағдарламалық жасақтамасы
Импортталатын бағдарламалар: «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 веб -қызметін конфигурациялау
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 жоқ, бұл мүмкіндіктің барлығын бақылап отыру керек.
Ұсынылған:
Жарықдиодты голокрон (жұлдызды соғыстар): Fusion 360: 18 қадаммен жасалған (суреттермен)
Жарықдиодты жарықдиодты Холокрон (Жұлдызды соғыстар): Fusion 360 -да жасалған: Fusion 360 -пен әдемі нәрсе жасау үшін жұмыс істегенде, әсіресе жарықтандырумен бір нәрсе жасау үшін, мен өте қуаныштымын. Неліктен «Жұлдызды соғыс» фильмін жарықпен біріктіру арқылы жоба жасамасқа? Сондықтан мен бұл нұсқаулық жобаны жасауды шештім
ESP8266: 4 қадаммен (суреттермен) цифрлық сағат желілік уақыты
ESP8266 көмегімен желілік уақыт цифрлық сағаты: Біз NTP серверлерімен байланысатын және желі немесе интернет уақытын көрсететін сүйкімді цифрлық сағатты құруды үйренеміз. Біз WeMos D1 mini -ді WiFi желісіне қосылу, NTP уақытын алу және OLED модулінде көрсету үшін қолданамыз
E.S.D.U (Droid жедел қызметі): 7 қадам
E.S.D.U (жедел қызмет Droid блогы): Бүгін біз E.S.D.U (жедел қызмет Droid блогы) құрамыз. E.S.D.U 3 классқа бөлінеді: полиция, өрт және медицина. Мұның бәрі әлі толық дамымаған, бірақ біз оларды коммерция ретінде бірге жаңартып, дамыта аламыз деп үміттенемін
9-11 жас аралығындағы Geiger Counter қызметі: 4 қадам
9-11 жас аралығындағы Гейгердің есептегіш қызметі: Бұл оқулықта сіз ядролық радиациялық детекторды қолдануды үйренесіз. Сіз Geiger Counter детекторын осы жерден сатып ала аласыз Geiger есептегіші-иондаушы сәулеленуді анықтау мен өлшеуге арналған құрал. Гейгер -Мюллер есептегіші ретінде де белгілі (
Боттар! Дизайн зертханасының қызметі: 16 қадам
Боттар! Дизайн -зертханалық жұмыс: Моторды жылдам қосу Көбінесе сыныпта немесе мұражайда бот / электронды жаттығуларды жеңілдету кезінде* біз көп уақытымызды өз топтарымызға моторды аккумуляторға қалай қосу керектігін көрсетіп, дизайнмен жұмыс жасайтын сияқты болып көрінеміз. қанша уақыт қалды