Obsah:
- Krok 1: Hardvérové využitie
- Krok 2: Montagem Do Hardware
- Krok 3: Firmvér Atmega328
- Krok 4: Programujte Python
- Krok 5: Konfigurácia webovej služby
Video: Automatizované webové služby používajú Python: 5 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:01
Najbližšie projekty môžu mať za následok zoslabenie systému monitorovania, sledovanie a porovnávanie relatívnej vlhkosti vzduchu, atmosférickej teploty, teploty do ultrafialového žiarenia, ultrafialového žiarenia a klimatizácie (plánovanie). Rôzne druhy miest a miest, ktoré sú k dispozícii, sú k dispozícii na webovej stránke. Webová služba je pripojená k meteorologickej meteorológii (neexistuje, používa sa a používa sa). K dispozícii sú všetky dostupné produkty, ktoré sú k dispozícii, a taktiež webová aplikácia ThingSpeak.
Krok 1: Hardvérové využitie
Použitie a konštrukcia stavebného projektu:
1x Qualcomm Dragonboard 410c
1x medziposchodie senzora videného v háji
1x snímač videný vo vode
1x Grove senzor IMU 10OF v1.0
1x Senzor slnečného svitu Grove v1.0
1x myš USB
1x Teclado USB
1x monitor
1x Cabo HDMI
1x Adaptador HDMI-VGA
Prístup k meteorológom FACENS
Krok 2: Montagem Do Hardware
Pripojte medziposchodie senzora k dragonboardu a vykonajte prednú stranu, ktorá odosiela:
1: Kónický snímač senzora Groove Sunlight v1.0.
2: +5 V pripojenie, Vcc do IMU-10DOF.
3: +5V Pripojenie k senzoru vody.
4: GND IMU-10DOF.
5: SDA/SCL prepojenie a korešpondencia s IMU-10.
6: Pripojenie snímača vody Pino Sig do a pino 2.
Krok 3: Firmvér Atmega328
Através da Sensors Mezzanine, and possível acessar um microcontrolador Atmega328, o mesmo use and emplate of Arduíno, and programá-lo diretamente, use an IDE Arduíno instalada on DragonBoard. Väčšie množstvo medziposchodí a serverov DragonBoard obsahuje množstvo programových doplnkov a programových doplnkov, ktoré neobsahujú mikroprocesor.
O firmvéri a o odpovedi môžete hovoriť ako o najlepších snímačoch, ako aj o bežných protokolov komunikácií a operácií, ako aj o sériových prenosoch cez sériu DragonBoard.
*Potrebné a zahrnuté bibliotekáre nepoužívajú žiadny firmvér. V tomto prípade existujú nasledujúce rady:
imu-10DOF
Senzor slnečného svetla
Využitie firmvéru podporovaného softvérom pre akvizíciu alebo akvizíciu:
Krok 4: Programujte Python
Para o programa criado, foram necessaryários os seguintes importes: '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 estaoimport time #para o time.sleep () import serial #para o Arduino import paho.mqtt.publish as publish #para publicar import psutil #para configurar o url import decimal #para converter
O hlavnom pasu a gravar em em varaável o endereço de onde serão obtidos os dados da Estação Meteorológica (no caso estamos gravando na variável 'url'). Vykonajte niekoľko inicializácií ("i" e "j"), použite "i" para pegar os dados mais atuais do Array que iremos receber via JSON (como a posição mais recente 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" #Define o URL da eestação
i = 49 #Para pegar os dados mais atuais da eestação
j = 0 #Súvisiace programy
Zadajte nie 'while (1)', inicializujte a zadajte 'jsonurl' como 'None'. Viac variácií môže obsahovať URL JSON, napríklad ďalšie inicializácie, ktoré nevytvárajú „while“, ale môžu tiež resetovať elastické tódy, ktoré môžu opakovať slučku. Viac informácií nájdete na adrese URL, ktorá obsahuje a môže obsahovať 'urllib2.urlopen (url)', prípadne pridať ďalšie časové pásmo 'timeout = X', odoslať X množstvo množstva URL adresy URL alebo URL adresy. Vyberte jeden z nasledujúcich spôsobov, ako skrátiť URL časový limit, alebo si naplánovať prvú a prvú voľbu programu. Caso não Consiga abrir a URL no temp estipulado, realiza-se a função 'semJSON'. Ambos as funções são muito parecidas, tendo como differentença os dados da estação ('comJSON' irá mostrar e enviar os dados da eestação, enquanto 'semJSON' não). Como 'semJSON' é derivuje sa z 'comJSON'. Iremos vysvetľuje niečo ako „COMJSON“
while (1): jsonurl = None #Inicializa a varivavel como None print 'Passo:', j print 'Atualizando dados' try: jsonurl = urllib2.urlopen (url, timeout = 5) #tenta abrir o url em no maxima 5 segundos Ak jsonurl nie je None: print 'Dados atualizados' comJSON (jsonurl) #Sse conseguiu abrir o URL, mostra todos os dados okrem: if jsonurl is None: print 'Erro ao atualizar dados' semJSON () #Se não abriu o URL, väčšina údajov, ktoré sú k dispozícii (do Arduina), prejde j += 1 tlač '---------------------------------- ---------------------------------------------------------- -------------------------------------------- / n 'čas.spánok (1)
Na hlavnom riadku funkcie „comJSON“získate všetky údaje o adrese URL já abertos numa variável „dados“. Všetky prijímače môžu obsahovať dve sady polí, pretože niektoré z nich sa často používajú („ReturnDataSet“). Realizácia a operácia prvého spustenia seriálu Sériová verzia Arduínového súboru (čiara čítania ()) obsahuje viac informácií o vašom Arduínovom štýle, ako o strunách, ktoré prevádzajú rôzne zubné kazety. Príjem dát do Arduíno, príjem údajov z viacerých aplikácií, ako napríklad jednoduché snímanie snímačov rôznych typov (vrátane príkladov) ['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) # inicializujte a premenujte množstvo prijatých 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 ())
vytlačiť „\ nArduino“
if ardAgua == 1: print 'Molhado' else: print 'Seco' print 'Temperatura:', ardTemp, '*C' print 'Pressao:', ardPres, 'Pa' print 'Ultra-Violeta:', ardUV, ' lx '
#Estacao
vytlačiť '\ nJSON' vytlačiť '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']
vytlačiť 'Údaje:', údaje
vytlačiť 'Velocidade do Vento:', vel_vento, 'm/s' vytlačiť 'Umidade do ar:', umidade, '%'
#Konvertovať
vel_vento = decimal. Decimal (vel_vento.rstrip ()) umidade = decimal. Decimal (umidade.rstrip ())
O čo najviac pascí a životných podmienok má čoletados. Niektoré z nasledujúcich možností sú ID kanál, Chave de Escrita e o Host em variáveis, além de configurar o useUnsecuredTCP, useUnsecuredWebsockets e useSSLWebsockets (usamos True, False, False). Criamos mais varaável que irá guardar o 'caminho' para o canal, e uma outra para guardar, em String, o que será enviado para o servidor (com todas as variáveis convertidas) e então tentar publicar os dados no servidor usando 'publish. single (topic, payload = tPayload, hostname = mqttHost, port = tPort, tls = tTLS, transport = tTransport) '. Ide o hlavnú funkciu slučky.
#Envia channelID = "344243" #Canal criado para o grupo apiKey = "1PK9ELK0L4AH8CVP" #Código dado pelo ThingSpeak mqttHost = "mqtt.thingspeak.com" #configurações de comunicaçãoseWeb "tcp" tPort = 1883 tTLS = Žiadne, ak useUnsecuredWebsockets: tTransport = "websockets" tPort = 80 tTLS = Žiadne, ak useSSLWebsockets: import ssl tTransport = "websockets" tTLS = {'ca_certs': "/etc/ssl/certs/ certificates.crt ", 'tls_version': ssl. PROTOCOL_TLSv1} tPort = 443 topic =" channels/" + channelID +"/publish/" + apiKey #Cria variavel com o 'caminho' para o canal tPayload =" field1 = " + str (ardAgua) + "& field2 =" + str (ardTemp) + "& field3 =" + str (ardPres) + "& field4 =" + str (ardUV) + "& field5 =" + str (údaje) + "& field6 =" + str (vel_vento) + "& field7 =" + str (umidade) #Organiza todas as variaveis em uma String para ser enviado print 'Enviando dados' try: publish.single (topic, payload = tPayload, hostname = mqttHost, port = tPort, tls = tTLS, transport = tTransport) #Envia os dados time.sleep (0,5) vytlačiť 'Dados enviados' okrem: vytlačiť 'Erro ao enviar dados'
Krok 5: Konfigurácia webovej služby
Časť, ako sú dostupné ďalšie webové služby, používa a podporuje ThingSpeak. Para tal, entramos no site thingspeak.com and criamos uma conta. Prihláste sa a prihláste sa, kliknite na hlavnú ponuku -> Canais -> Meus Canais a vyberte si z "nového kanála". Ao clicar, escolhemos o nome do Canal, escrevemos uma descrição para ele, e então decisionimos quantos dos 8 campos possises is utilizaríamos. Žiadne prípad, použitie 7.
Ao criar um canal, é gerado um ID do Canal, uma Chave de Escrita e uma Chave de Leitura. ID ID kanála sa bude skladať z kanála a bude mať Chave de Escrita na aba "Chaves". Para que o código Python envie as informações obtidas para o canal é, needário configurá-lo ao ID do Canal:
channelID = "Insira o ID do Canal aqui"
Pozrite sa na Chave de Escrita:
apiKey = "Insira a Chave de Escrita"
Všetky typy kanálov, ktorých konfigurácia nie je potrebná pre konfiguráciu Pythonu:.
useUnsecuredTCP = True
useUnsecuredWebsockets = FalseuseSSLWebsockets = False mqttHost = "mqtt.thingspeak.com", ak useUnsecuredTCP: tTransport = "tcp" tPort = 1883 tTLS = Žiadne, ak useUnsecuredWebsockets: tTransport = "websocketsTSport = tSort = 80 webové zásuvky "tTLS = {'ca_certs':"/etc/ssl/certs/ca-certificates.crt ", 'tls_version': ssl. PROTOCOL_TLSv1} tPort = 443 topic =" kanály/" + channelID +"/publikovať/" + apiKey
Niektoré z nasledujúcich webových aplikácií, ktoré môžu obsahovať jednu z najaktuálnejších teplôt temperovaných 2 (Campo que escolhemos para ser a Temperatura), é needario indicar o "field2 ="+variável_temperatura, como no código a seguir:
tPayload = "field1 =" + str (ardAgua) + "& field2 =" + str (ardTemp) + "& field3 =" + str (ardPres) + "& field4 =" + str (ardUV) + "& field5 =" + str (údaje) + "& field6 =" + str (vel_vento) + "& field7 =" + str (umidade)
Ďalšie informácie o kanáloch a programoch v Pythone, ktoré sú k dispozícii pre všetky typy webových služieb a webové služby. No ThingSpeak, ktoré môžu byť realizované na základe monitorovania aktivít spoločnosti.
Odporúča:
Automatizované rozloženie modelovej železnice na dvoch vlakoch (V2.0) - Na základe Arduina: 15 krokov (s obrázkami)
Automatizované rozloženie modelovej železnice na dvoch vlakoch (V2.0) | Na základe Arduino: Automatizácia rozloženia modelovej železnice pomocou mikrokontrolérov Arduino je skvelý spôsob, ako zlúčiť mikrokontroléry, programovanie a modelové železnice do jedného koníčka. K dispozícii je veľa projektov o autonómnom vedení vlaku na modelovej železnici
Automatizované svetlo zaujatosti televízora: 6 krokov (s obrázkami)
Automatizované svetlo predpojatosti v televízore: Ahoj všetci, v tomto návode vyrobíme svetlo s predsudkom televízora, ktoré sa automaticky stmieva, keď je tma. Toto svetlo s predsudkom je jednoduché zariadenie, ktoré je možné pridať k akémukoľvek televízoru s cieľom osvetliť stenu za televízorom. Toto osvetlenie znižuje
Svadobný fotografický stánok Arduino - 3D tlačené súčiastky, automatizované a s nízkym rozpočtom: 22 krokov (s obrázkami)
Svadobná fotografická búdka Arduino - 3D tlačené súčiastky, automatizované a s nízkym rozpočtom: Nedávno som bol pozvaný na svadbu brata môjho partnera a oni sa ma predtým pýtali, či by sme im nemohli postaviť fotobúdku, pretože ich prenájom stojí príliš veľa. Na to sme prišli a po niekoľkých komplimentoch som sa rozhodol zmeniť to na inštruktážne
Kocky VISUINO, ktoré používajú 0,96 palcový 4 -pinový OLED modul: 7 krokov
Kocky VISUINO s kockou s použitím 0,96 palcového 4 -pinového OLED modulu: V tomto návode použijeme OLED LCD a Visuino na výrobu hracích kociek, keď stlačíme tlačidlo na doske. Pozrite si ukážkové video
Ochrana osobných údajov k počítaču - Automatizované súkromie Arduino pre váš počítač: 5 krokov (s obrázkami)
Pc -Privacy - Arduino automatizované súkromie pre váš počítač: Problém: Ak žijete s inými ľuďmi alebo máte vlastnú kanceláriu, možno ste oboznámení s problémom ľudí, ktorí sa náhodne objavia vo vašej miestnosti, keď pracujete na dôverných údajoch alebo máte len niektoré na 2. obrazovke sa od h otvoria podivné veci