Sadržaj:

Prikaz datuma, vremena i temperature pomoću XinaBox -a: 8 koraka
Prikaz datuma, vremena i temperature pomoću XinaBox -a: 8 koraka

Video: Prikaz datuma, vremena i temperature pomoću XinaBox -a: 8 koraka

Video: Prikaz datuma, vremena i temperature pomoću XinaBox -a: 8 koraka
Video: Kako povezati (spojiti) pametni sat i mobitel (pametni telefon) i kako podesiti vrijeme? 2024, Novembar
Anonim
Prikaz datuma, vremena i temperature pomoću XinaBox -a
Prikaz datuma, vremena i temperature pomoću XinaBox -a

Hladan OLED ekran koji prikazuje datum, vrijeme i temperaturu u Celzijusima i Farenhajtima pomoću Xinabox x čipova zasnovanih na ESP8266.

Korak 1: Stvari koje se koriste u ovom projektu

Hardverske komponente

  • XinaBox IP01 x 1 xChip USB programator zasnovan na FT232R Proizvođač FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi jezgro zasnovano na ESP8266 Wi-Fi modulu
  • XinaBox SW01 x 1 xChip Senzor za temperaturu, vlažnost i atmosferski pritisak baziran na BME280 iz Boscha.
  • XinaBox OD01 x 1 xChip OLED ekran od 128 x 64 piksela
  • XinaBox PU01 x 1 xChip USB (tip A) napajanje
  • XinaBox XC10 x 1 xChip konektori sabirnice
  • 5V USB napajanje x 1

Softverske aplikacije i mrežne usluge

Arduino IDE

Korak 2: Priča

Uvod

Ovaj projekt sam napravio za prikaz datuma, UCT vremena i temperature pomoću XinaBox xChips -a koji koristi protokol sabirnice I2C. Vrijeme je preuzeto s google NTP servera. Temperatura okoline mjerena je pomoću SW01 xChip i prikazana je na OD01 xChip OLED ekranu u Celzijusima i Farenhajtima. Donja slika prikazuje OLED ekran.

Image
Image

OLED prikazuje datum, vrijeme i temperaturu

Korak 3: Preuzmite potrebne datoteke

Za ovaj projekt trebat će vam sljedeće biblioteke i softver.

  • Arduino IDE - razvojni softver u koji ćete kodirati
  • xSW01 - Biblioteka senzora temperature
  • xCore - Biblioteka jezgre za XinaBox xChips
  • xOD01 - Biblioteka OLED ekrana.
  • Vremenska zona - Biblioteka za odabir vaše vremenske zone
  • Vrijeme - Za korištenje vremenskih funkcija
  • NTPClient - Omogućava vam da dobijete vreme sa servera
  • Također ćete morati preuzeti ESP8266 ploču i slijediti upute koje su priložene da biste je instalirali

Nakon preuzimanja instalirat ćete IDE i biblioteke. Prilično je jednostavno ako slijedite upute.

Korak 4: Sastavite

Vaš glavni xChip koji će izvršavati i obrađivati program je CW01. Baziran je na ESP8266 WiFi modulu i koristi protokol sabirnice I2C. Da biste programirali na CW01, trebat će vam programski xChip. IP01 nam omogućuje programiranje CW01 preko USB priključka na računaru jednostavnim klikom zajedno na dva x čipa pomoću konektora sabirnice XC10 i umetanjem u USB priključak. Nije potrebno ožičenje i lemljenje. Jedna stvar koju treba uzeti u obzir je orijentacija xChip identifikacijskih imena. Svi bi trebali biti usmjereni u istom smjeru. Sada biste trebali imati sljedeće postavljanje.

Image
Image

Pritisnite zajedno CW01 i IP01 i umetnite ih u USB priključak na računaru

Ako ste upoznati s xChips -om, možete povezati svaki xChip zajedno pomoću konektora sabirnice XC10 koje želite koristiti za svoj projekt, a zatim ga umetnuti u USB priključak. Koristit ćemo senzor temperature SW01 i OL01 ekran OD01.

Image
Image

Možete povezati sve svoje čipove zajedno, a zatim ih umetnuti u USB priključak

Korak 5: Program

Preuzmite ili kopirajte i zalijepite donji kod u svoj Arduino IDE. Ako ne mijenjate kôd, jednostavno unesite svoje WiFi podatke u njihova polja kao što je prikazano u nastavku. Unesite i pouzdan NTP server vremena. Koristio sam Googleov vremenski server za ovaj projekat.

Image
Image

WiFi detalji i NTP poslužitelj vremena

Sada sastavite i prenesite. Provjerite jeste li odabrali ispravan COM port i ploču u izborniku alata u Arduino IDE -u. Nakon učitavanja, vrijeme, datum i temperatura trebali bi prikazati kao dolje.

Image
Image

Nakon učitavanja trebali biste vidjeti sljedeće

Korak 6: Neka bude prenosiv

Sada možete ukloniti jedinicu iz USB priključka i odvojiti svaki xChip jednostavnim razdvajanjem. Budući da je programiranje završeno, IP01 više nije potreban. Sada možete povezati svoj projekt na bilo koji način sve dok su identifikacijski nazivi usmjereni u istom smjeru. Za napajanje naše jedinice koristit ćemo PU01. To nam omogućuje napajanje iz normalne banke napajanja ili bilo kojeg 5V USB izvora napajanja. Ja sam svoj spojio kao što je prikazano ispod.

Image
Image

Završna montaža. xChips se može povezati na bilo koji način koji želite.

Korak 7: Zaključak

Za završetak ovog projekta potrebno je 20 minuta. Ako želite vrijeme na svojoj lokaciji, razmislite o tome da pogledate primjer koda u biblioteci vremenske zone ili napravite aritmetiku s UTC -vremenom. Nisu korištene žice niti je potrebno lemljenje.

Korak 8: Kodirajte

Date_Time_Temp.ino Arduino Jednostavno unesite svoje WiFi podatke u njihova polja i prenesite ih na svoju ploču.

#include // uključuje jezgru biblioteku za XinaBox xCHIPS

#include // uključuje OLED biblioteku ekrana #include // uključuje biblioteku senzora temperature #include // uključuje ESP8266WiFi funkcionalnost #include // uključuje vremenske biblioteke #include #include #include #include #include xSW01 SW01; // definiramo NTP svojstva #define ntpOffset 60 * 60 // u sekundama #define ntpInterval 60 * 1000 // u milisekundama // ubacimo pouzdan ntp vremenski server između dvostrukih navodnika // ovdje sam koristio google ntp vremenski poslužitelj # definirati ntpAddress "time1.google.com" // postaviti NTP UDP klijent WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // temperaturna varijabla plovak tempC; // Celsius float tempF; // fahrenheit // vaši wifi detalji const char* wifi_ssid = "XinaBox"; // vaš WiFi ssid const char* wifi_pass = "RapidIoT"; // vaša WiFi lozinka // varijabla datuma i vremena String date; String clktime; // varijable koje sadrže dane i mjesece const char * days = {"Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"}; const char * mjeseci = {"Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov "," Decembar "}; const char * ampm = {"AM", "PM"}; void setup () {tempC = tempF = 0; // inicijalizira temperaturu na nulu timeClient.begin (); // pokretanje NTP UDP klijenta // pokretanje serijske komunikacije Serial.begin (115200); // započinjemo i2c komunikaciju i postavljamo pinove Wire.begin (2, 14); // senzor temperature uključivanja SW01.begin (); // pokretanje OLED ekrana OLED.begin (); // brisanje OLED ekrana OD01.clear (); // uspostavljanje WiFi veze wifi_connect (); kašnjenje (1000); } void loop () {// radi ako je wifi veza uspostavljena if (WiFi.status () == WL_CONNECTED) {SW01.poll (); // očitavanje temperature tempC = SW01.getTempC (); // spremi temp u celcius tempF = SW01.getTempF (); // spremi temp u fahrenheit date = ""; // obriši varijablu datuma clktime = ""; // brisanje vremenske varijable // ažuriranje ntp klijenta i dobivanje vremenske oznake unix utc timeClient.update (); unsigned long epochTime = timeClient.getEpochTime (); // pretvoriti primljenu vremensku oznaku u time_t objekt time_t utc; utc = epochTime; // utc vrijeme TimeChangeRule utcRule = {"UTC", Last, Sun, Mar, 1, 0}; Vremenska zona UTC (utcRule, utcRule); // formatiranje vremenskih varijabli datum += dani [radni dan (utc) - 1]; datum += ","; datum += mjeseci [mjesec (utc) - 1]; datum += ""; datum += dan (utc); datum += ","; datum += godina (utc); // formatiranje vremena u 12-časovni format sa AM/PM i bez sekundi clktime += hourFormat12 (utc); clktime += ":"; if (minuta (utc)

Preporučuje se: