Sommario:

Rendilo così! Mini computer di ingegneria Star Trek TNG: 11 passaggi (con immagini)
Rendilo così! Mini computer di ingegneria Star Trek TNG: 11 passaggi (con immagini)

Video: Rendilo così! Mini computer di ingegneria Star Trek TNG: 11 passaggi (con immagini)

Video: Rendilo così! Mini computer di ingegneria Star Trek TNG: 11 passaggi (con immagini)
Video: Star Trek Continues E01 "Pilgrim of Eternity" 2024, Luglio
Anonim
Image
Image
Rendilo così! Mini computer di ingegneria Star Trek TNG
Rendilo così! Mini computer di ingegneria Star Trek TNG
Rendilo così! Mini computer di ingegneria Star Trek TNG
Rendilo così! Mini computer di ingegneria Star Trek TNG

Panoramica

Sono cresciuto guardando Star Trek: The Next Generation. Ho sempre voluto costruire un dispositivo a tema Star Trek, quindi finalmente sono riuscito a remixare uno dei miei vecchi progetti per creare un terminale di visualizzazione di Star Trek.

Il terminale fornisce le seguenti informazioni:

  • Meteo - utilizzando il Servizio Meteorologico Nazionale
  • Temperatura interna, umidità e forza dei composti organici volatili (VOC)
  • Articoli di notizie - da News.org
  • Programma (con funzione di allarme) - da Microsoft Outlook
  • Informazioni sull'attività fisica (passi, minuti di movimento, punti cardiaci, peso, calorie bruciate) - da Google Fitness
  • una tabella dei codici colore dei resistori
  • un LED Resistor Calculator (per determinare il valore del resistore in base alla corrente e alla potenza della sorgente)
  • Strumento di misurazione della potenza e della corrente

Queste informazioni sono rese disponibili tramite una combinazione di API e sensori hardware. Sfrutto un ESP32 per il microcontrollore e sfrutto il cloud AWS per tutta la raccolta e l'aggregazione dei dati.

Ho incluso anche alcune "uova di Pasqua":

  • Omaggio a Ron McNair - Il dottor McNair è il motivo per cui sono diventato un ingegnere; è cresciuto a 45 minuti dalla mia città natale. Morì nell'esplosione del Challenger.

    • Il nome della mia nave stellare è "USS Ronald E McNair"
    • Il numero di registro deriva dalla data di nascita di Sr McNair; il Codice Prefisso è il giorno in cui ha perso la vita.
  • L'uso di un "codice prefisso" è un cenno a Star Trek: Wrath of Khan (il più grande film di Star Trek di tutti i tempi; non @ me).
  • I numeri a destra del caso terminale si riferiscono alla mia confraternita (1906 - Alpha Phi Alpha) e alla mia alma mater e campo di studi - (University of Oklahoma, College of Engineering)

Hai la possibilità di personalizzare la numerazione, le lettere e il nome della nave, il registro, ecc. per le tue "uova di Pasqua".

Sfondo

L'anno scorso avevo bisogno di un modo a basso costo per misurare la potenza e il consumo della batteria per un progetto indossabile. Ho acquistato un Adafruit INA219 Featherwing e ho usato alcuni pezzi di ricambio assortiti per costruire un semplice dispositivo di misurazione della potenza (puoi leggere di più qui).

Quest'anno ho deciso di aggiornare il dispositivo… per renderlo più "tecnologico". Inizialmente avevo pianificato di costruire un tricorder Star Trek funzionante (la versione Mark IV TR-590 Mark IX, per coloro che se ne fregano)… ma ho subito capito che aveva più senso creare qualcosa che si sarebbe seduto sulla mia scrivania (voglio dire, perché fare tutta questa fatica per creare un dispositivo interessante, solo per chiuderlo e metterlo in un cassetto quando non viene utilizzato).

Quindi, mi sono dedicato alla creazione di una versione dei display per computer che vedi su Star Trek TNG o Voyager (o sui film assortiti). Ho giocato con diversi design, poi mi sono imbattuto in una versione creata dai fratelli Ruiz di Adafruit. Adafruit fa un ottimo lavoro con i file sorgente forniti per i loro progetti stampati in 3D, quindi sono stato in grado di prendere la loro versione originale e remixarla per il mio hardware, pulsanti e altre periferiche.

Cose da sapere prima di procedere

  1. Fornisco istruzioni passo passo per realizzare la mia versione del progetto; tuttavia, non entro nei dettagli su alcuni passaggi (ti collegherò alle istruzioni o alla documentazione di supporto)
  2. Questo è un progetto complesso. È un "marchio multidisciplinare", che richiede le seguenti competenze

    • Arduino IDE
    • AWS - Avrai bisogno di un account e dovrai comprendere S3, Lambda e Node JS
    • saldatura
    • Stampa 3D
  3. Ci sono "aggiuntivi" facoltativi per migliorare il progetto al fine di ottenere informazioni su Calendario e Fitness. La funzionalità è inclusa nel codebase; tuttavia dovrai creare "app" nei cloud Azure e Google per supportare le funzionalità.
  4. Questo è in definitiva personalizzabile… puoi sostituire il sensore di corrente con un'altra piuma. Puoi usare una diversa combinazione piuma/wifi.

Forniture

Componenti elettronici

  • Adafruit ESP32 Huzzah Feather
  • Adafruit Featherwing Tripler Mini Kit
  • Breakout del sensore tattile capacitivo a 12 tasti Adafruit
  • Adafruit TFT FeatherWing - Touchscreen 480x320 da 3,5"
  • Adafruit BME680 - Sensore di temperatura, umidità, pressione e gas
  • Jack cilindrico 2.1 per montaggio a pannello CC (2)
  • Batteria ai polimeri di ioni di litio - 3,7 V 500 mAh
  • Cicalino piezoelettrico
  • Cavo USB Mirco e caricabatterie 5V (funzionerà un tipico caricabatterie USB per telefono)
  • Nastro in lamina di rame con adesivo
  • Opzionale - Adafruit INA219 Featherwing
  • Opzionale - Spine maschio 2.1 - (da utilizzare con il sensore di corrente INA219)

Collegamento a tutti i componenti elettronici eccetto le spine 2.1:

Componenti del filamento 3D e componenti di verniciatura/levigatura opzionali

  • Proto Pasta PLA Conduttivo
  • Filamenti 3D aggiuntivi - Ho usato 4 colori: grigio, nero, acqua (azzurro) e bianco
  • Ugelli da 0,25 e 0,4 mm (ho usato lo 0,25 per i dettagli delle scritte).

Componenti e strumenti di assemblaggio hardware

  • Viti M2x5 e M3x5
  • Perni di testata diritti e ad angolo retto (vedi la lista dei desideri di Adafruit per i collegamenti)
  • Saldatore (e bobina di saldatura, stagno della punta, ventosa per saldatura, ecc.)
  • Kit cacciavite a testa Philips
  • Involucro termoretraibile
  • Filo intrecciato 22AWG - cinque o sei colori
  • Filo solido 22AWG - cinque o sei colori
  • Morsa PCB e Helping hands (opzionale, ma facilita la saldatura)
  • Tagliafili diagonali
  • Spelafili
  • Xacto Knife (per rimuovere i supporti dalle parti della stampante 3D)
  • Stampante 3D (se prevedi di stampare da solo)
  • Stucco o nastro adesivo (per fissare la batteria all'interno della custodia stampata)
  • Calibri digitali
  • Colla Krazy
  • Opzionale - Guanti monouso in nitrile
  • Opzionale - Tappetino per saldatura (opzionale, ma protegge le superfici)

Nota: se non hai questi strumenti, ti suggerisco di controllare il sito di Becky Stern per consigli su buone opzioni.

Software

  • Arduino IDE
  • Editor del nodo JS (come Microsoft Code)
  • Account AWS
  • Facoltativo - Account Google Cloud (per informazioni sul fitness)
  • Facoltativo - Account cloud Microsoft Azure (per informazioni sul calendario)
  • Passaggio 1: scarica, modifica file e stampa file 3D

    Scarica, modifica file e stampa file 3D
    Scarica, modifica file e stampa file 3D
    Scarica, modifica file e stampa file 3D
    Scarica, modifica file e stampa file 3D
    Scarica, modifica file e stampa file 3D
    Scarica, modifica file e stampa file 3D
    Scarica, modifica file e stampa file 3D
    Scarica, modifica file e stampa file 3D

    Puoi inviare i file a un servizio di stampa 3D (come Hub 3D) oppure puoi stamparne uno tuo. I file sono disponibili su PrusaPrinters.org.

    Questo caso è un remix di Py Portal Alarm Clock presente sul sito Web di Adafruit. Il mio progetto utilizza un TFT simile, quindi sono stato in grado di ridurre al minimo la quantità di lavoro di progettazione necessario per far funzionare la custodia con i miei accessori.

    Ho usato le seguenti impostazioni per la stampa:

    • Stampa fronte e retro a 0,2 mm di altezza dello strato con un ugello da 0,4 mm, senza supporti
    • Numero lato: stampato a un'altezza dello strato di 0,10 mm con un ugello da 0,25 mm, senza supporti
    • Chiavi: stampate con un'altezza dello strato di 0,2 mm con un ugello da 0,4 mm. Dovrai stampare 7 e dovrai stampare con il filamento conduttivo Proto-Pasta.
    • Custodia: stampata con un'altezza dello strato di 0,2 mm.

      I supporti sono necessari, ma non sono necessari ovunque (solo sui lati e al centro dove si trova la tastiera)

    Alcune cose che dovresti sapere:

    1. Prusa MK3 ti consente di cambiare i colori a diverse altezze di livello. Ho usato questa funzione per il pezzo con il numero laterale.
    2. Inoltre, per quanto riguarda il pezzo con il numero laterale:

      • La troupe di produzione di Star Trek TNG avrebbe cosparso le uova di Pasqua negli oggetti di scena. Se osservi attentamente le varie targhe e pannelli, vedrai nomi di persone, testi di canzoni, ecc. Volevo creare il mio "uovo di Pasqua" per il numero laterale, quindi uso "06" - che si riferisce alla mia confraternita (formato nel 1906), e "OUCOE" - che si riferisce alla mia alma mater (Università dell'Oklahoma, College of Engineering).
      • Ho creato un pezzo side_number "vuoto" che puoi modificare per creare il tuo numero e testo personalizzati.

    Fase 2: Saldare/Assemblare i componenti - Parte a (tastiera e numero laterale)

    Saldare/assemblare componenti - Parte a (tastiera e numero laterale)
    Saldare/assemblare componenti - Parte a (tastiera e numero laterale)
    Saldare/assemblare componenti - Parte a (tastiera e numero laterale)
    Saldare/assemblare componenti - Parte a (tastiera e numero laterale)
    Saldare/assemblare componenti - Parte a (tastiera e numero laterale)
    Saldare/assemblare componenti - Parte a (tastiera e numero laterale)
    Saldare/assemblare componenti - Parte a (tastiera e numero laterale)
    Saldare/assemblare componenti - Parte a (tastiera e numero laterale)

    Per prima cosa, apporremo il numero laterale. Usa una piccola quantità di colla per posizionare il numero laterale.

    Successivamente, assembleremo la tastiera

    1. Dovrai tagliare 7 pezzi di filo a trefoli, ciascuno di una lunghezza compresa tra 10 e 12 pollici. Questi saranno collegati ai pin 0-6 del sensore tattile capacitivo. Ti suggerisco di utilizzare colori diversi (e di annotare la mappatura dei colori/pin, poiché avrai bisogno di queste informazioni in seguito). Ho usato la seguente combinazione di colori:

      • Giallo - Pin 0/Pulsante 1
      • Grigio - Pin 1/Pulsante 2
      • Rosso - Pin 2 /Pulsante 3
      • Blu - Pin 3 //Pulsante 4
      • Verde - Pin 4 //Pulsante 5
      • Bianco - Pin 5 //Pulsante 6
      • Nero - Pin 6 //Pulsante 7
    2. Spellare 1/2 pollice dall'estremità di ciascun filo.
    3. Taglia 7 pezzi di nastro conduttivo (ciascuno di circa 1/2 pollice di larghezza) e salda i fili al lato in rame del nastro.
    4. Rimuovere il supporto adesivo e incollarli sul fondo dei tasti. Potrebbe essere necessario tagliare parte del nastro di rame.

    Nota: le Chiavi possono essere incollate sia dal basso (in modo che siano a filo con la parte superiore) sia incollate dall'alto (in modo che "galleggino" a pochi mm dalla parte superiore). Ho scelto di incollare il mio dall'alto.

    Una volta completati tutti e 7, usa una piccola quantità di colla per fissare i tasti alla tastiera. Trovo più facile:

    • Per prima cosa "infilare" il filo attraverso il foro della serratura.
    • Quindi metti una piccola quantità di colla sulla cresta/bordo della chiave
    • Metti rapidamente la chiave in posizione.

    Nota: Krazy Glue funziona meglio qui; potresti voler usare i guanti per limitare gli incidenti e le possibilità di irritazione della pelle.

    Fase 3: Saldare/Assemblare i componenti - Parte B (Featherwings e Sensori)

    Saldare/assemblare componenti - Parte B (Fatherwings e sensori)
    Saldare/assemblare componenti - Parte B (Fatherwings e sensori)
    Saldare/assemblare componenti - Parte B (Fatherwings e sensori)
    Saldare/assemblare componenti - Parte B (Fatherwings e sensori)
    Saldare/assemblare componenti - Parte B (Fatherwings e sensori)
    Saldare/assemblare componenti - Parte B (Fatherwings e sensori)

    Il passaggio successivo consiste nel preparare e assemblare i componenti hardware. In definitiva, ciò significa saldare pin e fili dell'intestazione per un uso successivo. Questa guida presuppone che tu sia a tuo agio con la saldatura; in caso contrario, dai un'occhiata a questa "Guida alla saldatura eccellente" di Adafruit.

    Per prima cosa prepariamo i materiali. Per questo passaggio, avrai bisogno di:

    • TFT 3.5 Alapiuma
    • ESP32 Piuma
    • INA219 Alapiuma
    • Tripla Alapiuma
    • Sensore tattile capacitivo MPR121
    • Sensore BME680
    • Perni di testata diritti e ad angolo retto
    • Filo pieno e intrecciato
    • Strumenti di saldatura e mani d'aiuto
    • Tagliafili e spellafili diagonali
    • calibri

    Nota: ti suggerisco di leggere prima questo passaggio e di tagliare tutti i fili e le intestazioni prima di iniziare a saldare. In questo modo, non dovrai fermarti per misurare/tagliare.

    Preparare il TFT 3.5 Featherwing

    Il TFT è pronto per l'uso con l'unica regolazione. Dovrai saldare un filo tra il pad "Lite" e un pad di saldatura a pin. Il nostro codice utilizza ESP32 Pin 21 per controllare il TFT lite. Disporre il TFT nel modo "lungo", con il pulsante di ripristino in basso. Il pin 21 sarà il pin in basso a sinistra.

    Taglia un pezzo di filo intrecciato da 40 mm. Spellare le estremità in modo da mostrare alcuni millimetri di filo su ciascuna estremità. Usando il saldatore, saldare con cura su entrambi i pin.

    Nota: hai solo bisogno di circa 35 mm di lunghezza… quindi puoi tagliare il filo secondo necessità. Inoltre, trovo che l'aggiunta di saldatura al pad, quindi al filo, quindi la saldatura del filo al pad sia l'approccio più semplice. Infine - questi pad sono piccoli… se ti senti a disagio, puoi sempre saltare questo passaggio: è solo per spegnere il TFT con la tastiera.

    Prepara la piuma ESP32

    Dovrai saldare i pin dell'intestazione maschio standard all'ESP32. Il tuo ESP32 dovrebbe venire con le intestazioni, anche se potrebbe essere necessario tagliarle per ottenere la lunghezza corretta (16 pin sul lato lungo; 12 pin sul lato corto). I perni delle intestazioni sono fatti per "scattare via", quindi puoi usare i tronchesi diagonali per agganciare le intestazioni alla lunghezza corretta. Ancora una volta, Adafruit ha ottime istruzioni su come farlo, quindi dai un'occhiata se hai bisogno di una guida.

    FACOLTATIVO - Preparare l'INA219 Featherwing

    Innanzitutto, saldare le intestazioni maschio all'ala piuma (usando le stesse istruzioni utilizzate per ESP32). Quindi tagliare quattro lunghezze di 20 mm di filo a trefoli. Ne farei 2 NERI e gli altri di un colore diverso. Ho usato GRIGIO e BLU per le mie scelte di colore.

    Spellare le estremità del filo in modo da esporre 3-4 mm di filo di rame su ciascuna estremità. Salderai uno per ciascun filo come di seguito:

    • GRIGIO -> V+ (più)
    • BLU -> V- (meno)
    • NERO -> GND (terra)
    • NERO -> GND (terra)

    Lasciare le altre estremità dei fili in questo momento; alla fine li salderemo alle spine DC 2.1.

    Collega il cicalino piezo

    L'INA Featherwing è dotato di una piccola area di prototipazione; lo useremo per collegare il nostro piezo. Il piezo darà al nostro progetto la possibilità di emettere segnali acustici e suoni di avvisi, allarmi, ecc.

    Il piezo si collega al PIN 13 di ESP32; questo è correlato al pin accanto al pin USB sull'ala piuma (vedi immagine per le frecce). L'altro pin piezoelettrico si collega a terra. I perni pieze sono abbastanza lunghi da saldarli direttamente all'ala piuma… dovrai solo piegare i perni a forma di "uomo con le gambe arcuate" (vedi immagine). Una volta posizionati i perni, aiutati con le mani (o del nastro adesivo) per tenere fermo il piezo e salda dalla parte inferiore dell'ala.

    Nota: se non si utilizza l'INA219, sarà necessario saldare il piezo direttamente alla scheda Featherwing.

    Prepara il Tripler Featherwing

    Il Featherwing ci fa risparmiare molte saldature; può contenere 3 piume/ali di piuma… quindi lo useremo per effettuare collegamenti elettrici tra il TFT, ESP32, INA219 (oltre che il piezo e il pin TFT Lite).

    Per effettuare correttamente i collegamenti, dovremo saldare due coppie di intestazioni impilabili e una coppia di intestazioni maschi standard.

    • Le normali intestazioni maschili andranno avanti nel punto "in alto", ma saranno saldate al lato inferiore del Tripler.
    • Le due intestazioni impilabili verranno saldate nei punti 2 e 3, sul lato superiore del Tripler.

    Questo è un po' di confusione, quindi assicurati di guardare le immagini per capire dove è posizionata ogni intestazione. Inoltre, una combinazione di una morsa per PCB e Helping Hands può essere di grande aiuto nella saldatura dei componenti.

    Preparare il sensore BME 680 e il sensore tattile capacitivo MPR121

    Gli ultimi due sensori sono i più difficili da collegare. Dobbiamo collegare i perni di intestazione alle schede breakout prima di finalizzare l'assemblaggio.

    Il sensore BME è fissato a un angolo di 90, in modo da poter allineare il sensore a un foro nella custodia (in modo che il sensore possa acquisire temperatura, gas, umidità). Dovrai saldare i perni ad angolo retto ai fori. Guarda le immagini per assicurarti di allinearle correttamente.

    Il sensore tattile capacitivo è semplice: basta saldare i pin dei connettori maschi diritti, come descritto qui. Nota: NON DOVRESTI saldare i pin ai pin tattili capacitivi (0 - 11).

    Collegare i sensori BME 680 e MPR121 alla scheda Tripler

    Entrambi i sensori comunicano tramite I2C… il che significa che abbiamo solo bisogno di fare 4 connessioni tra le schede breakout e il Featherwing. Per semplicità, ho saldato tutte le connessioni tra le schede.

    BME 680

    Per questo sensore, utilizzo Helping Hands e una PCB Vise per tenere entrambi i componenti in posizione (vedi immagine sopra). Il sensore BME680 deve essere posizionato all'estremità dell'ala piuma. Vedere le immagini sopra per confermare il posizionamento.

    Il processo di saldatura delle connessioni è noioso, quindi procedi lentamente. Io uso un cavo a nucleo solido per i collegamenti:

      • NERO - GND
      • ROSSO - VINO
      • GIALLO - SCL (pin SCK sul sensore al
      • ARANCIO - SDA (pin SDA sul sensore)

    Nota: i pin SCL e SDA sono necessari per entrambi i sensori, quindi potrebbe essere più semplice utilizzare un pin SCL o SDA su un'altra parte del Featherwing.

    MPR121

    Aiutare le mani aiuta anche quando si salda questo sensore in posizione (anche il nastro funziona). Il codice utilizzava I2C per la comunicazione con ESP32, quindi collegherai i pin SCA e SDA.

    Fase 4: Saldare/Assemblare i componenti - Parte C (da tastiera a sensore capacitivo e Feathewing nella custodia)

    Saldare/assemblare componenti - Parte C (da tastiera a sensore capacitivo e Feathewing nella custodia)
    Saldare/assemblare componenti - Parte C (da tastiera a sensore capacitivo e Feathewing nella custodia)
    Saldare/assemblare componenti - Parte C (da tastiera a sensore capacitivo e Feathewing nella custodia)
    Saldare/assemblare componenti - Parte C (da tastiera a sensore capacitivo e Feathewing nella custodia)
    Saldare/assemblare componenti - Parte C (da tastiera a sensore capacitivo e Feathewing nella custodia)
    Saldare/assemblare componenti - Parte C (da tastiera a sensore capacitivo e Feathewing nella custodia)

    Salderai i fili dalla tastiera al sensore tattile capacitivo in questo passaggio. Usa la stessa mappatura dei colori di prima. Se hai seguito la mia combinazione di colori, salderai i fili colorati come segue:

    • Giallo - Pin 0/Pulsante 1
    • Grigio - Pin 1/Pulsante 2
    • Rosso - Pin 2 /Pulsante 3
    • Blu - Pin 3 /Pulsante 4
    • Verde - Pin 4/Pulsante 5
    • Bianco - Pin 5/Pulsante 6
    • Nero - Pin 6/Pulsante 7

    Una volta terminata la saldatura, utilizzare una fascetta per tenere i fili in posizione.

    Quindi, avvita lo schermo TFT al pezzo "Fronte". Utilizzerai le viti M3 (quattro in totale). Una volta che il TFT è a posto, avvitare il pezzo "Front" alla custodia. Di nuovo, utilizzerai viti M3 (due).

    Quindi, collega il Featherwing Tripler, con tutti i componenti collegati, al TFT.

    Nota: se prevedi di utilizzare una batteria, assicurati di collegarla alla porta ESP32-JST prima di inserire il TFT. Usa del nastro adesivo per fissare la batteria alla parte inferiore interna del case.

    Fase 5: FACOLTATIVO - Saldare/Assemblare componenti - Parte D (INA219 Feather)

    OPZIONALE - Saldare/Assemblare componenti - Parte D (INA219 Feather)
    OPZIONALE - Saldare/Assemblare componenti - Parte D (INA219 Feather)
    OPZIONALE - Saldare/Assemblare componenti - Parte D (INA219 Feather)
    OPZIONALE - Saldare/Assemblare componenti - Parte D (INA219 Feather)
    OPZIONALE - Saldare/Assemblare componenti - Parte D (INA219 Feather)
    OPZIONALE - Saldare/Assemblare componenti - Parte D (INA219 Feather)
    OPZIONALE - Saldare/Assemblare componenti - Parte D (INA219 Feather)
    OPZIONALE - Saldare/Assemblare componenti - Parte D (INA219 Feather)

    Se si utilizza il sensore INA219, è qui che si collegano i fili alle spine CC.

    1. Inserire le spine CC nel coperchio posteriore e avvitarle in posizione.
    2. Utilizzare un saldatore per collegare i fili INA219.

      • I fili neri dovrebbero andare a TERRA per ogni spina CC.
      • Il filo grigio dovrebbe andare alla spina CC INPUT
      • Il filo blu dovrebbe andare alla spina OUTPUT.

    Passaggio 6: avvitare il coperchio posteriore e collegare l'USB

    Il passaggio finale nell'assemblaggio dell'hardware consiste nell'avvitare il coperchio posteriore in posizione, utilizzando le viti M2 (4). Da lì, collega il cavo USB, collegalo al PC e procedi con i passaggi del software!

    Passaggio 7: preparazione dell'ambiente AWS

    Prepara l'ambiente AWS
    Prepara l'ambiente AWS

    Come ho affermato nell'introduzione, la premessa della soluzione è la seguente:

    1. Il terminale, alimentato da un ESP32, utilizza una connessione MQTT (over Wifi) per comunicare con il cloud AWS.
    2. Il cloud AWS esegue la maggior parte dell'elaborazione e funge da relè tra il monitor e i servizi richiesti.

    Ci sono alcune cose che dovremo fare in questo passaggio:

    Innanzitutto, devi configurare il tuo ambiente AWS, se non l'hai ancora fatto. Questa istruzione presuppone che tu abbia già configurato un account AWS, quindi le istruzioni sulla configurazione di un account cloud non sono incluse. Detto questo, i passaggi sono semplici e possono essere trovati qui.

    Una volta superato questo passaggio, devi creare alcuni servizi, quindi accedi alla console AWS.

    Crea una cosa e scarica le chiavi

    AWS IoT Core facilita la comunicazione tra il cloud AWS e il display. Dovrai creare una "cosa" e scaricare i certificati per supportare la comunicazione.

    [Nota: la maggior parte di queste istruzioni sono state prese da una guida scritta da Moheeb Zara, AWS Evangelist]

    1. Apri la console AWS e seleziona AWS IoT Core.
    2. Nella console AWS IoT, scegli Registra una nuova cosa, Crea una singola cosa.
    3. Chiama la nuova cosa "starTrekESP32". Lascia i campi rimanenti impostati sui valori predefiniti. Scegli Avanti.
    4. Scegli Crea certificato. Solo il certificato cosa, la chiave privata e i download di Amazon Root CA 1 sono necessari per la connessione di ESP32. Scaricali e salvali in un luogo sicuro, poiché vengono utilizzati durante la programmazione del dispositivo ESP32.
    5. Scegli Attiva, allega un criterio.
    6. Salta l'aggiunta di una policy e scegli Register Thing.
    7. Nel menu laterale della console AWS IoT, scegli Sicuro, Politiche, Crea una politica.
    8. Denominare il criterio AllowEverything. Scegli la scheda Avanzate.
    9. Incolla il seguente modello di criteri.
    10. { { "Versione": "2012-10-17", "Dichiarazione": [{ "Effetto": "Consenti", "Azione": "iot:*", "Risorsa": "*" }] }
    11. Scegli Crea. (Nota: questo è consigliato solo per iniziare. Dopo che ti sei sentito a tuo agio con tutto ciò che funziona, torna indietro e cambialo in qualcosa di più restrittivo.)
    12. Nella console AWS IoT, scegli Sicuro, Certificazione.
    13. Seleziona quello creato per il tuo dispositivo e scegli Azioni, Allega criterio.
    14. Scegli Consenti tutto, Allega.
    15. Prima di partire, clicca su "Impostazioni" (nel menu a sinistra). Verrà mostrato il tuo "Endpoint personalizzato"; salvalo in un file di testo… ti servirà quando configurerai ESP32.

    Crea un file Lambda vuoto

    Lambda è una forma di elaborazione serverless, quindi non dobbiamo preoccuparci di alcun hardware qui. In definitiva, è qui che posizioneremo il nostro codice aggiornato (cosa che faremo in pochi passaggi). Per ora, vogliamo solo creare un segnaposto, quindi…

    1. Accedi di nuovo alla console AWS (se ti sei disconnesso) e fai clic su Lambda.
    2. Fare clic sul pulsante "Crea funzione".
    3. Nella pagina successiva, inserisci un nome di base, come starTrekDisplay
    4. Seleziona Node.js 12. X
    5. Sotto le autorizzazioni:

      • Se conosci Lambda e hai familiarità con esso, puoi selezionare qualsiasi opzione abbia senso. Avrai bisogno delle autorizzazioni su CloudWatch, IotCore, S3 (lettura e scrittura).
      • Se non sei sicuro delle autorizzazioni, seleziona "Crea un nuovo ruolo con autorizzazioni Lambda di base". Scrivi il nome del ruolo. In seguito, modificheremo i permessi.
    6. Fare clic su Crea funzione.
    7. Dopo un minuto, entrerai in una nuova schermata con uno snippet di codice "ciao mondo". Scorri verso il basso fino a Impostazioni di base e fai clic su "Modifica"
    8. Modificare il timeout da 3 secondi a 2 minuti e 0 secondi. Nota: il tuo codice non dovrebbe mai durare più di 5-10 secondi… tuttavia, abbiamo bisogno di un timeout più lungo per la tua autenticazione iniziale con Microsoft (per la funzionalità del calendario). Dopo esserti autenticato, puoi cambiarlo in 20 secondi.
    9. Premi Salva.

    Crea una regola Iot

    1. Resta nella console Lambda e scorri verso l'alto. Seleziona "Aggiungi attivatore".
    2. Seleziona AWS IoT. Quindi seleziona "Regola personalizzata".
    3. Scegli "Crea una nuova regola".

      • Nome della regola: connessione ESP
      • Istruzione di query della regola: "SELECT * FROM 'starTrekDisplay/pub'
    4. Fare clic su "Aggiungi"

    Crea un bucket e una cartella S3

    1. Vai alla Console AWS e seleziona S3.
    2. Avrai bisogno di un bucket e di una cartella per archiviare i file di autenticazione. Questa cartella dovrebbe essere privata. Ti suggerisco di utilizzare qualsiasi bucket che hai già e di creare una cartella chiamata "starTrekDisplay". Nota: se non disponi di un bucket, creane uno utilizzando le istruzioni qui.

    Aggiorna autorizzazioni: se hai consentito a Lambda di creare un ruolo per te, dovrai seguire questo passaggio

    1. Accedi alla console AWS e seleziona IAM
    2. Fai clic su RUOLI, quindi seleziona il nome del ruolo che hai creato in precedenza.
    3. Fare clic su Allega criteri, quindi selezionare i seguenti criteri:

      • AWSIoTFullAccess
      • AmazonSNNSAccesso completo
      • CloudWatchFullAccess
      • AmazonS3Accesso completo

    Passaggio 8: scarica le chiavi del software e configura i servizi di terze parti

    Scarica chiavi software e configura servizi di terze parti
    Scarica chiavi software e configura servizi di terze parti

    Utilizzo i seguenti servizi di terze parti nel progetto:

    1. API Worldtime - per tempo
    2. API del servizio meteorologico nazionale - per il meteo
    3. API Microsoft Graph per l'accesso al mio calendario
    4. API di Google Fitness per l'accesso alle informazioni sull'attività fisica

    Dovrai configurare account e scaricare chiavi per sfruttare gli stessi servizi

    API Worldtime - per tempo

    Questa API non richiede una chiave, quindi non è necessaria alcuna azione per farlo funzionare.

    API del servizio meteorologico nazionale - per il meteo

    L'API del servizio meteorologico nazionale è gratuita e non è richiesta alcuna chiave API. Tuttavia, richiedono che tu trasmetta le informazioni di contatto (sotto forma di e-mail) in ogni richiesta (come parte del file di intestazione). Aggiungerai le informazioni di contatto al codice nel passaggio successivo.

    FACOLTATIVO - API Microsoft Graph e API Google Fitness

    Questa è la parte più complessa della configurazione del codice. Il nostro dispositivo non ha una tastiera a tutti gli effetti… quindi usiamo qualcosa chiamato OAUTH per dispositivi limitati per accedere al nostro calendario. Sfortunatamente, devi creare un'"app" di Azure e un'app Google per poter utilizzare il codice OAUTH per dispositivi limitati.

    Le istruzioni per la creazione di un'app sono disponibili qui per Microsoft e qui per Google. Ecco alcune cose che dovresti sapere:

    • Dovrai creare un account cloud Azure e Google. Questo è gratuito e non ti verrà addebitato nulla
    • Microsoft:

      • Ti verrà chiesto di specificare quali utenti possono utilizzare l'app. Ti suggerisco di selezionare "Account in qualsiasi directory organizzativa e account Microsoft personali". Ciò ti consentirà di utilizzare account Microsoft personali e account aziendali (nella maggior parte dei casi).
      • Ti consigliamo di selezionare le applicazioni "Mobile e desktop", tuttavia non è necessario compilare tutte le informazioni (poiché si tratta di un'app personale). Ciò significa che non puoi rendere disponibile la tua app al mondo… ma in questo caso va bene
      • Una volta configurata l'app, dovrai selezionare le autorizzazioni necessarie. Ho chiesto i permessi relativi a profili e calendari (vedi l'immagine nella galleria per l'elenco completo dei permessi). Dovrai selezionare questo stesso set. Se aggiungi più autorizzazioni, dovrai modificare l'ambito in modo appropriato nel passaggio successivo.

    Passaggio 9: modifica e caricamento del codice AWS

    Questa istruzione presuppone che tu abbia familiarità con lo sviluppo di Node.js e Lambda. Scarica il file collegato e apporta le modifiche per aggiornare:

    • Informazioni sull'app Microsoft e sul client
    • Tasto Google
    • Indirizzo e-mail per il monitoraggio del servizio meteorologico nazionale
    • Nome del secchio S3
    • Nome della cartella S3
    • AWS Endpoint

    Dovrai anche scaricare le seguenti librerie di nodi:

    1. aws-sdk
    2. momento fuso orario
    3. accenti

    Una volta apportate queste modifiche, carica il codice nel lambda segnaposto che hai creato in precedenza.

    Passaggio 10: preparare l'IDE Arduino e scaricare le librerie

    Questa guida presuppone anche che tu abbia familiarità con Arduino. Dovrai assicurarti che il tuo IDE sia configurato per funzionare con un Adafruit ESP32. Segui le istruzioni qui se hai bisogno di assistenza.

    Una volta completato, scarica le seguenti librerie:

    • Adafruit_GFX (dal gestore della libreria)
    • Adafruit_HX8357 (dal gestore della libreria)
    • TFT_eSPI (dal gestore della libreria)
    • TFT_eFEX (https://github.com/Bodmer/TFT_eFEX)
    • PubSubClient (dal gestore della libreria)
    • ArduinoJson (dal gestore della libreria)
    • Adafruit_STMPE610 (dal gestore della libreria)
    • Adafruit_MPR121 (dal gestore della libreria)
    • Adafruit_INA219 (dal gestore della biblioteca)
    • Adafruit_Sensor (dal gestore della libreria)
    • Adafruit_BME680 (dal gestore della libreria)
    • Tone32 (https://github.com/lbernstone/Tone)

    Successivamente dovremo modificare alcune delle librerie:

    1. Apri la cartella PubSubClient (nella cartella Arduino/Library) e apri " PubSubClient.h ". Trova il valore per MQTT_MAX_PACKET_SIZE e modificalo in 2000.
    2. Quindi, apri la cartella TFT_eSPI e apri il file "User_Setup_Select.h". Commenta qualsiasi riga "include users_setup…" e aggiungi questa riga:

    #includere

    Successivamente, scarica il file Custom_Tricorder.zip collegato ed estrai il file ".h" nella posizione "TFT_eSPI / User_Setups" nella cartella delle librerie Arduino. io

    Ora possiamo passare all'aggiornamento del codice Arduino

    Passaggio 11: aggiorna e installa il codice Arduino e coinvolgi

    Aggiorna e installa il codice Arduino e coinvolgi!
    Aggiorna e installa il codice Arduino e coinvolgi!

    Codice Arduino

    Scarica e decomprimi il file collegato per il codice Arduino. Vai alla scheda secrets.h. Dovrai aggiornare quanto segue:

    • WIFI_SSID = aggiorna con il tuo SSID wifi
    • WIFI_PASSWORD = aggiorna con la tua password wifi
    • TIMEZONE = aggiorna con il tuo fuso orario da questo elenco
    • LAT (puoi utilizzare un servizio come "https://www.latlong.net" per trovare la tua latitudine e longitudine
    • GNL
    • AWS_IOT_ENDPOINT = avresti dovuto salvarlo da prima. Dovrebbe apparire come "dx68asda7sd.iot.us-east1-amazonaws.com"
    • AWS_CERT_CA
    • AWS_CERT_CRT
    • AWS_CERT_PRIVATE

    Avrai anche scaricato i certificati da un passaggio precedente. Apri quindi nell'editor delle note (ad es. Blocco note) e incolla il testo tra ' R"EOF(' e ')EOF";'. Assicurati di includere "-----BEGIN CERTIFICATE-----" o "-----BEGIN RSA PRIVATE KEY-----".

    File di immagine

    L'ESP32 viene fornito con un piccolo filesystem. Usiamo questo filesystem per salvare le immagini per il nostro programma. Dovrai installare lo strumento che ti consente di caricare i file.

    1. Per prima cosa, visita il tutorial approfondito su Random Nerd Tutorial.
    2. Una volta che hai funzionato, puoi caricare i file nella cartella dei dati (inclusa anche nel file zip).

    Ingaggiare

    Carica il codice Arduino finale e il gioco è fatto!

    Nota: il nome e le immagini di Star Trek sono di proprietà di CBS/Paramount. Hanno una politica abbastanza permissiva quando si tratta di cosplay e fan fiction - per favore leggi qui se hai domande.

    Concorso Fandom
    Concorso Fandom
    Concorso Fandom
    Concorso Fandom

    Primo Premio al Concorso Fandom

    Consigliato: