Hej alle sammen i dette hjemmelavet Jeg vil vise, hvordan du kan lave en billig, enkel, men på samme tid effektiv platformbaseret dataparser fra Internettet Arduino med Wifi-modul. Med det kan du nemt finde ud af næsten alle oplysninger fra netværket på få sekunder. Dette kan være antallet af abonnenter på youtube, antallet af indgående beskeder, om de har udgivet et hjemmelavet produkt osv.
Her er et simpelt diagram, der skal samles.
Før jeg begynder at læse artiklen, vil jeg anbefale at se en video, der viser mulighederne for hjemmelavet arbejde og dets praktiske anvendelse.
Vi har brug for:
-Platformen er i mine tilfælde baseret på ESP-familien, og dette er WeMos D1 R2
-LCD-skærm til informationsudgang, jeg har en populær LCD 1602 med I2C-modul
-tråd og knap (selvom du muligvis ikke har brug for det)
Så godt
-USB-kabel (til download af firmware)
-WiFI-adgangspunkt
- valgfri
- eget sted og domæne (til håndtering af komplekse forespørgsler om populære websteder)
Før du går videre til de næste trin, skal du sørge for, at miljøet, som du henter skitsen igennem, understøttes af ESP-mikrokontrollerfamilien. Gå til habr og følg installationsinstruktionerne for at konfigurere Arduino IDE. link:
https://habr.com/ru/post/371853/
Detaljeret fremstillingsbeskrivelse:
Traditionelt kan etaperne opdeles i 2 dele.
1 Montering af "jern" -delen
2 Download programmet og opsæt det
Samlingen i det første trin slutter meget hurtigt. Vi samler det fra billedet ovenfor, og det er det.
Displaymodul
VCC - 5V
GND - GND
SCL - D15
SDA - D14
Knap - GND til D7
Alle disse indstillinger kan ændres i selve skitsen, hvis du har en anden platform eller version af mikrokontrolleren.
Det andet trin er en smule mere kompliceret, åbn Arduino IDE, vælg det relevante bord og angiv den port, den befinder sig på. I mine tilfælde bestyrelsen: WeMos D1 R1 og port 3
Alle andre indstillinger kan forlades som standard.
Selve skitsen:
Bemærk, at du skal have 2 ekstra biblioteker installeret.Dette er ArduinoJson.h og LiquidCrystal_I2C.h !
Derefter ændrer vi de vigtige variabler i skitsindstillingerne, disse er SSID (navn på Wifi-punktet) og adgangskode (adgangskode til Wifi-punktet)
Herefter kan du downloade firmwaren.
Hvis displayet er tilsluttet korrekt, vises følgende information på det.
Hvis dette ikke sker, skal du kontrollere følgende indstilling.
Indtast en gyldig I2C-adresse c. Under alle omstændigheder er det bedre første gang efter download af skitsen at åbne den serielle port, og sørg for, at forbindelsen er etableret.
Hvis dette ikke sker, skal du dobbelttjekke dataene for WiFi-punktet.
Hvis alt er startet og tilsluttet, skal du på følgende skærme se følgende:
Du kan også klikke på knappen og kontrollere, om dataene er opdateret (hvis du har tilsluttet dem).
Alt på dette trin 95% af arbejdet er udført, det gjenstår kun at indikere i konfigurationen de data, der skal parses. De er alle i konstant "A"
const String A = "http://jsonplaceholder.typicode.com/users/1,name,User 1:; http: //jsonplaceholder.typicode.com/users/2,name,User 2:;";
Så syntaksen til skrivning er enkel. Alle kilder er opdelt i grupper adskilt med semikolon (;).
Hver gruppe består af 3 hovedparametre, dette
- URL, som anmodningen går til
- Den værdi, der skal hentes.
- Ekstra tekst vises.
På denne måde
http://jsonplaceholder.typicode.com/users/1,name,User 1:
==URL = http://jsonplaceholder.typicode.com/users/1
Nøgle = navn
tekst = "Bruger 1:"
Hvis du følger linket nu
http://jsonplaceholder.typicode.com/users/1
Så kan du se følgende informationHvor det faktisk er synligt, hvorfra værdien "navn" kom fra.
Således kan du allerede udtrække oplysninger fra enkle websteder. Men denne metode er ikke egnet til at arbejde med "seriøse" websteder, der arbejder med SSL-certifikater, som kontrollerer anmodninger og viser eventuelle captcha, hvis de ikke kan lide noget, og desuden er dataoutputet for kompliceret til at behandles med kræfter arduino. " Da jeg ikke har prøvet at "komme rundt" alt dette, men der er ting, der enten fungerer meget ustabilt eller ikke fungerer overhovedet. Konstante certifikatopdateringer hjælper ikke meget. Derfor, som jeg tror, er den mest fornuftige løsning at oprette din egen webside, "inde", hvor alle disse anmodninger vil blive udført, behandlet og vist af arduino selv i en "forenklet" form. Hvordan man opretter et websted der er mange artikler / videoer / fora osv., På nuværende tidspunkt er dette ikke et problem. Antag, at du har en, og upload derefter følgende fil til den. Kald det, hvad du kan lide, vel, lad os sige "pars.php".
php
/ *
Kode til analyse af oplysninger fra websteder og yderligere visning
Version v0.1, hvis der er nogen fejl, bedes du skrive en kommentar under videoen