Hallo iedereen, hierin zelfgemaakt Ik zal laten zien hoe u een goedkope, eenvoudige, maar tegelijkertijd efficiënte platformgebaseerde dataparser van internet kunt maken Arduino met Wifi-module. Hiermee kunt u eenvoudig bijna alle informatie van het netwerk binnen enkele seconden achterhalen. Dit kan het aantal abonnees op youtube zijn, het aantal inkomende berichten, of ze een zelfgemaakt product hebben gepubliceerd, etc.
Hier is een eenvoudig diagram om te monteren.
Voordat ik het artikel begin te lezen, zou ik aanraden om een video te bekijken die de mogelijkheden van zelfgemaakt werk en de praktische toepassing ervan laat zien.
We hebben nodig:
-Het platform is gebaseerd op de ESP-familie, in mijn gevallen is het WeMos D1 R2
-LCD-display voor informatie-uitvoer, ik heb een populaire LCD 1602 met I2C-module
-draad en knoop (hoewel je het misschien niet nodig hebt)
Ook
-USB-kabel (voor het downloaden van firmware)
-WiFI-toegangspunt
- optioneel
- eigen site en domein (voor het afhandelen van complexe vragen van populaire sites)
Voordat u doorgaat met de volgende stappen, moet u ervoor zorgen dat de omgeving waarmee u de schets gaat downloaden, wordt ondersteund door de ESP-microcontrollerfamilie. Om de Arduino IDE te configureren, ga naar habr en volg de installatie-instructies. Link:
https://habr.com/en/post/371853/
Gedetailleerde fabricagebeschrijving:
Conventioneel kunnen de fasen in 2 delen worden verdeeld.
1 Montage van het "ijzeren" deel
2 Het programma downloaden en instellen
De montage van de eerste trap eindigt erg snel. We halen het uit de afbeelding hierboven en dat is alles.
Weergavemodule
VCC - 5V
GND - GND
SCL - D15
SDA - D14
Buttun - GND naar D7
Al deze instellingen kunnen in de sketch zelf gewijzigd worden als je een ander platform of andere versie van de microcontroller hebt.
De tweede fase is iets gecompliceerder, open de Arduino IDE, selecteer het juiste bord en geef de poort aan waarop deze zich bevindt. In mijn gevallen is het bord: WeMos D1 R1 en poort 3
Alle andere instellingen kunnen standaard blijven staan.
De schets zelf:
Houd er rekening mee dat er 2 extra bibliotheken moeten zijn geïnstalleerd: ArduinoJson.h en LiquidCrystal_I2C.h !
Vervolgens wijzigen we de belangrijke variabelen in de schetsinstellingen, dit zijn SSID (naam van het Wifi-punt) en wachtwoord (wachtwoord van het Wifi-punt)
Daarna kunt u de firmware downloaden.
Als het beeldscherm correct is aangesloten, wordt de volgende informatie erop weergegeven.
Als dit niet gebeurt, controleer dan de volgende instelling.
Voer een geldig I2C-adres in c. In ieder geval is het beter om de eerste keer na het downloaden van de schets de seriële poort te openen en ervoor te zorgen dat de verbinding tot stand is gebracht.
Als dit niet gebeurt, controleer dan nogmaals de gegevens van het wifi-punt.
Als alles met succes is opgestart en verbonden, ziet u op de schermen het volgende:
U kunt ook op de knop klikken en controleren of de gegevens zijn bijgewerkt (als u deze hebt aangesloten).
Alles, in dit stadium is 95% van het werk gedaan, het blijft alleen om in de configuratie aan te geven welke gegevens moeten worden geparseerd. Ze staan allemaal in constante "A"
const String A = "http://jsonplaceholder.typicode.com/users/1,name,User 1 :; http: //jsonplaceholder.typicode.com/users/2,name,User 2:;";
De syntaxis voor schrijven is dus eenvoudig. Alle bronnen zijn onderverdeeld in groepen gescheiden door puntkomma's (;).
Elke groep bestaat uit 3 hoofdparameters, dit
- URL waar het verzoek naartoe gaat
- De waarde die moet worden opgehaald.
- Extra tekst weergegeven.
Op deze manier
http://jsonplaceholder.typicode.com/users/1,name,User 1:
==URL = http://jsonplaceholder.typicode.com/users/1
KEY = naam
text = "Gebruiker 1:"
Als je nu de link volgt
http://jsonplaceholder.typicode.com/users/1
Dan kun je de volgende informatie zienWaar het eigenlijk zichtbaar is waar de waarde "naam" vandaan komt.
U kunt dus al informatie uit eenvoudige sites halen. Maar deze methode is niet geschikt voor het werken met "serieuze" sites die werken met SSL-certificaten, die verzoeken controleren en eventuele captcha weergeven als ze iets niet leuk vinden, en bovendien is de gegevensuitvoer te gecompliceerd om met geweld te verwerken arduino. " Omdat ik niet heb geprobeerd dit allemaal te "omzeilen", maar er zijn dingen die ofwel erg onstabiel werken of helemaal niet werken. Constante certificaatupdates helpen niet veel. Daarom is het, naar mijn mening, de meest redelijke oplossing om uw eigen website te maken, "waarin" al deze verzoeken door arduino zelf zullen worden uitgevoerd, verwerkt en weergegeven in een "vereenvoudigde" vorm. Hoe een site te maken er zijn veel artikelen / video's / forums, enz. Op dit moment is dit geen probleem. Stel dat je er een hebt, upload dan het volgende bestand ernaar. Noem het zoals je wilt, laten we zeggen "pars.php".
php
/ *
Code voor het ontleden van informatie van sites en verdere weergave
Versie v0.1, als er fouten zijn, schrijf dan een opmerking onder de video