Inhoudsopgave:

Trek en geef gegevens van elke website weer via wifi (Northern Lights-indicator) met NodeMcu - Ajarnpa
Trek en geef gegevens van elke website weer via wifi (Northern Lights-indicator) met NodeMcu - Ajarnpa

Video: Trek en geef gegevens van elke website weer via wifi (Northern Lights-indicator) met NodeMcu - Ajarnpa

Video: Trek en geef gegevens van elke website weer via wifi (Northern Lights-indicator) met NodeMcu - Ajarnpa
Video: On the traces of an Ancient Civilization? 🗿 What if we have been mistaken on our past? 2024, November
Anonim
Trek en geef gegevens van elke website weer via wifi (Northern Lights-indicator) met NodeMcu
Trek en geef gegevens van elke website weer via wifi (Northern Lights-indicator) met NodeMcu

Mijn motivatie: ik heb VEEL instructables gezien over het opzetten / gebruiken van een NodeMCU (gebouwd op de ESP8266-module) voor het maken van IoT-projecten (internet of things). Er waren echter maar heel weinig van deze tutorials die alle details/code/diagrammen bevatten die een zeer beginner kan volgen, van begin tot eind, en geen van hen deed precies wat ik wilde.

Wat zal dit dekken?: Dit omvat alles wat u moet weten (en dat heb ik niet gedaan), inclusief:

  1. Materialen (wat ik specifiek heb gebruikt)
  2. Arduino, NodeMcu, ESP8266, wat is het verschil?
  3. Aan de slag met de NodeMcu

    1. De software instellen (Arduino IDE)
    2. Een LED laten knipperen
    3. Opties voor het voeden van de NodeMcu
    4. Verbinding maken met internet
  4. Gegevens van een website halen

    1. "Wijzen" naar de gewenste informatie op de website
    2. Thingspeak/ ThingHTTP/ API's (wees niet bang, geen codering nodig)
    3. Toegang tot deze gegevens vanuit de NodeMCU
  5. De gegevens weergeven

    1. Wat ik heb gebruikt (hoe een 7-segments display te bedraden)
    2. Enkele ideeën/dingen die ik met meer tijd zou hebben gedaan
  6. Hoe een doos te bouwen, denk ik

DISCLAIMER: ik heb VEEL video's bekeken om te leren hoe dit te maken, en bijna alle code is samengesteld uit andere bronnen en ik kan ze niet allemaal onthouden. De belangrijkste bron van thinghttp-inspiratie was deze man die in wezen hetzelfde doet als ik beschrijf, maar ik ontdekte wat touchscreen-dingen waren en wat niet verwarrend was. Ik beschouw dit instructable meer als een inleiding tot de NodeMcu en een soort van IoT-projecten in plaats van een specifiek object, maar de inspiratie voor deze specifieke (Northern Lights) indicator was dit instructable uit 2008. Ik hield van de manier waarop het werd beschreven als een "slechte man's ambient orb", die omgevingsinformatie zoals aandelen, YouTube-weergaven of het weer weergeeft zonder het gebruik van telefoons of andere opdringerige middelen.

Stap 1: Materialen

Materialen
Materialen
Materialen
Materialen

Deze heb je NODIG:

1. Een NodeMcu-bord

2. Een micro-USB-kabel om de code naar het bord te uploaden en het eindproduct van stroom te voorzien als je dat wilt.

3. LED's, jumperdraden (mannelijk-mannelijk, mannelijk-vrouwelijk) en een breadboard om dingen aan te sluiten … dit is een soort van gegeven, maar wat u ook wilt "uitvoeren" (weergeven of doen afhankelijk van de gegevens) heeft hardware nodig. Als je de ambient orb wilt nabootsen, of precies wilt maken wat ik deed, zijn een 7-segments display of sommige LED's net subtiel genoeg. Het breadboard is nodig voor "prototyping" voordat je dingen echt met elkaar verbindt, en ik zal uitleggen hoe ze werken / hoe dingen zijn verbonden in de relevante sectie. Als je nog maar een beginner bent, koop dan gewoon een arduino-starterkit, want er zitten veel kleine dingen in (inclusief alles wat ik heb gebruikt), plus een arduino uno voor een ander project.

Dingen die je MOGELIJK nodig hebt:

4. Een breadboard-voedingsmodule (als je de NodeMcu wilt voeden met een standaard voedingsadapter … zou ik dit niet doen, omdat je hem gewoon kunt voeden met een micro-USB, wat veel handiger is. Als je je project wilt maken volledig draadloos, dan heb je natuurlijk wel een batterijpakket nodig, maar daar kom ik op terug in het powergedeelte.

5. 1/4 grenen voor een kleine doos (als je wilt)

6. Wat fineer om je doos te bedekken en/of als diffusor voor je LED of display

7. Super (CA) en/of houtlijm om 5 en 6 te bevestigen.

Stap 2: Wat is een Node MCU?

Wat is een Node-MCU?
Wat is een Node-MCU?
Wat is een Node-MCU?
Wat is een Node-MCU?

Als je een echte beginner bent op het gebied van elektronica zoals ik, vraag je je misschien af wat het verschil is tussen een Arduino-bord en een NodeMcu-bord, en misschien heb je ook gehoord van de ESP8266… wat is het verschil tussen deze?!?

Dit is geenszins technisch, maar dit is wat u moet weten.

De Arduino heeft de mogelijkheid om ingangen van een reeks pinnen te lezen, "dingen te doen" met behulp van deze ingangen en vervolgens uit te voeren naar een reeks pinnen. Het is eigenlijk een kleine computer. Arduino maakt VEEL verschillende boards, en veel "schilden" die op de boards kunnen worden aangesloten om extra dingen te doen. De producten die ze momenteel verkopen en die verbinding maken met internet, zijn erg duur en hebben niet veel volgers. Code wordt geschreven en geüpload naar de boards vanuit de "Arduino IDE"-software, die C en C++ ondersteunt, met een andere speciale opmaak erin. U hoeft niet te weten hoe u C of C++ programmeert, aangezien er zo'n een waanzinnige overvloed aan code die online beschikbaar is, maar enige bekendheid met programmeren (met name dingen als while en for-lussen, variabele declaratie en bereik enz.) helpt het begrip te versnellen. De Arduino IDE biedt ook een enkele locatie voor het downloaden van de benodigde bibliotheken voor verschillende boards (daarover later meer, bij het opzetten van de NodeMcu).

De ESP8266 is een extreem goedkope wifi-module die in feite de voor internet geschikte arduino-schilden overbodig heeft gemaakt (hoewel je nog steeds arduino-borden ziet met ingebouwde wifi). De doe-het-zelf-gemeenschap rond de ESP8266 is zo groot dat het bijna de enige logische keuze is voor het maken van apparaten met internettoegang. Vaak wordt het gebruikt in combinatie met een arduino-bord via de seriële pinnen (Rx en Tx), hoewel ik denk dat sommige mensen ze "stand alone" gebruiken, maar omdat de microchip zo klein is en moeilijk om mee te communiceren (hij heeft in feite 6 pinnen: 2 voor serieel (tegen dingen praten), 2 voor voeding (aarde en VCC), en 2 GPIO (ingangsuitgang voor algemeen gebruik), plus het werkt op 3,3V en dus zal 5V het vernietigen) dat het snel werd vervangen door …

De NodeMcu, een open source ontwikkelbord net als de Arduino, behalve met gebouwd op de ESP8266. Je kunt de ESP8266 die in het NodeMcu-bord is ingebouwd, omcirkeld zien in de foto's die ik heb bijgevoegd. Dit bord is perfect te programmeren en te gebruiken, en is in principe vergelijkbaar met een arduino nano. Het heeft veel meer pinnen en kan via een USB rechtstreeks vanaf uw computer worden geprogrammeerd, zonder dat u door een ander bord hoeft te gaan. Hoewel het bord technisch nog steeds werkt op 3.3V-logica in plaats van op 5V-logica, heeft het ingebouwde chips om deze spanning te beheren, zodat het net als uw Arduino kan worden gevoed, hetzij via USB of via de VCC (voltage in) pinnen. Kortom, voor alles van IoT is de NodeMcu een goed, eenvoudig, enkel bord om te gebruiken, en is WiFi ingeschakeld … hoewel het ook een prima keuze is voor niet-wifi-projecten. Technisch gezien is de "out of the box" -taal van de NodeMcu LUA, maar na een eenmalige installatie binnen de Arduino IDE, kun je het net als elke andere Arduino programmeren.

Stap 3: Aan de slag met de NodeMcu

Ik heb de volgende video gebruikt om mijn eerste keer opstarten met de NodeMcu te doen, en als je al zijn aanwijzingen precies opvolgt, zou alles goed moeten werken.

1. De software instellen (Arduino IDE)

  • Download de Arduino IDE via de bovenstaande link en selecteer "gewoon downloaden" als je geen donatie kunt doen
  • Open de Arduino IDE-software
  • Plak onder Bestand -> Voorkeuren, Extra Boards Manager-URL's de volgende link "https://arduino.esp8266.com/versions/2.5.0-beta2/package_esp8266com_index.json"
  • Scrol onder Tools -> Board -> Boards Manager (bovenaan) naar beneden of zoek naar ESP8266 en klik op installeren
  • Mogelijk moet je de Arduino IDE opnieuw opstarten om dit te laten verschijnen, maar klik nu op Tools-> Board en selecteer het board dat je hebt, d.w.z. de NodeMcu 1.0 ESP12-E-module
  • U hoeft deze stap misschien niet uit te voeren, maar sluit de usb aan op uw computer vanaf uw NodeMcu (lampjes knipperen) en ga naar Configuratiescherm-> Apparaatbeheer -> Poorten -> en noteer vervolgens de COM-poort die is gelabeld "Silicone Labs…" dit is de COM-poort die de NodeMcu gebruikt
  • Ga terug naar Arduino IDE en naar Tools-> Port: en zorg ervoor dat deze poort is geselecteerd
  • Alles zou goed moeten zijn, maar zorg ervoor dat onder Tools de flitsgrootte 4 is (maak je geen zorgen over de SPIFFS, wat er ook is geselecteerd, is goed), en dat de uploadsnelheid 115200 is, denk ik … De NodeMcu gebruikt eigenlijk een baudrate van 9600 om informatie terug te sturen naar de seriële monitor (als je niet weet wat dit betekent, maak je geen zorgen, het zal in het voorbeeld verschijnen), maar als in de code en vervolgens in de monitor, heb je 9600, het is goed.

2. Een LED laten knipperen

Dit is als de "Hallo wereld" (d.w.z. baby $h1t) van programmeren, maar het laat je weten dat alles goed is met het bord, en zal je helpen vertrouwd te raken met de Arduino IDE. Dit demonstreert NIET de WiFi-mogelijkheden van het bord (dat doen we in het volgende voorbeeld), maar zorgt er alleen voor dat het is aangesloten en kan functioneren enz.

  • Open de arduino IDE, laat je NodeMcu aangesloten
  • Voordat je iets doet, moet je opmerken dat er een raamwerk is voor de meest elementaire code die je naar je Arduino kunt schrijven, met een setup()-lus die één keer wordt uitgevoerd, en een andere loop() die voor altijd continu zal draaien. Onze uiteindelijke code zal op deze manier worden gestructureerd, met een paar dingen hierboven toegevoegd en een functie onderaan gedefinieerd
  • Bestand->Voorbeelden-> (onder de sectie NodeMcu 1.0) ESP8266 ->Knipperen
  • Dit opent een code in het venster. Sla het gerust ergens op.
  • In deze code bevat de setup()-lus de definitie van de ingebouwde LED op het bord als een uitgang, en de lus voert hoog en laag uit naar deze LED. Merk op dat voor de LED die in het bord is ingebouwd (alleen! dit is niet het typische geval), de "LOW"-uitgang (0 volt) ervoor zorgt dat deze wordt ingeschakeld, omdat deze standaard is ingeschakeld, en "HIGH" (3,3 V in dit geval denk ik), is uitgeschakeld
  • Als alles correct is ingesteld zoals hierboven beschreven, zou u op "Verifiëren" moeten kunnen klikken (het vinkje in de cirkel in de linkerbovenhoek) om er zeker van te zijn dat er geen fouten zijn (deze zal er geen hebben sinds u deed' niet schrijven, maar de jouwe wil!), en als het allemaal goed is, de "Upload" ernaast
  • Zodra je op uploaden klikt, zie je dingen die worden voorgelezen in het zwarte gebied onderaan, en stippen/% volledig ingevuld
  • Maak je geen zorgen dat het zegt dat het 33% van het geheugen in beslag zal nemen … dat is eigenlijk een "vast" bedrag dat zelfs de eenvoudigste code in beslag neemt, wat ik schreef nam slechts een extra 1% van de ruimte in beslag
  • Je zult zien dat de LED op het bord begint te knipperen (wat het misschien al een beetje deed), dus voel je vrij om het aantal duizendsten van een seconde (milliseconden) in het vertragingsgedeelte van het script te wijzigen. Als dit de eerste keer is dat je programmeert, zal het waarschijnlijk een echte sensatie zijn om de LED te zien knipperen met een iets andere frequentie

3. Opties voor het voeden van de NodeMcu

Ik weet niet zeker waarom ik dit eerst niet begreep, maar de code die je uploadt naar het bord zal daar blijven en zal voor altijd en altijd worden uitgevoerd zodra/zolang er stroom aan wordt geleverd. Als u bijvoorbeeld na het voltooien van stap 2 de stekker uit uw computer zou halen en vervolgens ergens anders van stroom zou voorzien, zou deze opnieuw beginnen te knipperen. De eenvoudigste manier om de NodeMcu van stroom te voorzien, is door er gewoon een micro-USB op aan te sluiten en vervolgens in een oplaadblok, net zoals je voor je mobiele telefoon in de muur gebruikt (een 5V 1A-blok of wat dan ook). Kijk gerust naar mijn andere instructable voor informatie over het voeden van dingen, polariteit van DC-aansluitingen, enz. Maar de essentie is dat je elke stroomsterkte kunt gebruiken die je wilt, zolang het voldoende is om alle dingen van stroom te voorzien (1A is dan genoeg voor dit bord en alle LED's die je gebruikt, bijvoorbeeld), maar de spanning moet binnen een zeer krap bereik zijn om alles correct te laten werken. Op de NodeMcu kun je een voeding met elke spanning van 3,3V tot 20V veilig gebruiken, aangezien er een regelaar op het bord zit die deze spanning verlaagt (dit is een leuke functie). Met stroomsterkte is overgaan in orde, omdat het bord gewoon trekt wat het nodig heeft, maar met spanning is het over het algemeen veiliger om spanningen te gebruiken die zo dicht bij, zonder onder te gaan, de vereiste # zijn, dus er hoeft minder werk te worden gedaan/stroom wordt verspild het verlagen van de spanning. Als je WEL een batterijpakket wilt gebruiken, of een gelijkstroomaansluiting wilt gebruiken (misschien zodat je een mooie lange kabel kunt hebben), zijn de pinnen die je moet gebruiken de VIN-aangrenzende grondpinnen.

4. Verbinding maken met internet

Ik heb de code van de bovenstaande YouTube-video als bestand (voor het nageslacht, voor het geval de video verdwijnt) als bestand bijgevoegd, maar ga alsjeblieft door de YouTube-link en geef hem een beeld van de code. Het is echt de moeite waard, hij legt de geschiedenis van het bord uit, wat best leuk is.

Open het arduino-codebestand met de naam "Wifi_connect" en verander de SSID en het wachtwoord in uw eigen, ga dan

  • Merk op dat er boven de lussen een #include-regel staat, die Arduino vertelt om een bibliotheek met WiFi-dingen voor de ESP8266 op te nemen. Dit zijn in feite een aantal hulpprogramma's en dingen die bij elkaar zijn gebundeld en waarmee je relatief eenvoudig specifieke dingen kunt doen, met behulp van de vooraf geschreven dingen in de bibliotheek. Als je bijvoorbeeld een schild of toevoeging aan een bord hebt gekocht, zijn er waarschijnlijk bibliotheken aan verbonden, zodat je er gemakkelijker mee kunt communiceren.
  • Extra->Seriële monitor
  • Zorg ervoor dat de seriële monitor is ingesteld om te lezen op 9600. Als deze niet op de juiste snelheid staat, spuugt de seriële monitor een vervormde puinhoop uit, dus dat is een goede indicatie dat uw seriële monitor niet dezelfde snelheid heeft als de seriële gedefinieerde in de code
  • Klik op verifiëren en uitvoeren en bekijk de seriële monitor terwijl deze is voltooid … het zal u een heleboel details vertellen over de verbinding als deze werkte, en laat zien dat de ESP8266 in de NodeMcu verbinding kan maken met uw WiFi! Het doet niets, maar als je dit bord ergens in de muur zou stoppen, zou je 30 seconden kunnen wachten en er redelijk zeker van zijn dat het een verbinding met internet tot stand bracht, wat ook opwindend zou moeten zijn.
  • Om uzelf te testen, kunt u proberen de "bllink"-code en de "wifi_connect"-code samen te voegen om de ingebouwde LED te laten branden, of knipperen zodra deze is verbonden met internet. Dit is een geweldige manier om te leren!

Als je al het bovenstaande hebt gedaan, gefeliciteerd! Je hebt laten zien dat je code kunt uploaden naar de NodeMCU en dat de NodeMcu verbinding kan maken met je wifi. We zullen eigenlijk een iets andere methode gebruiken om verbinding te maken met wifi, met behulp van de MultiWifi-bibliotheek in plaats van de gewone oude wifi-bibliotheek, omdat je hiermee eenvoudig een lijst met wifi's kunt toevoegen en gewoon kunt proberen verbinding te maken met wat het maar kan.

Stap 4: Gegevens van een website halen

Gegevens van een website halen
Gegevens van een website halen

Gegevens op websites worden op een zeer spookachtige manier opgeslagen. Dit filteren in de dingen die je wilt, of "parseren" omdat het even spookachtig is, en proberen om dit te doen zonder significante kennis van HTML kan ontmoedigend zijn … dus het doel is om de gegevens die je wilt uit de spookachtige plek te krijgen in een zeer pure en gelukkige plek. Wat dit functioneel betekent, gaat van een URL die de hele website weergeeft, naar een URL die ALLEEN het ene stukje gegevens weergeeft dat u wilt.

1. "Wijzen" naar de gewenste informatie op de website

Ga naar de website waarin je geïnteresseerd bent, bijvoorbeeld hier

www.timeanddate.com/worldclock/canada/edmonton

ga vervolgens naar de gewenste gegevens, klik er met de rechtermuisknop op en selecteer "inspecteren". Het opent de HTML-viewer in uw browser en toont u de laatste tak van de boom waar uw gegevens vandaan komen. Ik vind dat Chrome de gemakkelijkste browser is om hiervoor te gebruiken, maar blijkbaar heeft Firefox een aantal extensies die het beter maken …

Dat is waar de gegevens leven. Soms heeft het een ID waarnaar wordt verwezen, soms is het er gewoon in geschreven. Dus hoe halen we dit eruit?

2. Thingspeak/ ThingHTTP/ API's (wees niet bang, geen codering nodig)

Ik ga niet eens praten over wat API's zijn en hoe je ze maakt, maar je kunt je ze voorstellen als de daadwerkelijke verbinding of overdracht tussen jou (je verzoeken) en waar de dingen zijn waar je om vraagt. De klassieke analogie is een ober in een restaurant. Om dit uit te voeren zonder enige codering, gebruikt u een gratis service genaamd "ThingSpeak", en specifiek hun applicatie "ThingHTTP". Maak gewoon een account aan en ga dan naar apps, en helemaal onderaan, thinghttp, en maak er een aan.

Het enige dat u hoeft te doen, is de URL van de website kopiëren en plakken, bijvoorbeeld de website met datum en tijd hierboven, en vervolgens helemaal naar beneden scrollen naar het laatste veld "Parse String". Dit is het pad naar de gewenste gegevens.

Ik denk dat dit pad op een paar manieren kan worden gegeven, maar de eenvoudigste en enige manier die ik ken, is door met de rechtermuisknop op dat stukje gegevens te klikken zoals hierboven beschreven, het te inspecteren en vervolgens met de rechtermuisknop op de gemarkeerde regel te klikken die overeenkomt met die gegevens in de HTML-viewer en ga naar Kopiëren-> x-pad. Dit is te zien op de bijgevoegde afbeelding.

Als je klaar bent, probeer dan naar de URL te gaan die voor je is gegenereerd en kijk of deze de gewenste gegevens bevat op een manier waarmee op zijn minst kan worden gewerkt. De mijne zegt bijvoorbeeld de temperatuur als "XX F" in plaats van het aantal graden Celsius, maar eenheden en de F aan het einde kunnen eenvoudig binnen de code worden gewijzigd. HET IS UITERST GEVAARLIJK OM DE FOUT TE KRIJGEN DAT HET NIET KAN WORDEN GEPARKEERD. Als dit het geval is, probeer dan enkele van de headers in het xpath te verwijderen, kijk of je de gegevens ergens anders kunt vinden, of raadpleeg een forum waar ze de "beschadigde" aspecten van je parse-string kunnen identificeren. Deze methode zal zeker NIET werken op een website die de gewenste gegevens niet met de website laadt, maar in plaats daarvan (zelf) uit een externe bron haalt, wat een tijdje nodig heeft om in te laden. Het zou echter goed moeten werken voor dingen zoals youtube-dingen, het weer, enz.

3. Toegang tot deze gegevens vanuit de NodeMCU

Ik heb al veel getypt, dus zie de bijgevoegde code, die veel opmerkingen heeft, en momenteel is ingesteld om te lezen in aurora borealis-waarschijnlijkheid voor Edmonton AB, Canada (alleen!). De eerste aanpassing die u moet maken, is gewoon de URL (in feite alleen het 16-cijferige api-sleutelgedeelte van de URL) wijzigen in uw eigen dinghttp.

Het tweede dat u moet aanpassen, is in de loop(), waar de werkelijke "waarde" wordt ingevoerd en opgeslagen als de variabele "yourvalue", wat een tekenreeks (tekst) is. Het kan vanaf daar op elke gewenste manier worden gebruikt. Ik heb het procentsymbool verwijderd, de 2 cijfers van het % in 2 variabelen gesplitst (bijvoorbeeld 14% in 1, 4) en deze elk opgeslagen als gehele getallen, maar met een paar snelle Google-zoekopdrachten of opmerkingen hier zou je in staat moeten zijn om precies de gewenste getallen uit de door thinghttp gegenereerde string te extraheren. Je hebt getallen nodig om dingen te kunnen doen, zoals beslissen of het groot of klein is of deelbaar genoeg door iets om dingen aan of uit te zetten of weer te geven. De rest van de code vanaf dat moment, inclusief de functie onderaan genaamd sevenseg() wordt gebruikt om de 2 getallen weer te geven.

Voel je vrij om vragen te stellen over de code, of hoe je het soort dingen dat je wilt, kunt extraheren of tonen, of hoe je deze nummers kunt gebruiken, bijvoorbeeld het spectrum van een rgb-led opdelen en verschillende waarden aan verschillende kleuren toewijzen.

Stap 5: De gegevens weergeven

De gegevens weergeven
De gegevens weergeven

1. Wat ik heb gebruikt (hoe een 7-segments display te bedraden)

Ik kreeg het bijgevoegde diagram / volgde de bedrading beschreven door deze andere instructable.

De bedrading is redelijk eenvoudig, maar als je nog nooit een breadboard hebt gebruikt, kan het verwarrend zijn wat er aan de hand is. In wezen is een breadboard bedoeld om verbindingen duidelijk en tijdelijk te maken.

Alle volgende beschrijvingen hebben betrekking op het bijgevoegde diagram: Een breadboard kan horizontaal in 2 herhaalde helften worden gesplitst, elk met 2 verschillende segmenten: horizontale - en + rijen die de lengte van het breadboard verlengen (gebruikt voor stroomvoorziening) en verticale kolommen, die genummerd zijn, en bestaan uit 5 spots per kolom die gebruikt worden voor het markeren van verbindingen. Er is dan een kleine opening, en dan verdubbelden dezelfde kenmerken aan de andere kant van die denkbeeldige scheidslijn. Alle spots in de horizontale + rij zijn met elkaar verbonden, en alle horizontale - rij spots zijn met elkaar verbonden. Hiermee kun je de stroom op het ene uiteinde van het breadboard aansluiten en vervolgens dingen op elke plek langs de + aansluiten om de stroom uit te schakelen, net als een lange stroombalk voor stopcontacten. Hetzelfde geldt voor de - rij, die wordt gebruikt om dingen te aarden. Voor de genummerde kolommen is elke plek in een genummerde kolom verbonden met de andere 4 plekken. Merk op dat de vijf plekken in een kolom NIET verbonden zijn met de vijf tegenover de denkbeeldige middenlijn. Het breadboard kon in de lengte worden doorgesneden en er zouden geen elektrische verbindingen worden verbroken.

De NodeMcu spreidt zich perfect uit over de twee helften van het breadboard, waarbij elke pin overeenkomt met stroom of in-/uitgangen met een genummerde kolom voor zichzelf, zodat je draden kunt aansluiten op de resterende toegankelijke plek en deze ergens anders op het breadboard kunt aansluiten. Hetzelfde geldt voor het 7-segmentsdisplay dat in het diagram wordt weergegeven. Volg bijvoorbeeld het pad van de grond vanaf het bord naar het 7-segments display in het diagram.

  1. aardingspin van NodeMcu is aangesloten op kolom 2
  2. draad van kolom 2 naar de -ve horizontale stroomrij (aangeduid door conventiegrond)
  3. van de grondrij (het kolomnummer is niet relevant, omdat de hele rij is verbonden) naar kolom 22 via een weerstand
  4. in de "aarde" -pin op het 7-segments display die ook is aangesloten op kolom 22

Het doel van de weerstand in het diagram is in feite om een deel van het overtollige vermogen naar de LED's te "opzuigen", wat functioneel werkt om het scherm te dimmen. Je zult zien dat wanneer een "1" brandt versus een "8", de 1 veel helderder is, omdat er minder LED's branden. Hoe minder fel je de LED laat lopen, hoe langer hij meegaat, dus de weerstand is nodig. De meeste diagrammen voor displays met 7 segmenten laten zien dat er een weerstand in serie staat met elk van de afzonderlijke segmenten, maar dit lijkt goed te werken. Ik heb een weerstand van 1K ohm gebruikt.

Let goed op welke pinnen overeenkomen met welke pin op het display, aangezien deze in de code zijn afgebeeld.

2. Enkele ideeën/dingen die ik met meer tijd zou hebben gedaan

Dit is in wezen waar ik stopte, maar je had veel andere dingen kunnen kiezen om uit te voeren op basis van de waarde van je gegevens, zoals:

  • een rgb-led die van kleur verandert afhankelijk van de waarde, of een verloop bestrijkt, bijvoorbeeld van groen naar rood
  • een volledig LED-display
  • een logische aan/uit boven/onder true/false LED die gewoon aan of uit gaat om iets aan te geven
  • een motor die draait op een specifiek tijdstip van de dag, zoals voor een klep op een watergeefsysteem of om een traktatie voor uw hond vrij te geven… Ik weet zeker dat er efficiëntere manieren zijn om dit te doen dan de tijd te interpreteren via wifi, maar het is een optie!

De volgende stap (waarvoor verrassend veel meer tutorials zijn) is het plaatsen van gegevens op uw EIGEN server (wat ook kan via thingspeak) en deze gegevens vervolgens gebruiken (zoals voor een geautomatiseerde tuin, of smart house stuff).

Stap 6: Een doos bouwen

Een doos bouwen
Een doos bouwen
Een doos bouwen
Een doos bouwen
Een doos bouwen
Een doos bouwen
Een doos bouwen
Een doos bouwen

Alle verbindingen die via het breadboard zijn gemaakt, kunnen permanent worden gemaakt door de draden rechtstreeks tussen het bord en de uitgang (zoals de LED) te solderen, of door een veel kleiner breadboard of PCB te gebruiken om verbindingen te maken op een schaal die in past. jouw project. Ik koos ervoor om een klein breadboard te gebruiken dat in de kit zat die ik had gekoppeld, en ik hoefde alleen een weerstand aan het uiteinde van een draad te solderen … niet erg robuust, maar functioneel!

Ik sneed 4 stukken van 1/4 "x 3,5" grenen op 3,5" (de zijkanten) en één op 4" (de bovenkant), en stootte ze gewoon tegen elkaar en lijmde ze aan elkaar, ervoor zorgend dat alle gezichten vierkant waren mogelijk zodat elk gezicht zo vlak mogelijk was. Alvorens de voor- of achterstukken te lijmen, heb ik gebieden uitgehold voor het display en het bord om voldoende uit te steken om respectievelijk gezien / aangesloten te worden. Het kleine breadboard dat ik kreeg had plakband aan de achterkant zodat het aan een van de zijwanden kon worden bevestigd, en het 7-segmentsdisplay kon op zijn plaats worden gehouden door het stuk eerst op verpakkingstape te leggen en het display op deze tape te plaatsen, en strooi dan bakpoeder over/in alle openingen. Daarna goot ik CA (super)lijm in de openingen, die, bij contact met het zuiveringszout, onmiddellijk uithardden om het scherm op zijn plaats te houden, vlak tegen de voorkant van het voorstuk. De verpakkingstape was bedoeld om te voorkomen dat er lijm doorsijpelt tussen het scherm en het oppervlak waar het naar beneden is gericht en het verduistert als het eenmaal droog is.

Ik heb grenen fineer op alle zijkanten gelijmd (met CA-lijm, wat naar mijn mening beter werkt dan houtlijm) en de randen geschuurd met elk aangebracht stuk, om het er uniform uit te laten zien / de stootvoegen te verbergen / fungeren als een diffusor voor de weergeven zoals in deze video.

Aanbevolen: