Obsah:

Zobrazenie dátumu, času a teploty pomocou XinaBoxu: 8 krokov
Zobrazenie dátumu, času a teploty pomocou XinaBoxu: 8 krokov

Video: Zobrazenie dátumu, času a teploty pomocou XinaBoxu: 8 krokov

Video: Zobrazenie dátumu, času a teploty pomocou XinaBoxu: 8 krokov
Video: Подробный обзор Garmin Instinct Crossover 2024, November
Anonim
Zobrazenie dátumu, času a teploty pomocou XinaBoxu
Zobrazenie dátumu, času a teploty pomocou XinaBoxu

Cool OLED displej zobrazujúci dátum, čas a teplotu v stupňoch Celzia a Fahrenheita pomocou Xinabox xChips na základe ESP8266.

Krok 1: Veci použité v tomto projekte

Hardvérové komponenty

  • Programátor USB XinaBox IP01 x 1 xChip na základe FT232R od FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core na základe Wi-Fi modulu ESP8266
  • XinaBox SW01 x 1 xChip Snímač teploty, vlhkosti a atmosférického tlaku založený na BME280 od spoločnosti Bosch.
  • XinaBox OD01 x 1 xChip 128 x 64 pixelový OLED displej
  • Napájací zdroj XinaBox PU01 x 1 xChip USB (typ A)
  • Konektory zbernice XinaBox XC10 x 1 xChip
  • Napájanie 5V USB x 1

Softvérové aplikácie a online služby

Arduino IDE

Krok 2: Príbeh

Úvod

Tento projekt som postavil na zobrazenie dátumu, času UCT a teploty pomocou XinaBox xChips, ktorý používa zbernicový protokol I2C. Čas bol načítaný zo servera Google NTP. Teplota okolia sa merala pomocou SW01 xChip a zobrazovala sa na OLED displeji OD01 xChip v stupňoch Celzia a Fahrenheita. Nasledujúci obrázok zobrazuje OLED displej.

Obrázok
Obrázok

OLED zobrazujúci dátum, čas a teplotu

Krok 3: Stiahnite si potrebné súbory

Pre tento projekt budete potrebovať nasledujúce knižnice a softvér.

  • Arduino IDE - vývojový softvér, v ktorom budete kódovať
  • xSW01 - knižnica teplotných senzorov
  • xCore - Základná knižnica pre XinaBox xChips
  • xOD01 - OLED knižnica displeja.
  • Časové pásmo - knižnica na výber časového pásma
  • Čas - Ak chcete používať časové funkcie
  • NTPClient - Umožňuje vám získať čas zo servera
  • Aby ste mohli dosku nainštalovať, musíte si tiež stiahnuť dosku ESP8266 a riadiť sa pokynmi, ktoré sú k nej priložené

Po stiahnutí nainštalujete IDE a knižnice. Je celkom jednoduché, ak budete postupovať podľa pokynov.

Krok 4: Zostavte

Váš hlavný xChip, ktorý spustí a spracuje program, je CW01. Je založený na WiFi module ESP8266 a používa protokol zbernice I2C. Na programovanie na CW01 budete potrebovať programovací xChip. IP01 nám umožňuje naprogramovať CW01 prostredníctvom USB portu na našom počítači jednoduchým kliknutím na dva xChipy pomocou konektorov zbernice XC10 a ich vložením do USB portu. Nie je potrebné žiadne zapojenie ani spájkovanie. Jedna vec, ktorú je potrebné vziať na vedomie, je orientácia identifikačných mien xChip. Všetky by mali byť orientované rovnakým smerom. Teraz by ste mali mať nasledujúce nastavenie.

Obrázok
Obrázok

Kliknite na CW01 a IP01 a vložte ich do portu USB vo vašom počítači

Ak poznáte xChips, môžete pripojiť každý xChip dohromady pomocou konektorov zbernice XC10, ktoré chcete použiť pre svoj projekt, a potom ich vložiť do portu USB. Budeme používať teplotný senzor SW01 a OLED displej OD01.

Obrázok
Obrázok

Môžete prepojiť všetky svoje čipy a potom ich vložiť do portu USB

Krok 5: Program

Stiahnite alebo skopírujte a prilepte nižšie uvedený kód do svojho Arduino IDE. Ak v kóde nevykonávate žiadne zmeny, zadajte svoje údaje o WiFi do príslušných polí, ako je uvedené nižšie. Zadajte tiež spoľahlivý časový server NTP. Na tento projekt som použil časový server Google.

Obrázok
Obrázok

Podrobnosti o WiFi a časový server NTP

Teraz skompilovajte a nahrajte. Uistite sa, že ste v ponuke nástrojov v Arduino IDE vybrali správny port a dosku COM. Po nahraní by mal byť čas, dátum a teplota zobrazený nižšie.

Obrázok
Obrázok

Po nahraní by ste mali vidieť nasledujúce

Krok 6: Urobte to prenosným

Teraz môžete jednotku vytiahnuť z USB portu a oddeliť každý xChip jednoduchým vytiahnutím. Pretože je programovanie dokončené, IP01 už nie je potrebný. Teraz môžete svoj projekt pripojiť akýmkoľvek spôsobom, pokiaľ je to potrebné, pokiaľ sú všetky identifikačné názvy orientované rovnakým smerom. Na napájanie našej jednotky použijeme PU01. To nám umožňuje napájať ho z bežnej powerbanky alebo akéhokoľvek 5V USB zdroja. Pripojil som svoj, ako je znázornené nižšie.

Obrázok
Obrázok

Konečná montáž. xChips je možné pripojiť akýmkoľvek spôsobom, akým si prajete.

Krok 7: Záver

Dokončenie tohto projektu bude trvať 20 minút. Ak chcete čas vo svojom mieste, zvážte ukážku kódu v knižnici časových pásiem alebo urobte aritmetiku s časom UTC. Neboli použité žiadne drôty a nebolo potrebné žiadne spájkovanie.

Krok 8: Kód

Date_Time_Temp.ino Arduino Jednoducho zadajte svoje WiFi údaje do príslušných polí a nahrajte ich na tabuľu.

#include // zahrnúť základnú knižnicu pre XinaBox xCHIPS

#include // zahrnúť knižnicu displeja OLED #include // zahrnúť knižnicu snímačov teploty #include // zahrnúť funkciu ESP8266WiFi #include // zahrnúť časové knižnice #include #include #include #include #include xSW01 SW01; // definujte vlastnosti NTP #define ntpOffset 60 * 60 // v sekundách #define ntpInterval 60 * 1000 // v milisekundách // medzi dvojité úvodzovky vložte spoľahlivý časový server ntp // tu som použil časový server Google ntp # definovať ntpAddress "time1.google.com" // nastaviť NTP UDP klienta WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // teplotná premenná float tempC; // celsius float tempF; // fahrenheit // vaše údaje o wifi const char* wifi_ssid = "XinaBox"; // tvoj wifi ssid const char* wifi_pass = "RapidIoT"; // tvoje heslo do wifi // premenná dátumu a času Reťazec dátumu; Doba reťazca; // premenné obsahujúce dni a mesiace const char * days = {"nedeľa", "pondelok", "utorok", "streda", "štvrtok", "piatok", "sobota"}; const char * mesiace = {"Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov "," Dec "}; const char * ampm = {"AM", "PM"}; neplatné nastavenie () {tempC = tempF = 0; // inicializácia teploty na nulu timeClient.begin (); // spustenie klienta NTP UDP // spustenie sériovej komunikácie Serial.begin (115200); // spustenie komunikácie i2c a nastavenie pinov Wire.begin (2, 14); // spustenie snímača teploty SW01.begin (); // spustenie OLED displeja OLED.begin (); // vymazanie OLED displeja OD01.clear (); // nadviazanie wifi pripojenia wifi_connect (); oneskorenie (1000); } void loop () {// spustiť, ak je nadviazané wifi pripojenie if (WiFi.status () == WL_CONNECTED) {SW01.poll (); // čítať teplotu tempC = SW01.getTempC (); // uloženie teploty v celcius tempF = SW01.getTempF (); // uloženie teploty vo fahrenheit date = ""; // vymazanie premennej dátumu clktime = ""; // vymazanie časovej premennej // aktualizujte klienta ntp a získajte časovú pečiatku unixu utc timeClient.update (); nepodpísané dlhé epochTime = timeClient.getEpochTime (); // previesť prijatú časovú pečiatku na objekt time_t time_t utc; utc = epochTime; // utc time TimeChangeRule utcRule = {"UTC", Last, Sun, Mar, 1, 0}; Časové pásmo UTC (utcRule, utcRule); // formát časových premenných dátum += dni [deň v týždni (utc) - 1]; dátum += ","; dátum += mesiace [mesiac (utc) - 1]; dátum += ""; dátum += deň (utc); dátum += ","; dátum += rok (utc); // formátovanie času na 12-hodinový formát s AM/PM a bez sekúnd clktime += hourFormat12 (utc); clktime += ":"; if (minúta (utc)

Odporúča: