Tartalomjegyzék:

Dátum, idő és hőmérséklet kijelzése a XinaBox használatával: 8 lépés
Dátum, idő és hőmérséklet kijelzése a XinaBox használatával: 8 lépés

Videó: Dátum, idő és hőmérséklet kijelzése a XinaBox használatával: 8 lépés

Videó: Dátum, idő és hőmérséklet kijelzése a XinaBox használatával: 8 lépés
Videó: Játék közbeni hőmérséklet kijelzés 2024, November
Anonim
Dátum, idő és hőmérséklet kijelzése a XinaBox használatával
Dátum, idő és hőmérséklet kijelzése a XinaBox használatával

Hűvös OLED kijelző, amely a dátumot, az időt és a hőmérsékletet Celsius -fokban és Fahrenheit -fokban mutatja, az ESP8266 alapú Xinabox xChips használatával.

1. lépés: A projektben használt dolgok

Hardver alkatrészek

  • XinaBox IP01 x 1 xChip USB programozó az FT232R alapján az FTDI Limited -től
  • XinaBox CW01 x 1 xChip Wi-Fi Core ESP8266 Wi-Fi modul alapján
  • XinaBox SW01 x 1 xChip Hőmérséklet-, páratartalom- és légnyomásérzékelő a Bosch BME280 -as modellje alapján.
  • XinaBox OD01 x 1 xChip 128x64 Pixel OLED kijelző
  • XinaBox PU01 x 1 xChip USB (A típusú) tápegység
  • XinaBox XC10 x 1 xChip Bus csatlakozók
  • 5V USB tápegység x 1

Szoftveralkalmazások és online szolgáltatások

Arduino IDE

2. lépés: Történet

Bevezetés

Ezt a projektet a dátum, az UCT idő és a hőmérséklet megjelenítésére építettem az I2C busz protokollt használó XinaBox xChips használatával. Az időt egy Google NTP szerverről szerezték be. A környezeti hőmérsékletet az SW01 xChip segítségével mértük, és az OD01 xChip OLED kijelzőn jelenítettük meg Celsius és Fahrenheit fokban. Az alábbi képen az OLED kijelző látható.

Kép
Kép

OLED kijelző a dátumot, az időt és a hőmérsékletet

3. lépés: Töltse le a szükséges fájlokat

A projekthez a következő könyvtárakra és szoftverekre lesz szüksége.

  • Arduino IDE - Fejlesztő szoftver, amelyben kódolni fog
  • xSW01 - Hőmérséklet -érzékelő könyvtár
  • xCore - Alapkönyvtár a XinaBox xChips számára
  • xOD01 - OLED kijelző könyvtár.
  • Időzóna - Könyvtár az időzóna kiválasztásához
  • Idő - Az időfüggvények használatához
  • NTPClient - Lehetővé teszi, hogy időt szerezzen a szerverről
  • A telepítéshez le kell töltenie az ESP8266 kártyát, és kövesse a hozzá tartozó utasításokat

A letöltés után telepíti az IDE -t és a könyvtárakat. Elég egyszerű, ha követi az utasításokat.

4. lépés: Szerelje össze

A fő xChip, amely végrehajtja és feldolgozza a programot, a CW01. Az ESP8266 WiFi modulon alapul, és az I2C busz protokollt használja. A CW01 programozásához szüksége lesz egy programozó xChip programra. Az IP01 lehetővé teszi számunkra, hogy a CW01 -et a számítógépünk USB -portján keresztül programozzuk, egyszerűen kattintson a két xChip -re az XC10 buszcsatlakozók segítségével, és helyezze be az USB -portba. Nincs szükség huzalozásra és forrasztásra. Egy dolog, amit figyelembe kell venni, az xChip azonosító nevek tájolása. Mindegyiket azonos irányba kell irányítani. Most a következő beállítással kell rendelkeznie.

Kép
Kép

Kattintson együtt a CW01 és az IP01 elemre, és helyezze be a számítógép USB -portjába

Ha ismeri az xChip -eket, minden xChip -et összekapcsolhat a projekthez használni kívánt XC10 buszcsatlakozókkal, majd behelyezheti az USB -portba. SW01 hőmérséklet -érzékelőt és OD01 OLED kijelzőt fogunk használni.

Kép
Kép

Összekapcsolhatja az összes chipet, majd behelyezheti az USB -portba

5. lépés: Programozás

Töltse le vagy másolja be és illessze be az alábbi kódot az Arduino IDE -be. Ha nem változtat a kódon, egyszerűen írja be a WiFi adatait a megfelelő mezőkbe az alábbiak szerint. Adjon meg egy megbízható NTP időszervert is. Ehhez a projekthez Google időszervert használtam.

Kép
Kép

WiFi részletek és NTP időszerver

Most fordítsa össze és töltse fel. Győződjön meg arról, hogy az Arduino IDE Eszközök menüjében a megfelelő COM portot és kártyát választotta. Feltöltés után az időnek, a dátumnak és a hőmérsékletnek az alábbiak szerint kell megjelennie.

Kép
Kép

A feltöltés után a következőt kell látnia

6. lépés: Tedd hordozhatóvá

Most eltávolíthatja az egységet az USB -portról, és szétválaszthatja az egyes xChip -eket. Mivel a programozás befejeződött, az IP01 -re már nincs szükség. Mostantól bármilyen módon összekapcsolhatja a projektet, amíg az azonosító nevek azonos irányba vannak irányítva. Az egység áramellátásához a PU01 -et fogjuk használni. Ez lehetővé teszi, hogy normál tápegységről vagy bármilyen 5 V -os USB tápegységről tápláljuk. Csatlakoztattam az enyémet az alábbiak szerint.

Kép
Kép

Végső összeszerelés. Az xChips bármilyen módon összekapcsolható.

7. lépés: Következtetés

Ez a projekt 20 percet vesz igénybe. Ha a tartózkodási helyén szeretné az időt, akkor nézze meg a példakódot az Időzóna könyvtárban, vagy végezzen számtani az UTC idővel. Nem használtak vezetékeket, és nem volt szükség forrasztásra.

8. lépés: Kód

Date_Time_Temp.ino Arduino Egyszerűen írja be a WiFi adatait a megfelelő mezőkbe, és töltse fel a táblára.

#include // tartalmazza az XinaBox xCHIPS alapkönyvtárát

#include // include OLED display library #include // tartalmazza a hőmérséklet -érzékelő könyvtárat #include // tartalmazza ESP8266WiFi funkciót #include // tartalmazza az időkönyvtárakat #include #include #include #include #include xSW01 SW01; // definiálja az NTP tulajdonságokat #define ntpOffset 60 * 60 // másodpercben #define ntpInterval 60 * 1000 // ezredmásodpercben // illesszen be megbízható ntp időszervert az idézőjelek közé // itt használtam egy google ntp időszervert # define ntpAddress "time1.google.com" // az NTP UDP kliens beállítása WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // hőmérséklet változó float tempC; // Celsius float tempF; // fahrenheit // a wifi részletei const char* wifi_ssid = "XinaBox"; // a wifi ssid const char* wifi_pass = "RapidIoT"; // a wifi jelszava // dátum és idő változó String date; String clktime; // napokat és hónapokat tartalmazó változók const char * days = {"vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"}; const char * months = {"Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov" "," Dec "}; const char * ampm = {"AM", "PM"}; void setup () {tempC = tempF = 0; // hőmérséklet inicializálása nullára timeClient.begin (); // indítsa el az NTP UDP klienst // indítsa el a soros kommunikációt Serial.begin (115200); // indítsa el az i2c kommunikációt és állítsa be a csapokat Wire.begin (2, 14); // indítási hőmérséklet érzékelő SW01.begin (); // OLED kijelző indítása OLED.begin (); // OLED kijelző törlése OD01.clear (); // wifi kapcsolat létrehozása wifi_connect (); késleltetés (1000); } void loop () {// fut, ha a wifi kapcsolat létrejön, ha (WiFi.status () == WL_CONNECTED) {SW01.poll (); // hőmérséklet olvasása tempC = SW01.getTempC (); // tárolási hőmérséklet Celsius -ban tempF = SW01.getTempF (); // tárolási hőmérséklet fahrenheit dátumban = ""; // dátumváltozó törlése clktime = ""; // időváltozó törlése // frissítse az ntp klienst, és szerezze be az unix utc időbélyegét timeClient.update (); unsigned long epochTime = timeClient.getEpochTime (); // a kapott időbélyeg átalakítása time_t objektumra time_t utc; utc = epochTime; // utc idő TimeChangeRule utcRule = {"UTC", Utolsó, V, Márc, 1, 0}; Időzóna UTC (utcRule, utcRule); // formátum időváltozók dátum += napok [hétköznap (utc) - 1]; dátum += ","; dátum += hónap [hónap (utc) - 1]; dátum += ""; dátum += nap (utc); dátum += ","; dátum += év (utc); // formázza az időt 12 órás formátumba AM/PM és másodpercek nélkül clktime += hourFormat12 (utc); clktime += ":"; ha (perc (utc)

Ajánlott: