Obsah:

Zobrazení data, času a teploty pomocí XinaBoxu: 8 kroků
Zobrazení data, času a teploty pomocí XinaBoxu: 8 kroků

Video: Zobrazení data, času a teploty pomocí XinaBoxu: 8 kroků

Video: Zobrazení data, času a teploty pomocí XinaBoxu: 8 kroků
Video: ANDROID MÁ JEDNO SKRYTÉ NASTAVENÍ 🤖 2024, Listopad
Anonim
Zobrazení data, času a teploty pomocí XinaBoxu
Zobrazení data, času a teploty pomocí XinaBoxu

Skvělý OLED displej zobrazující datum, čas a teplotu ve stupních Celsia a Fahrenheita pomocí Xinabox xChips na základě ESP8266.

Krok 1: Věci použité v tomto projektu

Hardwarové komponenty

  • XinaBox IP01 x 1 xChip USB programátor založený na FT232R od FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core založené na modulu Wi-Fi ESP8266
  • XinaBox SW01 x 1 xChip Snímač teploty, vlhkosti a atmosférického tlaku podle BME280 od společnosti Bosch.
  • XinaBox OD01 x 1 xChip 128x64 Pixel OLED displej
  • Napájení XinaBox PU01 x 1 xChip USB (typ A)
  • Konektory sběrnice XinaBox XC10 x 1 xChip
  • Napájení 5V USB x 1

Softwarové aplikace a online služby

Arduino IDE

Krok 2: Příběh

Úvod

Vytvořil jsem tento projekt pro zobrazení data, času UCT a teploty pomocí XinaBox xChips, který používá protokol sběrnice I2C. Čas byl načten ze serveru Google NTP. Okolní teplota byla měřena pomocí SW01 xChip a byla zobrazena na OLED displeji OD01 xChip v stupních Celsia a Fahrenheita. Na následujícím obrázku je OLED displej.

obraz
obraz

OLED zobrazující datum, čas a teplotu

Krok 3: Stáhněte si potřebné soubory

Pro tento projekt budete potřebovat následující knihovny a software.

  • Arduino IDE - vývojový software, ve kterém budete kódovat
  • xSW01 - knihovna teplotních senzorů
  • xCore - základní knihovna pro XinaBox xChips
  • xOD01 - OLED knihovna zobrazení.
  • Časové pásmo - knihovna pro výběr časového pásma
  • Čas - Chcete -li používat časové funkce
  • NTPClient - Umožňuje vám získat čas ze serveru
  • Abyste mohli desku nainstalovat, budete si také muset stáhnout desku ESP8266 a řídit se pokyny, které jsou k ní připojeny

Po stažení nainstalujete IDE a knihovny. Pokud budete postupovat podle pokynů, je to docela jednoduché.

Krok 4: Sestavte

Váš hlavní xChip, který spustí a zpracuje program, je CW01. Je založen na WiFi modulu ESP8266 a používá sběrnicový protokol I2C. K programování na CW01 budete potřebovat programovací xChip. IP01 nám umožňuje naprogramovat CW01 přes USB port na našem počítači jednoduše kliknutím na dva xChipy pomocí konektorů sběrnice XC10 a vložením do USB portu. Není vyžadováno žádné zapojení ani pájení. Jedna věc, kterou je třeba vzít na vědomí, je orientace identifikačních jmen xChip. Všechny by měly být orientovány stejným směrem. Nyní byste měli mít následující nastavení.

obraz
obraz

Klikněte dohromady na CW01 a IP01 a vložte jej do USB portu na vašem počítači

Pokud jste obeznámeni s xChips, můžete připojit každý xChip dohromady pomocí konektorů sběrnice XC10, které chcete použít pro svůj projekt, a poté jej vložit do portu USB. Použijeme teplotní čidlo SW01 a OLED displej OD01.

obraz
obraz

Můžete připojit všechny své čipy dohromady a poté je vložit do portu USB

Krok 5: Program

Stáhněte nebo zkopírujte a vložte níže uvedený kód do svého Arduino IDE. Pokud neprovádíte žádné změny v kódu, jednoduše zadejte údaje o WiFi do příslušných polí, jak je uvedeno níže. Zadejte také spolehlivý časový server NTP. Pro tento projekt jsem použil časový server Google.

obraz
obraz

Podrobnosti o WiFi a časový server NTP

Nyní zkompilovat a nahrát. Ujistěte se, že jste vybrali správný COM port a desku v nabídce nástrojů v Arduino IDE. Po nahrání by se čas, datum a teplota měly zobrazovat níže.

obraz
obraz

Po nahrání byste měli vidět následující

Krok 6: Zajistěte, aby byl přenosný

Nyní můžete jednotku vyjmout z USB portu a oddělit každý xChip pouhým vytažením. Protože je programování dokončeno, IP01 již není zapotřebí. Nyní můžete svůj projekt připojit libovolným způsobem, pokud jsou všechny identifikační názvy orientovány stejným směrem. K napájení naší jednotky použijeme PU01. To nám umožňuje napájet jej z běžné napájecí banky nebo jakéhokoli napájecího zdroje 5V USB. Připojil jsem svůj, jak je uvedeno níže.

obraz
obraz

Konečná montáž. xChips lze připojit jakýmkoli způsobem, který si přejete.

Krok 7: Závěr

Dokončení tohoto projektu bude trvat 20 minut. Pokud chcete čas ve svém místě, zvažte nahlédnutí do ukázkového kódu v knihovně časových pásem nebo proveďte nějakou aritmetiku s časem UTC. Nebyly použity žádné dráty a nebylo vyžadováno pájení.

Krok 8: Kód

Date_Time_Temp.ino Arduino Jednoduše zadejte údaje o WiFi do příslušných polí a nahrajte je na tabuli.

#include // zahrnout základní knihovnu pro XinaBox xCHIPS

#include // zahrnout OLED zobrazovací knihovnu #include // zahrnout knihovnu teplotních senzorů #include // zahrnout funkci ESP8266WiFi #include // zahrnout časové knihovny #include #include #include #include #include xSW01 SW01; // definujte vlastnosti NTP #define ntpOffset 60 * 60 // v sekundách #define ntpInterval 60 * 1000 // v milisekundách // mezi dvojité uvozovky vložte spolehlivý časový server ntp // zde jsem použil časový server Google ntp # definovat ntpAddress "time1.google.com" // nastavit NTP UDP klienta WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // teplotní proměnná float tempC; // celsius float tempF; // fahrenheit // vaše údaje o wifi const char* wifi_ssid = "XinaBox"; // vaše wifi ssid const char* wifi_pass = "RapidIoT"; // vaše heslo k wifi // proměnná data a času Řetězec datum; Řetězec clktime; // proměnné obsahující dny a měsíce konst char * days = {"neděle", "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota"}; konstantní * měsíce = {"leden", "únor", "březen", "duben", "květen", "červen", "červenec", "srpen", "září", "říjen", "listopad" "," Prosinec "}; const char * ampm = {"AM", "PM"}; neplatné nastavení () {tempC = tempF = 0; // inicializace teploty na nulu timeClient.begin (); // spuštění klienta NTP UDP // zahájení sériové komunikace Serial.begin (115200); // spusťte komunikaci i2c a nastavte piny Wire.begin (2, 14); // spuštění teplotního čidla SW01.begin (); // spuštění OLED displeje OLED.begin (); // vymazat OLED displej OD01.clear (); // navázat wifi připojení wifi_connect (); zpoždění (1000); } void loop () {// spustit, pokud je navázáno připojení wifi if (WiFi.status () == WL_CONNECTED) {SW01.poll (); // číst teplotu tempC = SW01.getTempC (); // uložení teploty v celcius tempF = SW01.getTempF (); // uložení teploty ve fahrenheit date = ""; // vymazat proměnnou data clktime = ""; // vymazat proměnnou času // aktualizovat klienta ntp a získat časové razítko unix utc timeClient.update (); unsigned long epochTime = timeClient.getEpochTime (); // převod přijatého časového razítka 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é proměnné date += days [den v týdnu (utc) - 1]; datum += ","; datum += měsíce [měsíc (utc) - 1]; datum += ""; datum += den (utc); datum += ","; datum += rok (utc); // formátování času na 12hodinový formát s AM/PM a bez sekund clktime += hourFormat12 (utc); clktime += ":"; if (minuta (utc)

Doporučuje: