Inhoudsopgave:
- Benodigdheden
- Stap 1: Download, wijzig bestanden en druk 3D-bestanden af
- Stap 2: Soldeer / monteer componenten - deel a (toetsenbord en zijnummer)
- Stap 3: Soldeer / monteer componenten - Deel B (Featherwings en sensoren)
- Stap 4: Soldeer / monteer componenten - Deel C (toetsenbord naar capacitieve sensor en veren in behuizing)
- Stap 5: OPTIONEEL - Onderdelen solderen/monteren - Deel D (INA219 Feather)
- Stap 6: Achterklep vastschroeven en USB aansluiten
- Stap 7: AWS-omgeving voorbereiden
- Stap 8: Softwaresleutels downloaden en services van derden instellen
- Stap 9: AWS-code wijzigen en uploaden
- Stap 10: Arduino IDE voorbereiden en bibliotheken downloaden
- Stap 11: Update en installeer Arduino-code en doe mee
Video: Maak het zo! Star Trek TNG Mini Engineering Computer - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Overzicht
Ik ben opgegroeid met het kijken naar Star Trek: The Next Generation. Ik heb altijd al een apparaat met Star Trek-thema willen bouwen, dus ik ben er eindelijk toe gekomen om een van mijn oude projecten te remixen om een Star Trek Display Terminal te maken.
De terminal geeft de volgende informatie:
- Weer - met behulp van de National Weather Service
- Binnentemperatuur, vochtigheid en vluchtige organische stoffen (VOC) sterkte
- Nieuwsartikelen - van News.org
- Schema (met alarmfunctie) - vanuit Microsoft Outlook
- Fitnessinformatie (stappen, bewegingsminuten, hartpunten, gewicht, verbrande calorieën) - van Google Fitness
- a Weerstand kleurcodekaart
- een LED-weerstandscalculator (om de weerstandswaarde te bepalen op basis van stroom en bronvermogen)
- Vermogens- en stroommeetinstrument
Deze informatie wordt beschikbaar gesteld via een combinatie van API's en hardwaresensoren. Ik maak gebruik van een ESP32 voor de microcontroller en gebruik de AWS Cloud voor alle gegevensverzameling en -aggregatie.
Ik heb ook een paar "paaseieren" toegevoegd:
-
Ron McNair eerbetoon - Dr McNair is de reden dat ik ingenieur ben geworden; hij groeide op 45 minuten van mijn woonplaats. Hij stierf bij de Challenger-explosie.
- De naam van mijn sterschip is de "USS Ronald E McNair"
- Het registratienummer is van de geboortedatum van Sr McNair; de Prefix Code is de dag dat hij zijn leven verloor.
- Het gebruik van een "prefixcode" is een knipoog naar Star Trek: Wrath of Khan (de beste Star Trek-film aller tijden; don't @ me).
- De nummers aan de rechterkant van de terminale zaak verwijzen naar mijn broederschap (1906 - Alpha Phi Alpha) en mijn alma mater en studiegebied - (University of Oklahoma, College of Engineering)
U heeft de mogelijkheid om de nummering, belettering en scheepsnaam, register, enz. voor uw eigen "easter eggs" aan te passen.
Achtergrond
Vorig jaar had ik voor een draagbaar project een goedkope manier nodig om stroom en batterijverbruik te meten. Ik heb een Adafruit INA219 Featherwing gekocht en een aantal reserveonderdelen gebruikt om een eenvoudig apparaat voor vermogensmeting te bouwen (u kunt er hier meer over lezen).
Dit jaar heb ik besloten om het apparaat te upgraden … om het meer "techisch" te maken. Ik was oorspronkelijk van plan een werkende Star Trek-tricorder te bouwen (de Mark IV TR-590 Mark IX-versie, voor degenen die erom geven) … maar ik realiseerde me al snel dat het logischer was om iets te maken dat op mijn bureau zou staan (ik bedoel, waarom doe al deze moeite om een cool apparaat te maken, gewoon om het te sluiten en in een la te leggen als het niet wordt gebruikt).
Dus ik ben begonnen met het maken van een versie van de computerschermen die je ziet op Star Trek TNG of Voyager (of de diverse films). Ik speelde met verschillende ontwerpen en kwam toen een versie tegen die was gemaakt door de Ruiz Brothers van Adafruit. Adafruit levert uitstekend werk door bronbestanden aan te leveren voor hun 3D-geprinte projecten, dus ik kon hun originele versie nemen en deze remixen voor mijn hardware, knoppen en andere randapparatuur.
Wat u moet weten voordat u verder gaat
- Ik geef stap voor stap instructies voor het maken van mijn versie van het project; ik ga echter niet in op details over bepaalde stappen (ik zal linken naar ondersteunende instructies of documentatie)
-
Dit is een complex project. Het is een "multi-gedisciplineerd merk", dat de volgende vaardigheden vereist:
- Arduino IDE
- AWS - Je hebt een account nodig en je moet S3, Lambda en Node JS begrijpen
- Solderen
- 3d printen
- Er zijn optionele "add-ins" om het project te verbeteren om kalender- en fitnessinformatie te krijgen. De functionaliteit is opgenomen in de codebase; u moet echter "apps" maken in de Azure- en Google-clouds om de functies te ondersteunen.
- Dit is uiteindelijk aanpasbaar… je kunt de stroomsensor vervangen door een andere veervleugel. Je kunt een andere veer/wifi-combinatie gebruiken.
Benodigdheden
Elektronische componenten
- Adafruit ESP32 Huzzah Feather
- Adafruit Featherwing Tripler Mini Kit
- Adafruit 12-Key Capacitieve Touch Sensor Breakout
- Adafruit TFT FeatherWing - 3,5" 480x320 touchscreen
- Adafruit BME680 - Temperatuur-, vochtigheids-, druk- en gassensor
- DC Paneelmontage 2.1 Barrel Jack (2)
- Lithium-ion-polymeerbatterij - 3,7 V 500mAh
- Piëzo-zoemer
- Mirco USB-kabel en 5V-oplader (een typische USB-telefoonoplader werkt)
- Koperfolietape met lijm
- Optioneel - Adafruit INA219 Featherwing
- Optioneel - 2.1 mannelijke stekkers - (voor gebruik met de INA219 stroomsensor)
Link naar alle elektronische componenten behalve 2.1 pluggen:
3D-filamentcomponenten en optionele verf-/schuurcomponenten
- Proto Pasta Geleidend PLA
- Extra 3D-filamenten - ik heb 4 kleuren gebruikt - grijs, zwart, aqua (lichtblauw) en wit
- .25 en 0.4 mm nozzles (ik gebruikte de 0.25 voor de beletteringsdetails).
Hardware-assemblagecomponenten en -hulpmiddelen
- M2x5 en M3x5 schroeven
- Rechte en haakse headerpennen (zie Adafruit-verlanglijst voor links)
- Soldeerbout (en spoel soldeer, tiptinner, soldeerzuiger, enz.)
- Philips-kopschroevendraaierset
- Krimpfolie
- Stranded Wire 22AWG - vijf of zes kleuren
- Massieve draad 22AWG - vijf of zes kleuren
- PCB bankschroef en helpende handen (optioneel, maar maakt solderen makkelijker)
- Diagonale draadknippers
- Draadstrippers
- Xacto Knife (voor het verwijderen van steunen van 3D-printeronderdelen)
- 3D-printer (als je van plan bent om zelf te printen)
- Putty of tape (om de batterij aan de binnenkant van de bedrukte behuizing te bevestigen)
- Digitale schuifmaat
- Krazy-lijm
- Optioneel - Wegwerphandschoenen van nitril
- Optioneel - Soldeermat (optioneel, maar beschermt oppervlakken)
Opmerking: als je deze tools niet hebt, raad ik je aan de site van Becky Stern te bezoeken voor aanbevelingen voor goede opties.
Software
Stap 1: Download, wijzig bestanden en druk 3D-bestanden af
U kunt de bestanden indienen bij een 3D-afdrukservice (zoals 3D Hubs) of u kunt uw eigen bestanden afdrukken. Bestanden zijn beschikbaar op PrusaPrinters.org.
Deze case is een remix van de Py Portal Alarm Clock op de Adafruit-website. Mijn project gebruikt een vergelijkbare TFT, dus ik was in staat om de hoeveelheid ontwerpwerk die nodig was om de behuizing te laten werken met mijn accessoires te minimaliseren.
Ik heb de volgende instellingen gebruikt voor het afdrukken:
- Voor- en achterkant bedrukt op 0,2 mm laaghoogte met een mondstuk van 0,4 mm, geen steunen
- Zijnummer - gedrukt op 0,10 mm laaghoogte met een mondstuk van 0,25 mm, geen steunen
- Toetsen - gedrukt op 0,2 mm laaghoogte met een mondstuk van 0,4 mm. U moet 7 afdrukken en u moet afdrukken met Proto-Pasta Conductive Filament.
-
Kast - gedrukt op 0,2 mm laaghoogte.
Ondersteuningen zijn nodig, maar zijn niet overal nodig (alleen aan de zijkanten en het midden waar het toetsenbord zit
Een paar dingen die je moet weten:
- Met de Prusa MK3 kun je kleuren wisselen op verschillende laaghoogtes. Ik heb deze functie gebruikt voor het zijnummerstuk.
-
Ook met betrekking tot het zijnummerstuk:
- De productieploeg van Star Trek TNG zou paaseieren in de rekwisieten strooien. Als je goed naar verschillende plaquettes en panelen kijkt, zie je namen van mensen, songteksten, enz. Ik wilde mijn eigen "easter egg" maken voor het zijnummer, dus ik gebruik "06" - dat verwijst naar mijn broederschap (opgericht in 1906), en "OUCOE" - wat verwijst naar mijn alma mater (University of Oklahoma, College of Engineering).
- Ik heb een "blanco" side_number-stuk gemaakt dat u kunt wijzigen om uw eigen aangepaste nummer en tekst te maken.
Stap 2: Soldeer / monteer componenten - deel a (toetsenbord en zijnummer)
Eerst brengen we het zijnummer aan. Gebruik een klein beetje lijm om het zijnummer op zijn plaats te zetten.
Vervolgens monteren we het toetsenbord
-
U moet 7 stukken gevlochten draad knippen - elk met een lengte van 10-12 inch. Deze worden aangesloten op pinnen 0-6 van de capacitieve aanraaksensor. Ik raad je aan verschillende kleuren te gebruiken (en de kleuren/pin-toewijzing op te schrijven, omdat je deze informatie later nodig hebt). Ik heb de volgende kleurencombinatie gebruikt:
- Geel - Pin 0/Knop 1
- Grijs - Pin 1/Knop 2
- Rood - Pin 2 /Knop 3
- Blauw - Pin 3 //Knop 4
- Groen - Pin 4 //Knop 5
- Wit - Pin 5 //Knop 6
- Zwart - Pin 6 //Knop 7
- Strip 1/2 inch van het uiteinde van elke draad.
- Knip 7 stukjes geleidende tape (elk ongeveer 1/2 inch breed) en soldeer de draden aan de koperen kant van de tape.
- Verwijder de zelfklevende achterkant en plak ze op de onderkant van de toetsen. Mogelijk moet u een deel van de kopertape afsnijden.
Let op: de Keys kunnen ofwel vanaf de onderkant worden gelijmd (zodat ze gelijk liggen met de bovenkant) of vanaf de bovenkant (zodat ze een paar mm van de bovenkant "zweven"). Ik heb ervoor gekozen om de mijne vanaf de bovenkant te lijmen.
Als je alle 7 hebt voltooid, gebruik je een klein beetje lijm om de toetsen op het toetsenbord te bevestigen. Ik vind het makkelijker om:
- "Slang" eerst de draad door het sleutelgat.
- Doe vervolgens een klein beetje lijm op de nok/rand van de sleutel
- Zet de sleutel snel op zijn plaats.
Opmerking: Krazy Glue werkt hier het beste; misschien wilt u handschoenen gebruiken om ongelukken en kans op huidirritatie te beperken.
Stap 3: Soldeer / monteer componenten - Deel B (Featherwings en sensoren)
De volgende stap is het voorbereiden en monteren van de hardwarecomponenten. Uiteindelijk betekent dit het solderen van header-pinnen en -draden voor later gebruik. Deze handleiding gaat ervan uit dat u vertrouwd bent met solderen; zo niet, bekijk dan deze "Guide to Excellent Soldering" van Adafruit.
Eerst maken we materialen klaar. Voor deze stap heb je nodig:
- TFT 3.5 Featherwing
- ESP32 Veer
- INA219 Featherwing
- Tripler Featherwing
- MPR121 Capacitieve aanraaksensor
- BME680-sensor
- Rechte en haakse koppennen
- Stevige en gevlochten draad
- Soldeergereedschap en helpende handen
- Diagonaal Draadknippers en draadstrippers
- Remklauwen
Opmerking: ik raad u aan deze stap eerst door te lezen en al uw draden en headers door te knippen voordat u begint te solderen. Zo hoef je niet te stoppen om te meten/knippen.
Bereid de TFT 3.5 Featherwing voor
De TFT is direct klaar voor gebruik met de enige aanpassing. U moet een draad solderen tussen het "Lite" -pad en een pin-soldeerpad. Onze code gebruikt ESP32 Pin 21 om de TFT lite te bedienen. Schik de TFT op de "lange" manier, met de resetknop onderaan. Pin 21 is de pin linksonder.
Knip een stuk gevlochten draad van 40 mm af. Strip de uiteinden zodat er aan elk uiteinde een paar millimeter draad zichtbaar is. Gebruik uw soldeerbout en soldeer voorzichtig aan beide pinnen.
Opmerking: je hebt slechts ongeveer 35 mm lengte nodig … dus je kunt je draad naar behoefte inkorten. Ik vind ook dat het toevoegen van soldeer aan de pad, dan aan de draad, en dan de draad aan de pad solderen, de gemakkelijkste benadering is. Eindelijk - deze pads zijn klein… als je je ongemakkelijk voelt, kun je deze stap altijd overslaan: het is alleen om de TFT uit te schakelen met het toetsenbord.
Bereid de ESP32 Feather voor:
U moet standaard mannelijke header-pinnen op de ESP32 solderen. Uw ESP32 moet worden geleverd met de headers, hoewel u ze mogelijk moet bijsnijden om de juiste lengte te krijgen (16 pinnen aan de lange kant; 12 pinnen aan de korte kant). Header pinnen zijn gemaakt om "weg te klikken", dus u kunt uw diagonale snijders gebruiken om de headers op de juiste lengte te knippen. Nogmaals, Adafruit heeft geweldige instructies over hoe je dat moet doen, dus bekijk het als je hulp nodig hebt.
OPTIONEEL - Bereid de INA219 Featherwing voor
Soldeer eerst mannelijke headers aan de featherwing (volgens dezelfde instructies als gebruikt voor de ESP32). Knip vervolgens vier stukken draad van 20 mm af. Ik zou 2 ZWART maken en de anderen een andere kleur. Ik gebruikte GRIJS en BLAUW voor mijn kleurkeuzes.
Strip de uiteinden van de draad zodat aan elk uiteinde 3-4 mm koperdraad zichtbaar is. U soldeert elk van elke draad zoals hieronder:
- GRIJS -> V+ (plus)
- BLAUW -> V- (min)
- ZWART -> GND (aarde)
- ZWART -> GND (aarde)
Laat de andere uiteinden van de draden op dit moment; we zullen ze uiteindelijk aan de DC 2.1-stekkers solderen.
Bevestig de piëzo-zoemer
De INA Featherwing wordt geleverd met een klein prototyping-gebied; we zullen dat gebruiken om onze piëzo te bevestigen. De piëzo geeft ons project de mogelijkheid om te piepen en waarschuwingen, alarmen, enz.
De piëzo maakt verbinding met ESP32 PIN 13; dit komt overeen met de pin naast de USB-pin op de Featherwing (zie afbeelding voor pijlen). De andere piëzo-pin maakt verbinding met aarde. De piëze-pinnen zijn lang genoeg om ze rechtstreeks aan de veervleugel te solderen… je hoeft de pinnen alleen maar te buigen in de vorm van een "man met boogbenen" (zie afbeelding). Zodra je de pinnen op hun plaats hebt, gebruik je een helpende hand (of tape) om de piëzo op zijn plaats te houden en soldeer je vanaf de onderkant van de featherwing.
Opmerking - Als u de INA219 niet gebruikt, moet u de piëzo rechtstreeks op het Featherwing-bord solderen.
Bereid de Tripler Featherwing voor
De veervleugel bespaart ons veel soldeerwerk; het kan 3 veren / veervleugels bevatten … dus we zullen het gebruiken om elektrische verbindingen te maken tussen de TFT, ESP32, INA219 (evenals de piëzo- en de TFT Lite-pin).
Om de verbindingen goed te maken, moeten we twee paar stapelbare headers en één paar standaard mannelijke headers solderen.
- De reguliere mannelijke headers gaan door op de "bovenste" plek, maar worden aan de onderkant van de Tripler gesoldeerd.
- De twee stacking headers worden gesoldeerd op spot 2 en 3, aan de bovenzijde van de Tripler.
Dit is een beetje verwarrend, dus zorg ervoor dat u naar de afbeeldingen kijkt om te begrijpen waar elke kop is geplaatst. Ook kan een combinatie van een PCB-bankschroef en helpende handen enorm helpen bij het solderen van de componenten.
Bereid de BME 680-sensor en de MPR121 capacitieve aanraaksensor voor
De laatste twee sensoren zijn het moeilijkst om te bevestigen. We moeten header-pinnen aan de breakout-boards bevestigen voordat we de montage voltooien.
De BME-sensor is onder een hoek van 90 bevestigd, zodat ik de sensor kan uitlijnen met een gat in de behuizing (zodat de sensor temperatuur, gas, vochtigheid kan vastleggen). U moet haakse pinnen aan de gaten solderen. Bekijk de afbeeldingen om ervoor te zorgen dat u ze correct uitlijnt.
De capacitieve aanraaksensor is eenvoudig - soldeer gewoon rechte mannelijke connectorpinnen, zoals hier beschreven. Opmerking: u MAG GEEN pinnen op de capacitieve aanraakpinnen (0 - 11) solderen.
Bevestig BME 680- en MPR121-sensoren aan Tripler Board
Beide Sensoren communiceren via I2C… wat betekent dat we maar 4 verbindingen hoeven te maken tussen de breakout boards en de Featherwing. Voor de eenvoud soldeer ik alle verbindingen tussen de borden.
BME 680
Voor deze sensor gebruik ik Helping Hands en een PCB Vise om beide componenten op hun plaats te houden (zie afbeelding hierboven). De BME680 Sensor moet aan het einde van de featherwing worden geplaatst. Zie de afbeeldingen hierboven om de plaatsing te bevestigen.
Het solderen van de verbindingen is vervelend, dus ga langzaam. Ik gebruik massieve kerndraad voor de verbindingen:
- ZWART - GND
- ROOD - VIN
- GEEL - SCL (SCK-pen op de sensor naar de
- ORANJE - SDA (SDA-pin op de sensor)
Opmerking: De SCL- en SDA-pinnen zijn nodig voor beide sensoren, dus het kan gemakkelijker zijn om een SCL- of SDA-pin op een ander deel van de Featherwing te gebruiken.
MPR121
Helpende handen helpen ook bij het solderen van deze sensor (tape werkt ook). De code gebruikte I2C voor communicatie met de ESP32, dus je verbindt de SCA- en SDA-pinnen.
Stap 4: Soldeer / monteer componenten - Deel C (toetsenbord naar capacitieve sensor en veren in behuizing)
In deze stap soldeert u de draden van het toetsenbord naar de capacitieve aanraaksensor. Gebruik dezelfde kleurtoewijzing van eerder. Als je mijn kleurenschema hebt gevolgd, soldeer je de gekleurde draden als volgt:
- Geel - Pin 0/Knop 1
- Grijs - Pin 1/Knop 2
- Rood - Pin 2 /Knop 3
- Blauw - Pin 3 /Knop 4
- Groen - Pin 4/Knop 5
- Wit - Pin 5/Knop 6
- Zwart - Pin 6/Knop 7
Zodra het solderen is voltooid, gebruikt u een twisty-tie om de draden op hun plaats te houden.
Schroef vervolgens het TFT-scherm op het "Front"-stuk. U gebruikt de M3-schroeven (vier in totaal). Zodra de TFT op zijn plaats zit, schroeft u het "Front" -stuk op de behuizing. Nogmaals, je gebruikt M3-schroeven (twee).
Sluit vervolgens de Featherwing Tripler, met alle componenten aangesloten, aan op de TFT.
Opmerking - Als u van plan bent een batterij te gebruiken, sluit deze dan aan op de ESP32-JST-poort voordat u de TFT plaatst. Gebruik tape om de batterij aan de binnenkant van de onderkant van de behuizing te bevestigen.
Stap 5: OPTIONEEL - Onderdelen solderen/monteren - Deel D (INA219 Feather)
Als u de INA219-sensor gebruikt, bevestigt u hier de draden aan de DC-stekkers.
- Steek de DC-stekkers in de achterklep en schroef ze op hun plaats.
-
Gebruik een soldeerbout om de INA219-draden aan te sluiten.
- De zwarte draden moeten voor elke DC-stekker naar de GROND gaan.
- De grijze draad moet naar de INPUT DC-stekker gaan
- De blauwe draad moet naar de OUTPUT-stekker gaan.
Stap 6: Achterklep vastschroeven en USB aansluiten
De laatste stap bij het monteren van de hardware is om de achterklep op zijn plaats te schroeven - met behulp van M2-schroeven (4). Van daaruit sluit u de USB-kabel aan, sluit u deze aan op uw pc en gaat u verder met de softwarestappen!
Stap 7: AWS-omgeving voorbereiden
Zoals ik in de intro al zei, is het uitgangspunt van de oplossing als volgt:
- De Terminal, aangedreven door een ESP32, gebruikt een MQTT-verbinding (over Wifi) voor communicatie met de AWS-cloud.
- De AWS-cloud doet het grootste deel van de verwerking en dient als relais tussen de Monitor en de gevraagde diensten.
Er zijn een paar dingen die we moeten doen in deze stap:
Eerst moet je je AWS-omgeving instellen, als je dat nog niet hebt gedaan. Deze instructable gaat ervan uit dat je al een AWS-account hebt ingesteld, dus instructies voor het instellen van een cloudaccount zijn niet inbegrepen. Dat gezegd hebbende, de stappen zijn eenvoudig en kunnen hier worden gevonden.
Als je die stap voorbij bent, moet je een paar services maken, dus log in op de AWS-console.
Een ding maken en sleutels downloaden
AWS IoT Core faciliteert de communicatie tussen de AWS-cloud en het display. U moet een "ding" maken en certificaten downloaden om de communicatie te ondersteunen.
[Opmerking: de meeste van deze instructies zijn ontleend aan een gids geschreven door Moheeb Zara, AWS Evangelist]
- Open de AWS-console en selecteer AWS IoT Core.
- Kies in de AWS IoT-console een nieuw ding registreren, een enkel ding maken.
- Noem het nieuwe ding "starTrekESP32". Laat de overige velden op hun standaardwaarden staan. Kies Volgende.
- Kies Certificaat maken. Alleen de thing cert, private key en Amazon Root CA 1-downloads zijn nodig om de ESP32 te verbinden. Download en bewaar ze ergens veilig, zoals ze worden gebruikt bij het programmeren van het ESP32-apparaat.
- Kies Activeren, Een beleid bijvoegen.
- Sla het toevoegen van een beleid over en kies Registreer ding.
- Kies in het zijmenu van de AWS IoT-console Beveilig, Beleid, Beleid maken.
- Noem het beleid AllowEverything. Kies het tabblad Geavanceerd.
- Plak de volgende beleidssjabloon in.
- { { "Versie": "2012-10-17", "Statement": [{ "Effect": "Toestaan", "Actie": "iot:*", "Bron": "*" }] }
- Kies Maken. (Opmerking: dit wordt alleen aanbevolen om te beginnen. Nadat u vertrouwd bent met alles dat werkt, gaat u terug en wijzigt u dit in iets beperkender.)
- Kies in de AWS IoT-console Veilig, Certificering.
- Selecteer degene die voor uw apparaat is gemaakt en kies Acties, Beleid bijvoegen.
- Kies Alles toestaan, Bijvoegen.
- Klik voordat je vertrekt op "Instellingen" (in het linkermenu). Uw "Aangepast eindpunt" wordt weergegeven; sla dat op in een tekstbestand … je hebt het nodig wanneer je de ESP32 configureert.
Een leeg Lambda-bestand maken
Lambda is een vorm van serverless compute, dus we hoeven ons hier geen zorgen te maken over hardware. Uiteindelijk zullen we hier onze bijgewerkte code plaatsen (wat we in een paar stappen zullen doen). Voor nu willen we alleen een tijdelijke aanduiding maken, dus…
- Log weer in op de AWS-console (als je bent uitgelogd) en klik op Lambda.
- Klik op de knop "Functie maken".
- Voer op de volgende pagina een basisnaam in, zoals starTrekDisplay
- Selecteer Node.js 12. X
-
Onder machtigingen:
- Als u de weg kent in Lambda en er bekend mee bent, kunt u elke zinvolle optie selecteren. U hebt machtigingen nodig voor CloudWatch, IotCore, S3 (lezen en schrijven).
- Als je niet zeker bent over de rechten, selecteer dan "Een nieuwe rol maken met basis Lambda-rechten". Schrijf de naam van de rol op. Later zullen we de machtigingen wijzigen.
- Klik op Functie maken.
- Na een minuut komt u in een nieuw scherm met een "hello world" codefragment. Scroll naar beneden naar Basisinstellingen en klik op "Bewerken"
- Wijzig de time-out van 3 seconden in 2 minuten en 0 seconden. Opmerking: uw code mag nooit langer duren dan 5-10 seconden… we hebben echter een langere time-out nodig voor uw eerste authenticatie bij Microsoft (voor agendafunctionaliteit). Nadat u zich heeft geverifieerd, kunt u dit wijzigen in 20 seconden.
- Druk op opslaan.
Maak een Iot-regel
- Blijf in de Lambda-console en scrol omhoog. Selecteer "Trigger toevoegen".
- Selecteer AWS IoT. Selecteer vervolgens "Aangepaste regel".
-
Kies "Een nieuwe regel maken".
- Regelnaam: ESP-verbinding
- Regelquery-instructie: "SELECT * FROM 'starTrekDisplay/pub'
- Klik op "Toevoegen"
Een S3-bucket en -map maken
- Navigeer naar de AWS-console en selecteer S3.
- Je hebt een bucket en map nodig om authenticatiebestanden op te slaan. Deze map moet privé zijn. Ik raad je aan om elke bucket te gebruiken die je al hebt en de naam van de maak een map met de naam "starTrekDisplay". Opmerking - als u geen emmer heeft, maakt u er een aan de hand van de instructies hier.
Machtigingen bijwerken - Als u Lambda hebt toegestaan een rol voor u te maken, moet u deze stap volgen
- Log in op de AWS-console en selecteer IAM
- Klik op ROLLEN en selecteer vervolgens de rolnaam die u eerder hebt gemaakt.
-
Klik op beleid bijvoegen en selecteer vervolgens het volgende beleid:
- AWSioTFullAccess
- AmazonSNSVolledige toegang
- CloudWatchVolledige Toegang
- AmazonS3Volledige toegang
Stap 8: Softwaresleutels downloaden en services van derden instellen
Ik gebruik de volgende services van derden in het project:
- Worldtime API - voor tijd
- National Weather Service API's - voor het weer
- Microsoft Graph API voor toegang tot mijn agenda
- Google Fitness API voor toegang tot fitnessinformatie
U moet accounts instellen en sleutels downloaden om gebruik te kunnen maken van dezelfde services
Worldtime API - voor tijd
Deze API vereist geen sleutel, dus er is geen actie nodig om dit te laten werken.
National Weather Service API's - voor het weer
De National Weather Service API is gratis en er is geen API-sleutel vereist. Wel verzoeken ze u bij elk verzoek (als onderdeel van het headerbestand) contactgegevens (in de vorm van een e-mail) door te geven. In de volgende stap voegt u contactgegevens toe aan de code.
OPTIONEEL - Microsoft Graph API en Google Fitness API
Dit is het meest complexe deel van de code-setup. Ons apparaat heeft geen volwaardig toetsenbord … daarom gebruiken we iets genaamd OAUTH voor beperkte apparaten om toegang te krijgen tot onze agenda. Helaas moet u een Azure-app en een Google-app maken voordat u code kunt gebruiken om OAUTH voor beperkte apparaten te gebruiken.
Instructies voor het maken van een app zijn hier voor Microsoft en hier voor Google. Hier zijn een paar dingen die u moet weten:
- U moet een Azure- en Google-cloudaccount maken. Dit is gratis en er wordt niets in rekening gebracht
-
Microsoft:
- U wordt gevraagd welke gebruikers de app kunnen gebruiken. Ik stel voor dat u "Accounts in een organisatiemap en persoonlijke Microsoft-accounts" selecteert. Hierdoor kunt u (in de meeste gevallen) persoonlijke Microsoft-accounts en zakelijke accounts gebruiken.
- U wilt 'Mobiele en desktop'-applicaties selecteren, maar u hoeft niet alle informatie in te vullen (aangezien dit een persoonlijke app is). Dit betekent dat u uw app niet aan de wereld beschikbaar kunt stellen…. maar dat is ok in dit geval
- Nadat uw app is ingesteld, moet u de benodigde machtigingen selecteren. Ik vroeg om machtigingen met betrekking tot profielen en kalenders (zie de afbeelding in de galerij voor de volledige lijst met machtigingen). U moet dezelfde set selecteren. Als u meer machtigingen toevoegt, moet u het bereik in de volgende stap op de juiste manier wijzigen.
Stap 9: AWS-code wijzigen en uploaden
Deze instructable gaat ervan uit dat u bekend bent met de ontwikkeling van Node.js en Lambda. Download het gekoppelde bestand en breng wijzigingen aan om bij te werken:
- Microsoft App en Client informatie
- Google-sleutel
- E-mailadres voor tracking van de National Weather Service
- S3-bucketnaam
- S3-mapnaam
- AWS-eindpunt
U moet ook de volgende knooppuntbibliotheken downloaden:
- aws-sdk
- moment tijdzone
- accenten
Zodra die wijzigingen zijn aangebracht, uploadt u de code naar de tijdelijke aanduiding lambda die u eerder hebt gemaakt.
Stap 10: Arduino IDE voorbereiden en bibliotheken downloaden
Deze handleiding gaat er ook van uit dat je bekend bent met Arduino. U moet ervoor zorgen dat uw IDE is ingesteld om te werken met een Adafruit ESP32. Volg de instructies hier als je hulp nodig hebt.
Zodra dit is voltooid, downloadt u de volgende bibliotheken:
- Adafruit_GFX (van de bibliotheekmanager)
- Adafruit_HX8357 (van de bibliotheekmanager)
- TFT_eSPI (van de bibliotheekmanager)
- TFT_eFEX (https://github.com/Bodmer/TFT_eFEX)
- PubSubClient (van de bibliotheekbeheerder)
- ArduinoJson (van de bibliotheekbeheerder)
- Adafruit_STMPE610 (van de bibliotheekmanager)
- Adafruit_MPR121 (van de bibliotheekmanager)
- Adafruit_INA219 (van de bibliotheekbeheerder)
- Adafruit_Sensor (van de bibliotheekmanager)
- Adafruit_BME680 (van de bibliotheekmanager)
- Tone32 (https://github.com/lbernstone/Tone)
Vervolgens moeten we enkele bibliotheken aanpassen:
- Open de map PubSubClient (in de map Arduino/Bibliotheek) en open "PubSubClient.h". Zoek de waarde voor MQTT_MAX_PACKET_SIZE en wijzig deze in 2000.
- Open vervolgens de map TFT_eSPI en open het bestand "User_Setup_Select.h". Geef commentaar op alle "includes users_setup…" regels en voeg deze regel toe:
#erbij betrekken
Download daarna het gekoppelde Custom_Tricorder.zip-bestand en pak het ".h"-bestand uit naar de locatie "TFT_eSPI / User_Setups" in uw Arduino-bibliothekenmap. l
Nu kunnen we doorgaan met het bijwerken van de Arduino-code
Stap 11: Update en installeer Arduino-code en doe mee
Arduino-code
Download en pak het gekoppelde bestand voor de Arduino-code uit. Ga naar het tabblad secrets.h. U moet het volgende bijwerken:
- WIFI_SSID = update met je wifi SSID
- WIFI_PASSWORD = update met uw wifi-wachtwoord
- TIMEZONE = update met uw tijdzone uit deze lijst
- LAT (u kunt een service zoals "https://www.latlong.net" gebruiken om uw breedte- en lengtegraad te vinden
- LNG
- AWS_IOT_ENDPOINT = je had dit eerder moeten opslaan. Het zou eruit moeten zien als "dx68asda7sd.iot.us-east1-amazonaws.com"
- AWS_CERT_CA
- AWS_CERT_CRT
- AWS_CERT_PRIVATE
U heeft de certificaten ook uit een eerdere stap gedownload. Open vervolgens in de notitie-editor (bijv. Kladblok) en plak de tekst tussen de ' R"EOF(' en ')EOF";'. Zorg ervoor dat u "-----BEGIN CERTIFICAAT-----" of "-----BEGIN RSA PRIVATE KEY-----" opneemt.
Afbeeldingsbestanden
De ESP32 wordt geleverd met een klein bestandssysteem. We gebruiken dit bestandssysteem om afbeeldingen voor ons programma op te slaan. U moet de tool installeren waarmee u bestanden kunt uploaden.
- Bezoek eerst de uitgebreide tutorial over Random Nerd Tutorials.
- Als je dit eenmaal werkend hebt, kun je de bestanden uploaden in de datamap (ook opgenomen in het zipbestand).
Bezighouden
Upload de definitieve Arduino-code en je bent klaar!
Opmerking - De Star Trek-naam en Star Trek-afbeeldingen zijn eigendom van CBS/Paramount. Ze hebben een vrij laks beleid als het gaat om cosplay en fanfictie - lees hier als je vragen hebt.
Eerste prijs in de Fandom-wedstrijd
Aanbevolen:
Hoe maak je professionele PCB's (is het het waard?): 5 stappen
Hoe maak je professionele PCB's (is het het waard?): Ik wil graag mijn "PCB-ervaringen" delen met jou
Raspberry Pi Oled-klok Bekijk het, hoor het en voel het: 5 stappen (met afbeeldingen)
Raspberry Pi Oled Clock Watch It Hear It and Feel It: dit is een slimme klok die de tijd op een OLED-display weergeeft en je kunt ook de tijd horen op verschillende tijdsintervallen die hulpvol zijn voor blinden en het verandert ook de led-kleur met de tijd zoals licht in de schemering licht in de avond wordt oranje naar geel en houdt van t
Schrijf het ! Maak het ! Deel het!: 4 stappen
Schrijf het ! Maak het ! Deel het!: Mijn leerlingen hebben Lego gebruikt om creativiteit toe te voegen aan hun schrijven, de organisatie van het schrijven en om hun werk digitaal te presenteren met hun familie en met hun leeftijdsgenoten in de klas
Hoe muziek te krijgen van BIJNA ELKE (Haha) website (zolang je het kunt horen, kun je het krijgen Ok prima als het in Flash is ingesloten, kun je dat misschien niet) BEWERKT !!!!! Info toegevoegd: 4 stappen
Hoe muziek te krijgen van BIJNA ELKE (Haha) website (zolang je het kunt horen, kun je het krijgen … Ok prima als het in Flash is ingesloten, kun je dat misschien niet) BEWERKT !!!!! Toegevoegde info: als je ooit naar een website gaat en een nummer speelt dat je leuk vindt en wilt, dan is hier de instructie voor jou, niet mijn schuld als je iets verknoeit (de enige manier waarop het zal gebeuren is als je dingen begint te verwijderen zonder reden )ik heb muziek kunnen krijgen voor
Waterdichte luidsprekers die drijven - "Het drijft, het draagt en het rockt de noten!": 7 stappen (met afbeeldingen)
Waterdichte luidsprekers die drijven - "It Floats, It Totes and It Rocks the Notes!": Dit waterdichte luidsprekerproject is geïnspireerd op vele reizen naar de Gila-rivier in Arizona (en SNL's "I'm on a Boat!" ). We zullen de rivier afdrijven of lijnen aan de kust bevestigen zodat onze drijvers vlak bij onze camping blijven. Iedereen he