Inhoudsopgave:
- Stap 1: Registreren voor astronomie-informatie
- Stap 2: Componenten
- Stap 3: De computersoftware
- Stap 4: Het circuit
- Stap 5: De code
- Stap 6: Eindmontage
Video: Draadloze maanfase-tracker - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
De Lunar Phase Tracker is een klein, semi-draagbaar apparaat waarmee je belangrijke informatie over de Maan kunt verzamelen. Het apparaat rapporteert parameters zoals de zichtbare verlichting, de fase, maanopkomst en ingestelde tijden en meer.
Dit apparaat is essentieel voor iedereen die geïnteresseerd is in wetenschap of astronomie en biedt een geweldige desktop-kantoordecoratie en is zeker een gespreksstarter.
Het project is vrij eenvoudig en vereist een apparaat met internetverbinding, zoals een ESP32, maar je kunt de code altijd aanpassen om te werken met een WiFi-schild, Ethernet-schild of een ander apparaat dat met internet is verbonden. De Lunar Phase Tracker is ontworpen om op lithium-polymeerbatterijen te werken en heeft een zeer energiezuinig E-ink-display dat niet alleen een prachtig scherm biedt om naar te kijken, maar ook het laatste beeld vasthoudt, zelfs als de stroom uitvalt!
Stap 1: Registreren voor astronomie-informatie
Deze stap is absoluut essentieel (hoewel saai) omdat we een online API gebruiken om onze informatie te verzamelen. Hoewel het mogelijk is om de maanfasen, verlichting enz. te berekenen, is het een vervelende taak om dit te doen. De API die we gebruiken, biedt up-to-date informatie van live weerstation en monitoringsystemen, dus de gegevens die we ontvangen, zijn real-world resultaten en niet die van berekende waarden.
Ga naar Weather Underground, klik op "aanmelden" en vul al uw gegevens in. Het account is volledig gratis en dat geldt ook voor uw API-aanroepen, zolang u niet te veel resultaten per minuut aanvraagt of 500 verzoeken per dag overschrijdt. Zorg ervoor dat je een bladwijzer maakt voor deze pagina, je kunt altijd later terugkomen en de API gebruiken voor weerstatistieken en andere geweldige informatie. Nadat u uw account heeft gemaakt, gaat u naar de API-site, klikt u op "aankoopsleutel" en selecteert u het gratis abonnement. U hoeft alleen maar een paar details in te voeren en u krijgt problemen met een devoloper-sleutel-ID. Deze ID is uniek voor u en moet privé worden gehouden. Ik heb mijn sleutel gegeven in de Arduino-voorbeeldcode die we later zullen bekijken. U bent van harte welkom om mijn Key ID te gebruiken voor testdoeleinden, maar ik raad u ten zeerste aan om u aan te melden voor uw eigen ID.
Zodra u uw unieke ID heeft, kunt u doorgaan naar de Astronomy API-informatie, die eerlijk gezegd erg kaal is. U vindt een eenvoudig voorbeeld dat er als volgt uitziet:
api.wunderground.com/api/8c6dc2e5c6f36de9/a…
Deze URL is uiterst belangrijk omdat dit ons alle informatie geeft die we nodig hebben om ons project te maken. Ga je gang, klik op de link, je zult resultaten zien voor Sydney, zoals maanfase, verlichting en andere goede informatie. Kijk eens naar de URL, we zien Sydney, Australië en een lange code die begint met "8c6dcwe…". Die code is uw Key ID die we eerder hebben opgehaald. Verander die code met je unieke ID en kijk hoe dat werkt, je zou precies hetzelfde resultaat moeten krijgen. Probeer te spelen met locaties. Voor mezelf in Zuid-Afrika gebruik ik Johannesburg en ZA.
Stap 2: Componenten
Dus nu voor de interessante dingen. We hebben een paar componenten nodig, niet veel en geen van hen is extreem duur en ik heb Amazon-links verstrekt voor de componenten die ik heb gebruikt. Houd er rekening mee dat als u goed bent met programmeren, u gerust een willekeurig beeldscherm of internetapparaat kunt gebruiken dat u tot uw beschikking heeft. Voor mijn build heb ik het volgende gebruikt:
Waveshare E-Ink SPI 4,2" SPI-display
- ESP32-ontwikkelbord (algemeen)
- Adafruit Power Boost 500
- 5000mAh Lipo-batterijpakket
- Stripbord (Protoboard)
Je hebt natuurlijk de basistools nodig, zoals:
- Soldeerbout
- Soldeer
- Multimeter
- Remklauwen
- Boor om sporen op protoboard te scheiden
- Draad
- Draadknipsels
- Lijm (hete lijm zal werken)
- Laptop met Arduino IDE geïnstalleerd
Het enige geavanceerde hulpmiddel dat u mogelijk nodig heeft, is een 3D-printer om de behuizing te maken. Als je er geen hebt, is dat prima, maak je behuizing van hout en handzagen of iets dat je beschikbaar hebt. En ja, mijn 3D-printer is oud en stoffig lol.
Stap 3: De computersoftware
Voordat we aan de schakeling en programmering kunnen gaan werken, hebben we eerst de meest recente versie van de Arduino IDE nodig die hier te vinden is.
Omdat we de ESP32 met Arduino-kern gebruiken, moeten we deze kern op de Arduino IDE installeren. Volg deze eenvoudige gids van Github die u laat zien welke software en configuratie u moet doen, zodat u uw ESP32-ontwikkelbord binnen de Arduino IDE kunt gebruiken.
We hebben ook twee extra bibliotheken nodig om ons systeem te laten werken. De eerste is een Arduino JSON-bibliotheek waarmee we JSON-verzoeken kunnen lezen en ontleden en dat is precies wat we krijgen van Weather Underground. Je kunt deze twee bibliotheken downloaden van mijn persoonlijke Dropbox of hieronder. Zodra je de bestanden hebt, pak je ze uit en plaats je ze in je Arduino-bibliotheekmap. Het bevindt zich over het algemeen in C:\Users\YOUR_NAME\Documents\Arduino\libraries. Zorg ervoor dat u uw IDE opnieuw start, anders pikt Arduino de nieuwe toevoegingen niet op. De belangrijkste Arduino SRC-code staat ook in die map. De bibliotheek bevat ook een aangepaste versie van het voorbeeld dat wordt geleverd door Waveshare-displays. De bestanden zijn aangepast om op de ESP32-module met hun GPIO's te draaien en ik heb een nieuw "lettertype" geïmplementeerd dat alle afbeeldingen voor de verschillende fasen van de maan bevat.
Stap 4: Het circuit
Oké, dus het circuit hiervoor is uiterst eenvoudig en vereist slechts een paar componenten en draden.
Het algemene idee is dat we een Lipo-oplaadcircuit hebben, een boost-converter om ons 5V te geven en dan de ESP32 Dev Kit die de spanning naar 3,3V verlaagt. Deze 3.3V wordt ook gebruikt voor het Waveshare E-Ink display. Ja, dit is enigszins inefficiënt vanwege het opvoeren en vervolgens afstappen met een lineaire regelaar, maar de ESP32 werkt over een zeer vreselijk spanningsbereik. Ergens rond de 2,5 - 3,6 V. Dit is niet geschikt voor batterijprojecten, vooral niet voor projecten die lithium-polymeercellen gebruiken.
De basisbedrading is als volgt:
- Boost converter 5V uitgang Vin & GND op ESP32 Dev Kit
- ESP32 3.3V 3.3V & GND E-Ink Display
- ESP32 PIN 18 CLK E-Ink-display
- ESP32 PIN 23 DIN/MOSI E-Ink Display
- ESP32 PIN 5 CS/SS E-Ink Display
- ESP32 PIN 32 DC E-Ink Display
- ESP32 PIN 33 RST E-Ink-display
- ESP32 PIN34 BEZIG E-Ink-display
Je kunt zien dat de bedrading heel eenvoudig is en dat mijn doe-het-zelf-boards slechts ongeveer 15 minuten nodig hadden om te bouwen. Controleer op kortsluiting met een multimeter voordat je stroom levert.
Ik heb ook de LED's van mijn ESP32- en Lipo-boostbord verwijderd om ongeveer 40 mA stroom te besparen tijdens de slaapstand. Hierdoor gaan de batterijen wat langer mee. U kunt desgewenst een aan / uit-schakelaar, een stroombesparend circuit, een automatische ontkoppeling enz. implementeren. U kunt dit project uitbreiden en zo complex maken als u wilt.
Stap 5: De code
De code vindt u in de meegeleverde map tijdens stap 3 of u kunt het.ino-bestand hieronder downloaden. U moet de bijbehorende bibliotheken installeren zoals vermeld in stap 3 om alles samen te laten werken. Over deze stap valt niet veel te zeggen, aangezien de code in werkende staat wordt geleverd. Zorg ervoor dat u uw SSID en netwerkwachtwoord invoert voordat u het programma test, u kunt altijd de ESP32 WiFi Scan uitvoeren om draadloze netwerken in de buurt te detecteren, maar in mijn programma wordt de netwerkinformatie alleen in code en code ingesteld. Misschien kun je het aanpassen om te vragen met welk netwerk je verbinding wilt maken:)
De code is vrij eenvoudig en ik zal de komende weken wat tijd besteden aan het becommentariëren en verfijnen ervan. We maken in principe verbinding met een netwerk, in mijn geval mijn thuisnetwerk. We proberen vervolgens verbinding te maken met Weather Underground en de JSON-tekst van de webpagina te ontvangen. De ArduinoJSON-bibliotheek wordt vervolgens gebruikt om te extraheren. of ontleden, de JSON-code in char-arrays of tekenreeksen waarmee we de waarden kunnen manipuleren voordat ze aan de gebruiker worden weergegeven. Het laatste stukje code is uitsluitend bedoeld voor het programmeren van de GUI en is met vallen en opstaan gedaan. Ik keek naar het scherm, verhoogde of verlaagde een activapositie en voerde de code opnieuw uit totdat ik tevreden was met hoe de lettergrootte, lay-out en afbeeldingen eruit zagen.
Ik heb een diepe slaaproutine geïmplementeerd voor de ESP32 om energie te besparen. De standaardwaarde is 60 seconden, maar ik raad u aan de waarde te wijzigen in iets van een uur of twee, aangezien updates gedurende ten minste een paar uur niet plaatsvinden. Het voorbeeld accepteert seconden, dus zorg ervoor dat u de conversies correct uitvoert.
Ik heb ook het programma The Dot Factory gebruikt om hex-arrays voor een nieuw lettertype te genereren. Dit lettertype wordt gebruikt om de "afbeeldingen" voor de maanstanden te genereren. Als u het lettertypebestand wilt bewerken, zorg er dan voor dat u het bovengenoemde programma gebruikt voor het genereren. Het is een beetje verwarrend omdat de E-Ink-bibliotheek niet goed gedocumenteerd is en het grootste deel van mijn succes te danken was aan vallen en opstaan. Wanneer ik meer tijd met deze code doorbreng, zal ik de Instructable bijwerken om meer informatie over mijn bevindingen te geven.
Het lettertype dat gebruikt wordt voor de maanstanden dient te gebeuren volgens een standaard ASCII-layout. Als u font24 opent in de EPD-mastermap, ziet u de lay-out waarbij de 1e afbeelding wordt geïdentificeerd door een witruimte, de tweede is een "!" (uitroepteken) enzovoort. Je zult zien dat ik het bijbehorende lettertype trek met nummer 3 of een hashtag-symbool in het laatste stukje code (functie getLunarChar). Dit komt omdat Arduino de ASCII-standaard verwacht van 32 tot 127. Omdat we lettertypen gebruiken die niets te maken hebben met de werkelijke lettertypen en eerder een grafische maanfasematrix, moeten we ervoor zorgen dat het ASCII-teken verwijst naar ons gekozen maanfasebeeld. Dit betekent dat het gebruik van een ! teken, toont ons maanfase-lettertype ons de tweede maanfase-afbeelding in die lijst. Als je naar het maanfase-lettertype kijkt, zie je een hele reeks maanfasen, allemaal met verschillende verlichtingsniveaus. In de toekomst zal ik meer code toevoegen om gebruik te maken van alle afbeeldingen die we hebben geïmplementeerd. Op dit moment gebruiken we er maar een paar, maar de afbeeldingen zijn al geïmplementeerd in het maanfase-lettertype en moeten alleen in de code worden geïmplementeerd om er gebruik van te maken.
Stap 6: Eindmontage
Het laatste deel van de bouw en het meest bevredigende, is het montageproces. Ik heb een behuizing ontworpen en 3D geprint die op mijn bord past. Het project is erg DIY, er zijn geen professionele PCB's of een enkele standaardlay-out. Voor het grootste deel is de doos die ik heb gebruikt groot genoeg voor elke lipo-oplader of boost-converter die je wilt gebruiken. Zolang ze dezelfde basisfunctionaliteit bieden die in deze Instructable wordt genoemd, zou het goed moeten komen.
Ik gebruikte 4 schroeven om de bovenste en onderste helft van de behuizing bij elkaar te houden en hete lijm voor het monteren van mijn DIY-circuits. ik heb een paar hele kleine druppels lijm gebruikt om de batterij vast te houden, maar als ik meer tijd had, had ik een aangepaste beugel gemaakt voor alle elektronica.
Ik heb ook besloten om aan de achterkant een gat te maken voor een vergrendelbare drukknop. Hierdoor wordt de batterij losgekoppeld van de boost-converter, wat handig is als u niet van plan bent het apparaat 24/7 te laten werken. Helaas gebruikt de boost-converter nog steeds stroom, zelfs als je ESP32 in de diepe slaapmodus staat.
Over het algemeen ben ik erg blij met het resultaat. Ik heb veel geleerd tijdens het gebruik van de ESP32 en zie mezelf hem in de toekomst voor verschillende projecten gebruiken.
Als je vragen hebt, stel ze dan gerust, ik zal meer dan bereid zijn om te helpen en als je fouten in deze Instructable vindt, laat het me dan weten.
EDIT: Ik heb eigenlijk een kleine behuizing gefreesd in plaats van de 3D-geprinte versie, wat je ziet in de afgebeelde afbeeldingen.
EDIT: In de uitgelichte afbeeldingen zien we een volle maan met 99% verlichting. Vandaar de witte cirkel, terwijl de maan door zijn typische fasen gaat, zal het beeld van de maan dienovereenkomstig veranderen. Verdere afbeeldingen zullen worden geüpload naarmate de maan door zijn fasen vordert, zodat u een weergave van de afbeeldingen kunt krijgen.
Tweede plaats in de ruimte-uitdaging
Aanbevolen:
Aan de slag met draadloze temperatuur- en trillingssensoren met groot bereik: 7 stappen
Aan de slag met draadloze temperatuur- en trillingssensoren met groot bereik: Soms zijn trillingen de oorzaak van ernstige problemen in veel toepassingen. Van machineassen en lagers tot de prestaties van de harde schijf, trillingen veroorzaken schade aan de machine, vroegtijdige vervanging, lage prestaties en veroorzaken een grote aanslag op de nauwkeurigheid. Toezicht houden
Hoe maak je een draadloze Tin-Can-telefoon! (Arduino Walkie Talkie): 7 stappen (met afbeeldingen)
Hoe maak je een draadloze Tin-Can-telefoon! (Arduino Walkie Talkie): Onlangs zat ik midden in een heel belangrijk telefoontje toen mijn bananentelefoon niet meer werkte! Ik was zo gefrustreerd. Dat is de laatste keer dat ik een oproep mis vanwege die stomme telefoon! (Achteraf ben ik misschien een beetje te boos geworden in
Articulerende draadloze vermogenszender: 4 stappen
Articulating Wireless Power Transmitter: Wilt u een scharnierende arm die uw apparaat zinloos volgt om op te laden? Dit is het project. I Wireless Power Transmitter en Receiver combo die uw apparaat zal volgen…..zolang het ongeveer vijf centimeter verwijderd is
Draadloze stroomoverdracht met behulp van een 9v-batterij: 10 stappen
Draadloze stroomoverdracht met behulp van een 9v-batterij: inleiding. Stel je een wereld voor zonder bekabelde verbinding, waar onze telefoons, lamp, tv, koelkast en alle andere elektronica draadloos worden aangesloten, opgeladen en gebruikt. Dat is inderdaad de wens van velen geweest, zelfs het elektrisch elektronische genie
Draadloze PIR-sensor: 4 stappen
Draadloze PIR-sensor: het doel van dit project is om een draadloze bewegingssensor op batterijen te maken. Het kan worden gebruikt voor een alarmsysteem, verlichting enz. Het kan maanden duren op de batterijen, afhankelijk van of het vaak wordt geactiveerd of niet