Sommario:

Visualizzazione di data, ora e temperatura utilizzando XinaBox: 8 passaggi
Visualizzazione di data, ora e temperatura utilizzando XinaBox: 8 passaggi

Video: Visualizzazione di data, ora e temperatura utilizzando XinaBox: 8 passaggi

Video: Visualizzazione di data, ora e temperatura utilizzando XinaBox: 8 passaggi
Video: ☒Recording of Zoom XK90 Onboarding event Feb 23, 2021 2024, Novembre
Anonim
Visualizzazione di data, ora e temperatura utilizzando XinaBox
Visualizzazione di data, ora e temperatura utilizzando XinaBox

Fantastico display OLED che mostra la data, l'ora e la temperatura in gradi Celsius e Fahrenheit utilizzando Xinabox xChips basato su ESP8266.

Passaggio 1: cose utilizzate in questo progetto

Componenti hardware

  • XinaBox IP01 x 1 programmatore USB xChip basato su FT232R di FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core basato sul modulo Wi-Fi ESP8266
  • XinaBox SW01 x 1 xChip Sensore di temperatura, umidità e pressione atmosferica basato sul BME280 di Bosch.
  • XinaBox OD01 x 1 xChip 128x64 Pixel Display OLED
  • XinaBox PU01 x 1 xChip USB (tipo A) alimentatore
  • XinaBox XC10 x 1 x connettori bus chip
  • Alimentazione USB 5V x 1

App software e servizi online

Arduino IDE

Fase 2: Storia

introduzione

Ho creato questo progetto per visualizzare la data, l'ora UCT e la temperatura utilizzando XinaBox xChips che utilizza il protocollo bus I2C. L'ora è stata recuperata da un server NTP di Google. La temperatura ambiente è stata misurata utilizzando SW01 xChip ed è stata visualizzata sul display OLED OD01 xChip in gradi Celsius e Fahrenheit. L'immagine sotto mostra il display OLED.

Immagine
Immagine

Visualizzazione OLED di data, ora e temperatura

Passaggio 3: scarica i file necessari

Avrai bisogno delle seguenti librerie e software per questo progetto.

  • Arduino IDE - Software di sviluppo in cui codificherai
  • xSW01 - Libreria di sensori di temperatura
  • xCore - Libreria principale per XinaBox xChips
  • xOD01 - Libreria di display OLED.
  • Fuso orario - Libreria per scegliere il fuso orario
  • Ora - Per utilizzare le funzioni dell'ora
  • NTPClient: consente di ottenere il tempo da un server
  • Dovrai anche scaricare la scheda ESP8266 e seguire le istruzioni che la accompagnano per installare la scheda

Una volta scaricato, installerai l'IDE e le librerie. È abbastanza semplice se segui le istruzioni.

Passaggio 4: assemblare

Il tuo xChip principale che eseguirà ed elaborerà il programma è il CW01. Si basa sul modulo WiFi ESP8266 e utilizza il protocollo bus I2C. Per programmare sul CW01, avrai bisogno di un xChip di programmazione. L'IP01 ci permette di programmare il CW01 tramite la porta USB del nostro computer semplicemente cliccando insieme i due xChip utilizzando i connettori del bus XC10 e inserendolo nella porta USB. Nessun cablaggio e nessuna saldatura richiesta. Una cosa da prendere in considerazione è l'orientamento dei nomi di identificazione xChip. Dovrebbero essere tutti orientati nella stessa direzione. Ora dovresti avere la seguente configurazione.

Immagine
Immagine

Fare clic insieme CW01 e IP01 e inserirlo nella porta USB del computer

Se hai familiarità con gli xChip, puoi collegare ogni xChip insieme utilizzando i connettori bus XC10 che desideri utilizzare per il tuo progetto e quindi inserirlo nella porta USB. Useremo il sensore di temperatura SW01 e il display OLED OD01.

Immagine
Immagine

Puoi collegare tutti i tuoi chip insieme e quindi inserirli nella porta USB

Passaggio 5: programma

Scarica o copia e incolla il codice qui sotto nel tuo IDE Arduino. Se non stai apportando modifiche al codice, inserisci semplicemente i tuoi dettagli WiFi nei rispettivi campi come mostrato di seguito. Inserisci anche un time server NTP affidabile. Ho utilizzato un time server di Google per questo progetto.

Immagine
Immagine

Dettagli WiFi e time server NTP

Ora compila e carica. Assicurati di aver selezionato la porta COM e la scheda corrette nel menu degli strumenti nell'IDE di Arduino. Una volta caricato, l'ora, la data e la temperatura dovrebbero apparire come di seguito.

Immagine
Immagine

Dopo il caricamento dovresti vedere quanto segue

Passaggio 6: rendilo portatile

Ora puoi rimuovere l'unità dalla porta USB e separare ciascun xChip semplicemente separandolo. Una volta completata la programmazione, IP01 non è più necessario. Ora puoi collegare il tuo progetto in qualsiasi modo desideri, purché i nomi identificativi siano tutti orientati nella stessa direzione. Per alimentare la nostra unità utilizzeremo il PU01. Questo ci permette di alimentarlo da un normale power bank o da qualsiasi alimentatore USB 5V. Ho collegato il mio come mostrato di seguito.

Immagine
Immagine

Assemblea finale. Gli xChips possono essere collegati in qualsiasi modo desideri.

Passaggio 7: conclusione

Questo progetto richiederà 20 minuti per essere completato. Se vuoi l'ora nella tua posizione, considera di guardare il codice di esempio nella libreria Timezone o fai un po' di calcoli con l'ora UTC. Non sono stati utilizzati fili e non è stata necessaria alcuna saldatura.

Passaggio 8: codice

Date_Time_Temp.ino Arduino Inserisci semplicemente i tuoi dettagli WiFi nei rispettivi campi e caricali sulla tua scheda.

#include // include la libreria di base per XinaBox xCHIPS

#include // include la libreria del display OLED #include // include la libreria del sensore di temperatura #include // include la funzionalità ESP8266WiFi #include // include le librerie temporali #include #include #include #include #include xSW01 SW01; // definisci le proprietà NTP #define ntpOffset 60 * 60 // in secondi #define ntpInterval 60 * 1000 // in millisecondi // inserisci un time server ntp affidabile tra virgolette // qui ho usato un time server ntp di Google # define ntpAddress "time1.google.com" // configura il client UDP NTP WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, ntpAddress, ntpOffset, ntpInterval); // variabile di temperatura float tempC; // Celsius float tempF; // fahrenheit // i tuoi dettagli wifi const char* wifi_ssid = "XinaBox"; // il tuo ssid wifi const char* wifi_pass = "RapidIoT"; // la tua password wifi // variabile data e ora String date; Clktime stringa; // variabili contenenti giorni e mesi const char * days = {"Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"}; const char * mesi = {"Gen", "Feb", "Mar", "Apr", "Maggio", "Giugno", "Luglio", "Ago", "Settembre", "Ott", "Nov ", "Dic"}; const char * ampm = {"AM", "PM"}; void setup() { tempC = tempF = 0; // inizializza la temperatura a zero timeClient.begin(); // avvia il client UDP NTP // avvia la comunicazione seriale Serial.begin(115200); // avvia la comunicazione i2c e imposta i pin Wire.begin(2, 14); // avvia il sensore di temperatura SW01.begin(); // avvia il display OLED OLED.begin(); // cancella il display OLED OD01.clear(); // stabilisci la connessione wifi wifi_connect(); ritardo(1000); } void loop() { // eseguito se viene stabilita la connessione wifi if (WiFi.status() == WL_CONNECTED) { SW01.poll(); // legge la temperatura tempC = SW01.getTempC(); // memorizza la temperatura in Celsius tempF = SW01.getTempF(); // memorizza la temperatura in fahrenheit date = ""; // cancella la variabile della data clktime = ""; // cancella la variabile temporale // aggiorna il client ntp e ottiene il timestamp unix utc timeClient.update(); epochTime lungo non firmato = timeClient.getEpochTime(); // converte il timestamp ricevuto nell'oggetto time_t time_t utc; utc = epochTime; // utc time TimeChangeRule utcRule = {"UTC", Last, Sun, Mar, 1, 0}; Fuso orario UTC(utcRule, utcRule); // formatta le variabili dell'ora date += days[weekday(utc) - 1]; data += ", "; data += mesi[mese(utc) - 1]; data += " "; data += giorno(utc); data += ", "; data += anno(utc); // formatta l'ora nel formato 12 ore con AM/PM e senza secondi clktime += hourFormat12(utc); clktime += ":"; if (minuto(utc)

Consigliato: