Indholdsfortegnelse:

Gør det så! Star Trek TNG Mini Engineering Computer: 11 trin (med billeder)
Gør det så! Star Trek TNG Mini Engineering Computer: 11 trin (med billeder)

Video: Gør det så! Star Trek TNG Mini Engineering Computer: 11 trin (med billeder)

Video: Gør det så! Star Trek TNG Mini Engineering Computer: 11 trin (med billeder)
Video: Star Trek: TNG Reunion Full Panel - 30th Anniversary - Front Row - August 4, 2017 2024, November
Anonim
Image
Image
Gør det så! Star Trek TNG Mini Engineering Computer
Gør det så! Star Trek TNG Mini Engineering Computer
Gør det så! Star Trek TNG Mini Engineering Computer
Gør det så! Star Trek TNG Mini Engineering Computer

Oversigt

Jeg voksede op med at se Star Trek: The Next Generation. Jeg har altid ønsket at bygge en enhed med Star Trek -tema, så jeg endelig kom til at remixe et af mine gamle projekter for at lave en Star Trek Display Terminal.

Terminalen giver følgende oplysninger:

  • Vejr - ved hjælp af National Weather Service
  • Indendørs temperatur, fugtighed og flygtig organisk forbindelse (VOC) styrke
  • Nyhedsartikler - fra News.org
  • Tidsplan (med alarmfunktion) - fra Microsoft Outlook
  • Fitnessinformation (trin, bevægelsesminutter, hjertepunkter, vægt, forbrændte kalorier) - fra Google Fitness
  • et modstandsfarvekodediagram
  • en LED -modstandsberegner (for at bestemme modstandsværdien baseret på strøm og kildeeffekt)
  • Effekt- og strømmålingsværktøj

Disse oplysninger gøres tilgængelige via en kombination af API'er og hardwaresensorer. Jeg udnytter en ESP32 til mikrokontrolleren og udnytter AWS Cloud til al dataindsamling og aggregering.

Jeg inkluderede også et par "påskeæg":

  • Ron McNair hyldest - Dr. McNair er grunden til, at jeg blev ingeniør; han voksede op 45 minutter fra min hjemby. Han døde i Challenger -eksplosionen.

    • Navnet på mit stjerneskib er "USS Ronald E McNair"
    • Registreringsnummeret er fra Sr McNairs fødselsdato; præfiks -koden er den dag, han mistede livet.
  • Brugen af en "præfiks kode" er et nik til Star Trek: Wrath of Khan (den største Star Trek -film nogensinde; ikke @ mig).
  • Tallene til højre i terminalsagen refererer til mit broderskab (1906 - Alpha Phi Alpha) og mit alma mater og studieretning - (University of Oklahoma, College of Engineering)

Du har mulighed for at tilpasse nummerering, bogstaver og skibsnavn, registreringsdatabase osv. Til dine egne "påskeæg".

Baggrund

Sidste år havde jeg brug for en billig måde at måle strøm og batteridrænning til et bærbart projekt. Jeg købte en Adafruit INA219 Featherwing og brugte nogle forskellige reservedele til at bygge en simpel strømmåleenhed (du kan læse mere om det her).

I år besluttede jeg at opgradere enheden … for at gøre den mere "techy". Jeg planlagde oprindeligt at bygge en fungerende Star Trek-tricorder (Mark IV TR-590 Mark IX-versionen, for dem, der interesserer sig) … men jeg indså hurtigt, at det var mere fornuftigt at skabe noget, der ville sidde på mit skrivebord (jeg mener, hvorfor gå til alt dette besvær med at lave en sej enhed, bare for at lukke den og lægge den i en skuffe, når den ikke bruges).

Så jeg vendte mig til at lave en version af computerskærme, som du ser på Star Trek TNG eller Voyager (eller de forskellige film). Jeg legede med forskellige designs, og stødte derefter på en version skabt af Ruiz Brothers of Adafruit. Adafruit gør et stort stykke arbejde med leverede kildefiler til deres 3D -trykte projekter, så jeg kunne tage deres originale version og remixe den til min hardware, knapper og andre eksterne enheder.

Ting at vide, før du fortsætter

  1. Jeg giver trin for trin instruktioner til at lave min version af projektet; jeg går dog ikke ind på detaljer om visse trin (jeg linker til understøttende instruktioner eller dokumentation)
  2. Dette er et komplekst projekt. Det er et "multidisciplineret mærke", der kræver følgende færdigheder

    • Arduino IDE
    • AWS - Du skal bruge en konto og skal forstå S3, Lambda og Node JS
    • Lodning
    • 3D -udskrivning
  3. Der er valgfrie "tilføjelser" til at forbedre projektet for at få oplysninger om kalender og fitness. Funktionaliteten er inkluderet i kodebasen; du bliver dog nødt til at oprette "apps" i Azure- og Google -skyerne for at understøtte funktionerne.
  4. Dette kan i sidste ende tilpasses … du kan skifte den aktuelle sensor ud med en anden fjerving Du kan bruge en anden fjer/wifi -kombination.

Forbrugsvarer

Elektroniske komponenter

  • Adafruit ESP32 Huzzah Feather
  • Adafruit Featherwing Tripler Mini Kit
  • Adafruit 12-nøgles kapacitiv berøringssensorbrud
  • Adafruit TFT FeatherWing - 3,5 "480x320 berøringsskærm
  • Adafruit BME680 - Temperatur-, fugtigheds-, tryk- og gassensor
  • DC Panel Mount 2.1 Barrel Jack (2)
  • Lithium -ion -polymerbatteri - 3,7 V 500mAh
  • Piezo summer
  • Mirco USB -kabel og 5V oplader (en typisk USB -telefonoplader fungerer)
  • Kobberfolie tape med klæbemiddel
  • Valgfrit - Adafruit INA219 Featherwing
  • Valgfri - 2.1 hanstik - (til brug med INA219 -strømføleren)

Link til alle elektroniske komponenter undtagen 2.1 stik:

3D -filamentkomponenter og valgfri maling/slibningskomponenter

  • Proto Pasta Conductive PLA
  • Yderligere 3D -filamenter - jeg brugte 4 farver - Grå, sort, Aqua (lyseblå) og hvid
  • .25 og 0.4 mm dyser (jeg brugte 0.25 til bogstaverne).

Komponenter og værktøjer til hardware

  • M2x5 og M3x5 skruer
  • Lige og højre vinkel Header Pins (Se Adafruit ønskeliste for links)
  • Loddejern (og spole af loddetin, spidstinnemaskine, loddesuger osv.)
  • Philips hovedskruetrækkersæt
  • Krymp indpakning
  • Stranded Wire 22AWG - fem eller seks farver
  • Solid Wire 22AWG - fem eller seks farver
  • PCB Vise og hjælpende hænder (valgfri, men gør lodning lettere)
  • Diagonale trådskærere
  • Wire Strippers
  • Xacto Knife (til fjernelse af understøtninger fra 3D -printerdele)
  • 3D -printer (hvis du planlægger at udskrive selv)
  • Kitt eller tape (for at fastgøre batteriet på indersiden af den trykte kasse)
  • Digitale kalibre
  • Krazy Lim
  • Valgfri - Nitril engangshandsker
  • Valgfrit - Loddemåtte (valgfrit, men beskytter overflader)

Bemærk: Hvis du ikke har disse værktøjer, foreslår jeg, at du besøger Becky Sterns websted for at få anbefalinger til gode muligheder.

Software

  • Arduino IDE
  • Node JS editor (som Microsoft Code)
  • AWS -konto
  • Valgfrit - Google Cloud -konto (for fitnessinformation)
  • Valgfrit - Microsoft Azure Cloud -konto (for kalenderoplysninger)
  • Trin 1: Download, rediger filer og udskriv 3D -filer

    Download, rediger filer og udskriv 3D -filer
    Download, rediger filer og udskriv 3D -filer
    Download, rediger filer og udskriv 3D -filer
    Download, rediger filer og udskriv 3D -filer
    Download, rediger filer og udskriv 3D -filer
    Download, rediger filer og udskriv 3D -filer
    Download, rediger filer og udskriv 3D -filer
    Download, rediger filer og udskriv 3D -filer

    Du kan indsende filerne til en 3D -udskrivningstjeneste (f.eks. 3D Hubs), eller du kan udskrive dine egne. Filer er tilgængelige på PrusaPrinters.org.

    Denne sag er et remix af Py Portal -vækkeuret, der findes på Adafruit -webstedet. Mit projekt bruger en lignende TFT, så jeg kunne minimere mængden af designarbejde, der er nødvendigt for at få sagen til at fungere med mit tilbehør.

    Jeg brugte følgende indstillinger til udskrivning:

    • Front og bagside- trykt med 0,2 mm laghøjde med en 0,4 mm dyse, ingen understøtninger
    • Sidetal - trykt med 0,10 mm laghøjde med en 0,25 mm dyse, ingen understøtninger
    • Nøgler - trykt med 0,2 mm laghøjde med en 0,4 mm dyse. Du skal udskrive 7, og du skal udskrive med Proto-Pasta Conductive Filament.
    • Etui - trykt med 0,2 mm laghøjde.

      Understøttelser er nødvendige, men er ikke nødvendige overalt (kun på siderne og midten, hvor tastaturet sidder

    Et par ting du bør vide:

    1. Prusa MK3 giver dig mulighed for at ændre farver i forskellige laghøjder. Jeg brugte denne funktion til sidetalstykket.
    2. Også hvad angår sidetalstykket:

      • Star Trek TNG -produktionsholdet ville drysse påskeæg i rekvisitterne. Hvis du ser nærmere på forskellige plaketter og paneler, ser du folks navne, sangtekster osv. Jeg ville oprette mit eget "påskeæg" til sidetallet, så jeg bruger "06" - som refererer til mit broderskab (dannet i 1906) og "OUCOE" - som refererer til mit alma mater (University of Oklahoma, College of Engineering).
      • Jeg har oprettet et "tomt" side_nummer -stykke, som du kan ændre for at lave dit eget tilpassede nummer og tekst.

    Trin 2: Lodde/saml komponenter - del a (tastatur og sidetal)

    Lodde-/samlkomponenter - del a (tastatur og sidetal)
    Lodde-/samlkomponenter - del a (tastatur og sidetal)
    Lodde-/samlkomponenter - del a (tastatur og sidetal)
    Lodde-/samlkomponenter - del a (tastatur og sidetal)
    Lodde-/samlkomponenter - del a (tastatur og sidetal)
    Lodde-/samlkomponenter - del a (tastatur og sidetal)
    Lodde-/samlkomponenter - del a (tastatur og sidetal)
    Lodde-/samlkomponenter - del a (tastatur og sidetal)

    Først anbringer vi sidetallet. Brug en lille klat lim til at sætte sidetallet på plads.

    Dernæst samler vi tastaturet

    1. Du skal skære 7 stykker strandet tråd - hver mellem 10-12 tommer i længden. Disse vil blive forbundet til pins 0-6 på den kapacitive berøringssensor. Jeg foreslår, at du bruger forskellige farver (og skriver farverne/pin -kortlægningen ned, da du får brug for disse oplysninger senere). Jeg brugte følgende farvekombination:

      • Gul - Pin 0/knap 1
      • Grå - Pin 1/Knap 2
      • Rød - Pin 2 /knap 3
      • Blå - Pin 3 // Knap 4
      • Grøn - Pin 4 // Knap 5
      • Hvid - Pin 5 // Knap 6
      • Sort - Pin 6 // Knap 7
    2. Striml 1/2 i fra enden af hver ledning.
    3. Skær 7 stykker ledende tape (hver ca. 1/2 tommer i bredden) og lod lodningerne til kobbersiden af tapen.
    4. Fjern den selvklæbende bagside og sæt dem fast på bunden af tasterne. Du skal muligvis klippe noget af kobberbåndet af.

    Bemærk: Tasterne kan enten limes nedefra (så de flugter med toppen) eller limes ovenfra (så de "flyder" et par mm fra toppen). Jeg valgte at lime min ovenfra.

    Når du har gennemført alle 7, skal du bruge en lille klat lim, der fastgør tasterne til tastaturet. Jeg synes det er lettere at:

    • Først "slanger" ledningen gennem nøglehullet.
    • Læg derefter en lille klat lim på nøglens kant/kant
    • Sæt hurtigt nøglen på plads.

    Bemærk: Krazy Lim fungerer bedst her; du vil måske bruge handsker til at begrænse ulykker og chancer for hudirritation.

    Trin 3: Lodde-/samlkomponenter - del B (Featherwings og sensorer)

    Lodde-/samlkomponenter - del B (fjervinger og sensorer)
    Lodde-/samlkomponenter - del B (fjervinger og sensorer)
    Lodde-/samlkomponenter - del B (fjervinger og sensorer)
    Lodde-/samlkomponenter - del B (fjervinger og sensorer)
    Lodde-/samlkomponenter - del B (fjervinger og sensorer)
    Lodde-/samlkomponenter - del B (fjervinger og sensorer)

    Det næste trin er at forberede og samle hardwarekomponenterne. I sidste ende betyder dette lodning af hovedstifter og ledninger til senere brug. Denne vejledning forudsætter, at du er fortrolig med lodning; hvis ikke, så tjek denne "Guide til fremragende lodning" fra Adafruit.

    Først forbereder vi materialer. Til dette trin skal du bruge:

    • TFT 3.5 Featherwing
    • ESP32 fjer
    • INA219 Featherwing
    • Tripler Featherwing
    • MPR121 Kapacitiv berøringssensor
    • BME680 sensor
    • Lige og højre vinkel Header pins
    • Solid og Stranded Wire
    • Loddeværktøjer og hjælpende hænder
    • Diagonal Wire cutters og wire strippers
    • Kalipre

    Bemærk: Jeg foreslår, at du først læser dette trin igennem og klipper alle dine ledninger og overskrifter, før du begynder at lodde. På den måde behøver du ikke stoppe for at måle/skære.

    Forbered TFT 3.5 Featherwing

    TFT'en er klar til brug ud af kassen med den eneste justering. Du skal lodde en ledning mellem "Lite" -puden og en pin -loddepude. Vores kode bruger ESP32 Pin 21 til at styre TFT lite. Arranger TFT'en "den lange vej" med nulstillingsknappen i bunden. Pin 21 vil være den nederste venstre pin.

    Skær et 40 mm stykke strandet tråd. Strip enderne, så der vises et par millimeter ledning i hver ende. Brug dit loddejern til at lodde forsigtigt til begge stifter.

    Bemærk: du har kun brug for cirka 35 mm længde … så du kan trimme din ledning efter behov. Jeg finder også, at det er den nemmeste måde at tilføje loddetin til puden, derefter til tråden og derefter lodde tråden til puden. Endelig - disse puder er små … hvis du er utilpas, kan du altid springe dette trin over: det er kun til at slukke TFT'en med tastaturet.

    Forbered ESP32 -fjer

    Du skal lodde standard hanstifter til han til ESP32. Din ESP32 skal leveres med overskrifterne, selvom du muligvis skal trimme dem for at nå den korrekte længde (16 ben på langsiden; 12 ben på den korte side). Hovedstifter er lavet til at "snappe væk", så du kan bruge dine diagonalskærere til at klippe overskrifterne til den korrekte længde. Igen har Adafruit gode instruktioner om, hvordan du gør det, så tjek det, hvis du har brug for vejledning.

    VALGFRIT - Forbered INA219 Featherwing

    Først loddes hanhoveder til fjervinget (ved hjælp af de samme instruktioner som bruges til ESP32). Skær derefter fire 20 mm længder af strandet tråd. Jeg ville lave 2 SORT og de andre en anden farve. Jeg brugte GRÅ og BLÅ til mine farvevalg.

    Fjern enderne af tråden, så 3-4 mm kobbertråd udsættes for hver ende. Du lodder en hver af hver ledning som nedenfor:

    • GRÅ -> V+ (plus)
    • BLÅ -> V- (minus)
    • SORT -> GND (jord)
    • SORT -> GND (jord)

    Forlad de andre ender af ledningerne på dette tidspunkt; vi vil i sidste ende lodde dem til DC 2.1 -stik.

    Sæt Piezo Buzzer på

    INA Featherwing leveres med et lille prototypeareal; vi bruger det til at vedhæfte vores piezo. Piezoen vil give vores projekt mulighed for at bippe og lyde advarsler, alarmer osv.

    Piezoen opretter forbindelse til ESP32 PIN 13; dette korrelerer med stiften ved siden af USB -stiften på fjervinget (se billede for pile). Den anden piezostift forbindes til jorden. Pizzastifterne er lange nok til at lodde dem direkte til fjervinget … du skal bare bøje stifterne til en "bue-benet mand" -form (se billede). Når du har stifterne på plads, skal du bruge en hjælpende hænder (eller tape) til at holde piezoen på plads og lodde fra undersiden af fjervinget.

    Bemærk - Hvis du ikke bruger INA219, skal du lodde piezo direkte til fjervingebrættet.

    Forbered Tripler Featherwing

    Fjervingen sparer os for en masse lodning; den kan rumme 3 fjer/fjervinger … så vi vil bruge den til at oprette elektriske forbindelser mellem TFT, ESP32, INA219 (samt piezo og TFT Lite pin).

    For at oprette forbindelserne korrekt skal vi lodde to par stabelhoveder og et par standard hanhoveder.

    • De almindelige mandlige headers fortsætter på det "øverste" sted, men loddes til undersiden af Tripler.
    • De to stabelhoveder loddes på plet 2 og 3 på oversiden af Tripleren.

    Dette er lidt forvirrende, så sørg for at se på billederne for at forstå, hvor hvert overskrift er placeret. Også en kombination af en PCB Vise og Helping Hands kan i høj grad hjælpe med at lodde komponenterne.

    Forbered BME 680 -sensoren og MPR121 kapacitiv berøringssensor

    De to sidste sensorer er de sværeste vedhæftninger. Vi skal fastgøre header pins til breakout boards, før vi afslutter samlingen.

    BME -sensoren er fastgjort i en 90 vinkel, så jeg kan justere sensoren til et hul i kabinettet (så sensoren kan fange temperatur, gas, fugtighed). Du skal lodde retvinklede ben til hullerne. Se billederne for at sikre, at du justerer dem korrekt.

    Den kapacitive berøringssensor er ligetil - bare lodde lige hanstik, som beskrevet her. Bemærk: du SKAL IKKE lodde stifter til de kapacitive berøringsnåle (0 - 11).

    Sæt BME 680 og MPR121 sensorer på Tripler Board

    Begge sensorer kommunikerer via I2C … hvilket betyder, at vi kun behøver at lave 4 forbindelser mellem breakout -kortene og Featherwing. For enkelhedens skyld lodder jeg alle forbindelser mellem brædderne.

    BME 680

    Til denne sensor bruger jeg Helping Hands og en PCB Vise til at holde begge komponenter på plads (se billedet ovenfor). BME680 -sensoren skal placeres for enden af fjervinget. Se billederne ovenfor for at bekræfte placeringen.

    Processen med at lodde forbindelserne er kedelig, så gå langsomt. Jeg bruger solid core wire til forbindelserne:

      • SORT - GND
      • RØD - VIN
      • GUL - SCL (SCK pin på sensoren til
      • ORANGE - SDA (SDA pin på sensoren)

    Bemærk: SCL- og SDA -benene er nødvendige for begge sensorer, så det kan være lettere at bruge en SCL- eller SDA -pin på en anden del af Featherwing.

    MPR121

    Hjælpende hænder hjælper også ved lodning af denne sensor på plads (bånd fungerer også). Koden brugte I2C til kommunikation til ESP32, så du forbinder SCA- og SDA -benene.

    Trin 4: Lodde-/samlkomponenter - del C (tastatur til kapacitiv sensor og hylster i etui)

    Lodde-/samlkomponenter - del C (tastatur til kapacitiv sensor og hylster i etui)
    Lodde-/samlkomponenter - del C (tastatur til kapacitiv sensor og hylster i etui)
    Lodde-/samlkomponenter - del C (tastatur til kapacitiv sensor og hylster i etui)
    Lodde-/samlkomponenter - del C (tastatur til kapacitiv sensor og hylster i etui)
    Lodde-/samlkomponenter - del C (tastatur til kapacitiv sensor og hylster i etui)
    Lodde-/samlkomponenter - del C (tastatur til kapacitiv sensor og hylster i etui)

    Du lodder ledningerne fra tastaturet til den kapacitive berøringssensor i dette trin. Brug den samme farvekortlægning fra tidligere. Hvis du fulgte mit farveskema, lodder du de farvede ledninger som følger:

    • Gul - Pin 0/knap 1
    • Grå - Pin 1/Knap 2
    • Rød - Pin 2 /knap 3
    • Blå - Pin 3 /knap 4
    • Grøn - Pin 4/knap 5
    • Hvid - Pin 5/knap 6
    • Sort - Pin 6/knap 7

    Når lodningen er udført, skal du bruge en snoede slips til at holde ledningerne på plads.

    Derefter skrues TFT -skærmen til "Front" -stykket. Du bruger M3 -skruerne (fire i alt). Når TFT'en er på plads, skrues "forsiden" -stykket til sagen. Igen bruger du M3 -skruer (to).

    Slut derefter Featherwing Tripler med alle komponenter tilsluttet til TFT.

    Bemærk - Hvis du planlægger at bruge et batteri, skal du sørge for at sætte det i ESP32 -JST -porten, før du indsætter TFT. Brug tape til at fastgøre batteriet på indersiden af kabinettet.

    Trin 5: VALGFRIT - Lodning/samlingskomponenter - del D (INA219 fjer)

    VALGFRIT - Lodning/samlingskomponenter - del D (INA219 fjer)
    VALGFRIT - Lodning/samlingskomponenter - del D (INA219 fjer)
    VALGFRIT - Lodning/samlingskomponenter - del D (INA219 fjer)
    VALGFRIT - Lodning/samlingskomponenter - del D (INA219 fjer)
    VALGFRIT - Lodning/samlingskomponenter - del D (INA219 fjer)
    VALGFRIT - Lodning/samlingskomponenter - del D (INA219 fjer)
    VALGFRIT - Lodning/samlingskomponenter - del D (INA219 fjer)
    VALGFRIT - Lodning/samlingskomponenter - del D (INA219 fjer)

    Hvis du bruger INA219 -sensoren, er det her, du fastgør ledningerne til DC -stik.

    1. Sæt DC -stikket i bagdækslet, og skru dem på plads.
    2. Brug et loddejern til at forbinde INA219 -ledningerne.

      • De sorte ledninger skal gå til JORDEN for hvert DC -stik.
      • Den grå ledning skal gå til INPUT DC -stikket
      • Den blå ledning skal gå til OUTPUT -stikket.

    Trin 6: Skru bagdækslet på, og tilslut USB

    Det sidste trin i hardwareenheden er at skrue bagdækslet på plads - ved hjælp af M2 -skruer (4). Derefter skal du tilslutte USB -kablet, tilslutte det til din pc og fortsætte til softwaretrin!

    Trin 7: Forbered AWS -miljø

    Forbered AWS -miljø
    Forbered AWS -miljø

    Som jeg sagde i introduktionen, er forudsætningen for løsningen som følger:

    1. Terminalen, drevet af en ESP32, bruger en MQTT (over Wifi) forbindelse til kommunikation med AWS -skyen.
    2. AWS -skyen udfører størstedelen af behandlingen og fungerer som et relæ mellem skærmen og de efterspurgte tjenester.

    Der er et par ting, vi skal gøre i dette trin:

    Først skal du konfigurere dit AWS -miljø, hvis du ikke har gjort det endnu. Denne instruks forudsætter, at du allerede har en AWS-konto, så instruktioner om oprettelse af en cloud-konto er ikke inkluderet. Når det er sagt, er trinene ligetil og kan findes her.

    Når du er forbi det trin, skal du oprette et par tjenester, så log ind på AWS -konsollen.

    Opret en ting og download nøgler

    AWS IoT Core letter kommunikationen mellem AWS -skyen og displayet. Du skal oprette en "ting" og downloade certifikater for at understøtte kommunikationen.

    [Bemærk: de fleste af disse instruktioner er hentet fra en guide skrevet af Moheeb Zara, AWS Evangelist]

    1. Åbn AWS -konsollen, og vælg AWS IoT Core.
    2. I AWS IoT -konsollen skal du vælge Registrer en ny ting, Opret en enkelt ting.
    3. Navngiv den nye ting "starTrekESP32". Lad de resterende felter stå til deres standardindstillinger. Vælg Næste.
    4. Vælg Opret certifikat. Kun ting cert, privat nøgle og Amazon Root CA 1 downloads er nødvendige for at ESP32 kan oprette forbindelse. Download og gem dem et sikkert sted, som de bruges, når du programmerer ESP32 -enheden.
    5. Vælg Aktiver, Vedhæft en politik.
    6. Spring over at tilføje en politik, og vælg Registrer ting.
    7. I sidemenuen i AWS IoT -konsollen skal du vælge Sikker, Politikker, Opret en politik.
    8. Navngiv politikken AllowEverything. Vælg fanen Avanceret.
    9. Indsæt følgende politikskabelon.
    10. {{"Version": "2012-10-17", "Statement": [{"Effekt": "Tillad", "Handling": "iot:*", "Ressource": "*"}]}
    11. Vælg Opret. (Bemærk: Dette anbefales kun for at komme i gang. Når du er fortrolig med at alt fungerer, skal du gå tilbage og ændre dette til noget mere restriktivt.)
    12. I AWS IoT -konsollen skal du vælge Sikker, certificering.
    13. Vælg den, der er oprettet til din enhed, og vælg Handlinger, Vedhæft politik.
    14. Vælg Tillad alt, vedhæft.
    15. Inden du går, skal du klikke på "Indstillinger" (i menuen til venstre). Dit "Brugerdefineret slutpunkt" vises; gem det i en tekstfil … du får brug for det, når du konfigurerer ESP32.

    Opret en blank Lambda -fil

    Lambda er en form for serverløs beregning, så vi behøver ikke bekymre dig om hardware her. I sidste ende er det her, vi placerer vores opdaterede kode (som vi gør det et par trin). For nu vil vi bare oprette en pladsholder, så …

    1. Log tilbage på AWS -konsollen (hvis du loggede ud), og klik på Lambda.
    2. Klik på knappen "Opret funktion".
    3. På den næste side skal du indtaste et grundlæggende navn, som starTrekDisplay
    4. Vælg Node.js 12. X
    5. Under tilladelser:

      • Hvis du kender din vej rundt i Lambda og er fortrolig med det, kan du vælge den mulighed, der giver mening. Du skal bruge tilladelser til CloudWatch, IotCore, S3 (læs og skriv).
      • Hvis du er usikker på tilladelser, skal du vælge "Opret en ny rolle med grundlæggende Lambda -tilladelser". Skriv rollens navn ned. Senere ændrer vi tilladelserne.
    6. Klik på Opret funktion.
    7. Efter et minut går du ind på en ny skærm med et "hej verden" -kodefragment. Rul ned til bunden til Grundindstillinger og klik på "Rediger"
    8. Skift timeout fra 3 sekunder til 2 minutter og 0 sekunder. Bemærk: din kode må aldrig køre længere end 5-10 sekunder … dog har vi brug for en længere timeout for din første godkendelse med Microsoft (for kalenderfunktionalitet). Når du har godkendt, kan du ændre dette til 20 sekunder.
    9. Hit gem.

    Opret en Iot -regel

    1. Bliv i Lambda -konsollen og rul op. Vælg "Tilføj udløser".
    2. Vælg AWS IoT. Vælg derefter "Brugerdefineret regel".
    3. Vælg "Opret en ny regel".

      • Regelnavn: ESP -forbindelse
      • Regelforespørgsel: "SELECT * FROM 'starTrekDisplay/pub'
    4. Klik på "Tilføj"

    Opret en S3 Bucket og mappe

    1. Naviger til AWS -konsollen, og vælg S3.
    2. Du skal bruge en spand og en mappe til at gemme godkendelsesfiler. Denne mappe skal være privat. Jeg foreslår, at du bruger enhver spand, du allerede har, og navngiver oprettelsen af en mappe kaldet "starTrekDisplay". Bemærk - hvis du ikke har en spand, skal du oprette en ved hjælp af instruktionerne her.

    Opdater tilladelser - Hvis du tillod Lambda at oprette en rolle for dig, skal du følge dette trin

    1. Log ind på AWS -konsollen, og vælg IAM
    2. Klik på ROLLER, og vælg derefter det rollenavn, du har oprettet tidligere.
    3. Klik på vedhæft politikker, og vælg derefter følgende politikker:

      • AWSIoTFullAccess
      • AmazonSNSFullAccess
      • CloudWatchFullAccess
      • AmazonS3FullAccess

    Trin 8: Download softwaretaster og konfigurer tredjepartstjenester

    Download softwaretaster og konfigurer tredjepartstjenester
    Download softwaretaster og konfigurer tredjepartstjenester

    Jeg bruger følgende tredjepartstjenester i projektet:

    1. Worldtime API - for time
    2. National Weather Service API'er - til vejr
    3. Microsoft Graph API til adgang til min kalender
    4. Google Fitness API til adgang til fitnessoplysninger

    Du bliver nødt til at oprette konti og downloade nøgler for at udnytte de samme tjenester

    Worldtime API - for time

    Denne API kræver ikke en nøgle, så der er ikke behov for handling for at få dette til at fungere.

    National Weather Service API'er - til vejr

    National Weather Service API er gratis, og der kræves ingen API -nøgle. De anmoder dog om, at du videregiver kontaktoplysninger (i form af en e -mail) i hver anmodning (som en del af overskriftsfilen). Du tilføjer kontaktoplysninger til koden i det næste trin.

    VALGFRIT - Microsoft Graph API og Google Fitness API

    Dette er den mest komplekse del af kodeopsætningen. Vores enhed har ikke et fuldt ud tastatur … derfor bruger vi noget kaldet OAUTH for Limited Devices for at få adgang til vores kalender. Desværre skal du oprette en Azure "app" og en Google App, for at du kan kode OAUTH til begrænsede enheder.

    Instruktioner til oprettelse af en app findes her til Microsoft fand her til Google. Her er et par ting, du bør vide:

    • Du bliver nødt til at oprette en Azure- og Google -skykonto. Dette er gratis, og du vil ikke blive opkrævet noget
    • Microsoft:

      • Du bliver bedt om at specificere, hvad brugerne kan bruge appen. Jeg foreslår, at du vælger "Konti i ethvert organisatorisk bibliotek og personlige Microsoft -konti". Dette giver dig mulighed for at bruge personlige Microsoft -konti og virksomhedskonti (i de fleste tilfælde).
      • Du vil vælge applikationer "Mobil og skrivebord", men du behøver ikke at udfylde alle oplysninger (da dette er en personlig app). Det betyder, at du ikke kan gøre din app tilgængelig for verden…. men det er ok i dette tilfælde
      • Når din app er konfigureret, skal du vælge de nødvendige tilladelser. Jeg bad om tilladelser relateret til profiler og kalendere (se billedet i galleriet for en komplet liste over tilladelser). Du skal vælge det samme sæt. Hvis du tilføjer flere tilladelser, skal du ændre omfanget passende i det næste trin.

    Trin 9: Rediger og upload AWS -kode

    Denne instruerbare forudsætter, at du kender Node.js -udvikling og Lambda. Download den linkede fil, og foretag ændringer for at opdatere:

    • Microsoft App- og klientoplysninger
    • Google -nøgle
    • E -mail -adresse til sporing af National Weather Service
    • S3 skovlnavn
    • S3 mappenavn
    • AWS -endepunkt

    Du skal også downloade følgende nodebiblioteker:

    1. aws-sdk
    2. øjebliks tidszone
    3. accenter

    Når disse ændringer er foretaget, skal du uploade koden til den pladsholder lambda, du har oprettet tidligere.

    Trin 10: Forbered Arduino IDE og download biblioteker

    Denne vejledning forudsætter også, at du kender Arduino. Du skal sikre, at din IDE er konfigureret til at fungere med en Adafruit ESP32. Følg instruktionerne her, hvis du har brug for hjælp.

    Når dette er fuldført, skal du downloade følgende biblioteker:

    • Adafruit_GFX (fra bibliotekschefen)
    • Adafruit_HX8357 (fra bibliotekschefen)
    • TFT_eSPI (fra bibliotekschefen)
    • TFT_eFEX (https://github.com/Bodmer/TFT_eFEX)
    • PubSubClient (fra bibliotekschefen)
    • ArduinoJson (fra bibliotekschefen)
    • Adafruit_STMPE610 (fra bibliotekschefen)
    • Adafruit_MPR121 (fra bibliotekschefen)
    • Adafruit_INA219 (fra bibliotekschefen)
    • Adafruit_Sensor (fra bibliotekschefen)
    • Adafruit_BME680 (fra bibliotekschefen)
    • Tone32 (https://github.com/lbernstone/Tone)

    Dernæst skal vi ændre et par af bibliotekerne:

    1. Åbn PubSubClient -mappen (i mappen Arduino/Library) og åbn "PubSubClient.h". Find værdien for MQTT_MAX_PACKET_SIZE og ændr den til 2000.
    2. Åbn derefter mappen TFT_eSPI, og åbn filen "User_Setup_Select.h". Kommenter alle "inklusive users_setup …" -linjer, og tilføj denne linje:

    #omfatte

    Bagefter skal du downloade den linkede Custom_Tricorder.zip -fil og pakke ".h" -filen ud til "TFT_eSPI / User_Setups" -placeringen i din Arduino -biblioteksmappe. jeg

    Nu kan vi fortsætte med at opdatere Arduino -koden

    Trin 11: Opdater og installer Arduino Code og Engage

    Opdater og installer Arduino -kode og engagér dig!
    Opdater og installer Arduino -kode og engagér dig!

    Arduino kode

    Download og udpak den linkede fil til Arduino -koden. Gå til fanen secrets.h. Du skal opdatere følgende:

    • WIFI_SSID = opdater med dit wifi SSID
    • WIFI_PASSWORD = opdater med din wifi -adgangskode
    • TIMEZONE = opdater med din tidszone fra denne liste
    • LAT (du kan bruge en service som "https://www.latlong.net" til at finde din breddegrad og længdegrad
    • LNG
    • AWS_IOT_ENDPOINT = du skulle have gemt dette fra tidligere. Det skal ligne "dx68asda7sd.iot.us-east1-amazonaws.com"
    • AWS_CERT_CA
    • AWS_CERT_CRT
    • AWS_CERT_PRIVATE

    Du vil også have downloadet certifikaterne fra et tidligere trin. Åbn derefter i Notes Editor (f.eks. Notesblok) og indsæt teksten mellem 'R "EOF (' og ') EOF";'. Sørg for at inkludere "----- BEGIN CERTIFICATE -----" eller "----- BEGIN RSA PRIVATE KEY -----".

    Billedfiler

    ESP32 leveres med et lille filsystem. Vi bruger dette filsystem til at gemme billeder til vores program. Du skal installere værktøjet, der giver dig mulighed for at uploade filer.

    1. Besøg først den dybdegående tutorial om Random Nerd Tutorials.
    2. Når du har arbejdet med dette, kan du uploade filerne i datamappen (også inkluderet i zip -filen).

    Engagér

    Upload den sidste Arduino -kode, og du er færdig!

    Bemærk - Star Trek -navnet og Star Trek -billederne ejes af CBS/Paramount. De har en temmelig slap politik, når det kommer til cosplay og fanfiktion - læs venligst her, hvis du har spørgsmål.

    Fandom -konkurrence
    Fandom -konkurrence
    Fandom -konkurrence
    Fandom -konkurrence

    Første præmie i Fandom -konkurrencen

    Anbefalede: