Inhoudsopgave:

YouTube-abonneeteller met een ESP8266-bord: 9 stappen (met afbeeldingen)
YouTube-abonneeteller met een ESP8266-bord: 9 stappen (met afbeeldingen)

Video: YouTube-abonneeteller met een ESP8266-bord: 9 stappen (met afbeeldingen)

Video: YouTube-abonneeteller met een ESP8266-bord: 9 stappen (met afbeeldingen)
Video: 📌 Zelf een Arduino WiFi YouTube abonnee teller (met klok!) maken [4K] ⏰ 2024, Juli-
Anonim
Image
Image
YouTube-abonneeteller met een ESP8266-bord
YouTube-abonneeteller met een ESP8266-bord
YouTube-abonneeteller met een ESP8266-bord
YouTube-abonneeteller met een ESP8266-bord

Beste vrienden, welkom bij een ander ESP8266-project. Vandaag gaan we een doe-het-zelf YouTube-abonneeteller bouwen met een groot LCD-scherm en een 3D-geprinte behuizing. Laten we beginnen!

In deze tutorial gaan we dit maken: Een doe-het-zelf YouTube-abonneeteller. Het maakt gebruik van het grote I2C-scherm dat ik een paar weken geleden heb beoordeeld om het aantal abonnees weer te geven met grote, gemakkelijk te zien afstandsnummers. De behuizing van de toonbank is 3D geprint met behulp van houtfilament. Ik heb deze keer twee verschillende houtfilamenten gebruikt en ik ben echt dol op de kleurencombinatie! Volgens mij ziet het er zo gaaf uit. Ik wilde echt een YouTube-abonneeteller om me te helpen gemotiveerd te blijven! Het maken van video's kost veel tijd en moeite. Als je weet dat 35.000 mensen wachten op een video van jou, je steeds harder werkt om al deze mensen tevreden te houden, geeft dat een mooi motief. Dus deze teller zal me helpen gefocust te blijven. Laten we nu kijken hoe we dit project kunnen bouwen!

Stap 1: Verkrijg alle onderdelen

Krijg alle onderdelen
Krijg alle onderdelen
Krijg alle onderdelen
Krijg alle onderdelen

Het project is heel eenvoudig en gemakkelijk te bouwen. De onderdelen die nodig zijn om dit project te bouwen zijn de volgende:

  • Een Wemos D1 mini-bord ▶
  • Een 20x4 LCD-scherm ▶
  • Sommige draden ▶
  • Powerbank ▶

De kosten van de elektronica zijn minder dan $ 10

Als je de behuizing gaat 3D-printen, heb je ook twee rollen van het houtfilament nodig. Ik gebruikte FormFutura's Easy Wood Birch en Coconut filamenten.

Kokosfilament ▶

Berken filament ▶

Voor de behuizing hebben we ongeveer 100 gram materiaal nodig, dus het kost ons ongeveer $ 5, dus de totale kosten van het project zijn ongeveer $ 15.

Stap 2: Het Wemos D1-minibord

Image
Image

De Wemos D1 mini is een fantastisch nieuw bord dat ongeveer $ 5 kost!

Het bord is erg klein. Het maakt gebruik van de ESP8266 EX-chip die kan werken op een frequentie tot 160 MHz. Het heeft veel geheugen, 64Kb instructie-RAM, 96Kb data-RAM en 4 MB flash-geheugen om je programma's op te slaan. Het biedt WiFi-connectiviteit, Over the Air-updates en nog veel meer. Het D1-minibord biedt 11 GPIO-pinnen en één analoge ingang. Ondanks zijn kleine formaat worden er veel schilden ontwikkeld voor dit bord, wat ik geweldig vind, omdat we op deze manier gemakkelijk geweldige Internet of Things-projecten kunnen bouwen! Natuurlijk kunnen we dit bord programmeren met behulp van de Arduino IDE.

Het bord presteert ondanks zijn kleine formaat beter dan alle andere Arduino-compatibele borden. Ik heb een vergelijking gemaakt tussen de ESP8266 en Arduino, je kunt de video bekijken die ik in deze stap heb bijgevoegd. Dit bord is 17 keer sneller dan een Arduino Uno! Het presteert ook beter dan het snelste Arduino-bord, de Arduino Due. Dat alles, met een kostprijs van minder dan $ 6! Indrukwekkend.

Download het hier ▶

Stap 3: Het 20x4 karakter LCD-scherm

Image
Image
Bouw het prototypecircuit
Bouw het prototypecircuit

Ik ontdekte dit scherm enige tijd geleden op Banggood.com. Het trok mijn aandacht omdat het niet duur is, het kost ongeveer $ 7, het is groot en het gebruikt de I2C-interface. Omdat het de I2C-interface gebruikt, is het extreem eenvoudig te gebruiken met Arduino. We hoeven maar twee draden aan te sluiten. Ik had een groot, gemakkelijk aan te sluiten display nodig om een aantal projecten te prototypen en het enige display dat de I2C-interface gebruikte, was dit kleine OLED-display. Nu hebben we een groot I2C-display om te gebruiken in onze projecten! Super goed!

Zoals je kunt zien, is het scherm erg groot. Het kan 20 tekens per regel weergeven en heeft 4 regels. Het kan geen afbeeldingen tekenen, alleen karakters. Aan de achterkant vinden we een klein zwart bord dat op het display is gesoldeerd. Op het zwarte bord zit een trimpot die het contrast van het LCD regelt.

Download het hier ▶

Stap 4: Bouw het prototypecircuit

Bouw het prototypecircuit
Bouw het prototypecircuit
Bouw het prototypecircuit
Bouw het prototypecircuit

De verbinding kan niet eenvoudiger.

Het LCD-scherm aansluiten

  • Vcc van het display gaat naar de 5V-uitgang van de Wemos D1 mini
  • GND van het display gaat naar de Wemos GND
  • SDA-pin van het display gaat naar D2-pin van het Wemos-bord
  • SCL-pin van het display gaat naar D1-pin van het Wemos-bord

Dat is het! Als we nu het project opstarten, kunnen we zien dat na een paar seconden het bord is verbonden met het WiFi-netwerk en op het scherm wordt het nummer van de abonnees van dit kanaal met grote cijfers weergegeven. Het project werkt zoals verwacht, dus we kunnen verder.

Stap 5: 3D print de behuizing

3D print de behuizing
3D print de behuizing
3D print de behuizing
3D print de behuizing
3D print de behuizing
3D print de behuizing

De volgende stap is het 3D printen van de behuizing. Ik heb deze behuizing ontworpen met behulp van de gratis Fusion 360-software.

Ik heb veel verschillende 3D-ontwerpsoftware geprobeerd, maar Fusion 360 werd mijn favoriet om de volgende redenen.

  • Het is zeer krachtig en het is gratis
  • Het is relatief eenvoudig te gebruiken
  • Er zijn veel tutorials online over het gebruik van deze software

Ik heb ongeveer een uur nodig gehad om deze behuizing te ontwerpen en in gedachten te houden dat ik erg nieuw ben in 3D-ontwerp en 3D-printen. Ik heb de ontwerpbestanden geüpload naar Thingiverse en kan ze gratis downloaden.

Ik gebruikte Formfutura's EasyWood Coconut-filament voor de twee delen en Birch-filament voor het voorste deel.

Download het hier ▶

Stap 6: Voltooi de 3D-afdruk

Voltooi de 3D-afdruk
Voltooi de 3D-afdruk
Voltooi de 3D-afdruk
Voltooi de 3D-afdruk
Voltooi de 3D-afdruk
Voltooi de 3D-afdruk
Voltooi de 3D-afdruk
Voltooi de 3D-afdruk

Het was een gemakkelijke en snelle afdruk. Het kostte me ongeveer 5 uur om alle onderdelen af te drukken met mijn Wanhao i3 3D-printer. maar het resultaat was fantastisch!

Nadat de onderdelen waren afgedrukt, heb ik ze geschuurd met fijn schuurpapier en daarna heb ik er houtvernis op aangebracht. Ik heb voor elke kleur een andere houtvernis gebruikt en die heb ik aangebracht met een klein stukje stof.

Vervolgens laat ik de lak 24 uur drogen en het eindresultaat is geweldig!

Stap 7: Alles met elkaar verbinden

Alles met elkaar verbinden
Alles met elkaar verbinden
Alles met elkaar verbinden
Alles met elkaar verbinden
Alles met elkaar verbinden
Alles met elkaar verbinden

Nadat de vernis droog was, was het tijd om de elektronica in de behuizing te plaatsen.

Ik heb het voorstuk op zijn plaats gelijmd en vervolgens heb ik het display op zijn exacte positie geplaatst.

Ik heb ook wat hete lijm gebruikt om het scherm op zijn plaats te houden. Daarna heb ik enkele vrouwelijke draden gesoldeerd aan de Wemos D1-minipinnen die we gebruiken, en vervolgens heb ik ze op het display aangesloten. Ik heb het project getest om te zien dat alles goed werkt, en daarna heb ik hete lijm gebruikt om het bord op zijn plaats te lijmen. De laatste stap was het lijmen van de achterkant van de behuizing!

Ons project is klaar en het ziet er zo gaaf uit! Naar mijn mening ziet het er niet plastic uit zoals de meeste 3D-geprinte objecten eruit zien! Ik hou echt van hoe het bleek. Laten we nu de code van het project bekijken.

Stap 8: De code van het project

De code van het project
De code van het project
De code van het project
De code van het project
De code van het project
De code van het project
De code van het project
De code van het project

Het project haalt het aantal abonnees van een bepaald YouTube-kanaal op met behulp van de YouTube API. We sturen een verzoek naar een google-server en de server antwoordt met een JSON-bestand met het aantal abonnees. Om de YouTube API te gebruiken, hebben we een API-sleutel nodig.

Laten we dat eerst doen. We moeten dus inloggen op ons Google-account en de ontwikkelaarsconsole bezoeken. (https://console.developers.google.com) We klikken om een nieuw project te maken, we geven het een naam en we drukken op maken. Vervolgens schakelen we met het nieuwe project geselecteerd de YouTube Data API in. De laatste stap is het maken van referenties. We drukken op de Credentials-toets en vervolgens selecteren we in het venster dat verschijnt om een nieuwe API-sleutel te maken. We drukken dicht en we zijn klaar. Bekijk de video bij de eerste stap voor meer informatie.

Laten we nu snel de code van het project bekijken. Allereerst moeten we enkele bibliotheken downloaden. We hebben een versie van de LiquidCrystal_I2C-bibliotheek nodig die werkt met de ESP8266-chip. We hebben ook de uitstekende ArduinoJSON-bibliotheek nodig.

  1. Arduino JSON:
  2. Bibliotheek weergeven:

Vervolgens moeten we enkele variabelen definiëren. We stellen de ssid en het wachtwoord voor de wifi-verbinding in. We moeten ook de API-sleutel die we hebben gemaakt in de juiste variabele invoeren. Ten slotte moeten we de kanaal-ID invoeren van het YouTube-kanaal waarvan we het aantal abonnees willen controleren.

const char* ssid = "SSID"; // SSID van lokaal netwerkconst char* wachtwoord = "WACHTWOORD"; // Wachtwoord op netwerk String apiKey = "YOURAPIKEY"; //API KEY String channelId = "UCxqx59koIGfGRRGeEm5qzjQ"; // YouTube-kanaal-ID

De code is relatief eenvoudig. Eerst initialiseren we het display en maken we enkele aangepaste tekens voor het display. We hebben deze karakters nodig om grote cijfers te produceren. Vergeet niet dat het display dat we gebruiken een karakter-LCD-display is, het kan geen afbeeldingen weergeven. Het kan slechts 4 regels tekst weergeven. Om grote getallen te maken, gebruiken we twee regels tekst en enkele aangepaste tekens!

void setup() { Serial.begin(9600); int cursorPositie=0;

lcd.begin(20, 4);

lcd.setCursor(0, 0); lcd.print("Verbinden….");

createCustomChars();

WiFi.begin(ssid, wachtwoord); while (WiFi.status() != WL_CONNECTED) {vertraging (500); lcd.setCursor(cursorPositie, 1); lcd.print("."); cursorPositie++; }

Dan maken we verbinding met de wifi en krijgen we elke minuut de abonnees. Om het aantal abonnees te krijgen, sturen we een verzoek naar een Google-server en analyseren we de JSON-boete die het antwoordt met behulp van de ArduinoJSON-bibliotheek. We slaan het aantal abonnees op in een variabele. In de loop-functie controleren we of er een wijziging is in het aantal abonnees, wissen we het display en drukken we het nieuwe nummer af.

void loop() { int lengte; String abonneesString = String(getSubscribers()); if(abonnees != abonneesBefore) { lcd.clear(); lengte = abonneesString.length(); printAbonnees(lengte, abonneesString); abonneesVoor = abonnees; } vertraging (60000); }

Zoals altijd vindt u de code van het project bijgevoegd in deze Instructable. Aangezien ik de code van tijd tot tijd update, ga je voor de nieuwste versie van de code naar de website van het project:

Stap 9: Eindresultaat

Eindresultaat
Eindresultaat
Eindresultaat
Eindresultaat

Als laatste gedachte, ik hou echt van dit project. Het was heel gemakkelijk te bouwen en niet duur. Natuurlijk is er ruimte voor verbeteringen. We kunnen een batterij in de behuizing of zelfs geluid toevoegen. Ik denk erover om een 18650 lithiumbatterij toe te voegen samen met het wemos-batterijschild. Ik heb het in dit project niet gedaan omdat ik het Wemos-batterijschild nog wat meer moet testen. Dit kleine schild kan lithiumbatterijen opladen en beschermen, zodat het een gemakkelijke manier is om oplaadbare batterijen aan onze projecten toe te voegen.

Ik hoor graag uw mening over dit project. Vind je het leuk hoe het eruit ziet en kun je verbeteringen aan dit project bedenken? Plaats uw opmerkingen in de opmerkingen hieronder.

Aanbevolen: