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, Studeni
Anonim
Prikaz datuma, vremena i temperature pomoću XinaBox -a
Prikaz datuma, vremena i temperature pomoću XinaBox -a

Hladan OLED zaslon koji prikazuje datum, vrijeme i temperaturu u Celzijusima i Fahrenheitima pomoću Xinabox x čipova temeljenih na ESP8266.

Korak 1: Stvari korištene u ovom projektu

Hardverske komponente

  • XinaBox IP01 x 1 xChip USB programator temeljen na FT232R Proizvođač FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core temeljen na ESP8266 Wi-Fi modulu
  • XinaBox SW01 x 1 xChip Senzor za temperaturu, vlagu i atmosferski tlak temeljen na BME280 iz Boscha.
  • XinaBox OD01 x 1 xChip OLED zaslon od 128 x 64 piksela
  • Napajanje XinaBox PU01 x 1 xChip USB (tip A)
  • 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 sam projekt izgradio za prikaz datuma, UCT vremena i temperature pomoću XinaBox xChips koji koristi protokol sabirnice I2C. Vrijeme je preuzeto s google NTP poslužitelja. Temperatura okoline mjerena je pomoću SW01 xChip i prikazana je na OD01 xChip OLED zaslonu u Celzijusima i Fahrenheitu. Donja slika prikazuje OLED zaslon.

Slika
Slika

OLED prikazuje datum, vrijeme i temperaturu

Korak 3: Preuzmite potrebne datoteke

Za ovaj projekt trebat će vam sljedeće knjižnice i softver.

  • Arduino IDE - razvojni softver u koji ćete kodirati
  • xSW01 - Knjižnica osjetnika temperature
  • xCore - Knjižnica jezgre za XinaBox xChips
  • xOD01 - Biblioteka OLED zaslona.
  • Vremenska zona - Knjižnica za odabir vaše vremenske zone
  • Vrijeme - Za korištenje vremenskih funkcija
  • NTPClient - Omogućuje vam da dobijete vrijeme sa poslužitelja
  • Također ćete morati preuzeti ESP8266 ploču i slijediti upute koje je prate kako biste je instalirali

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

Korak 4: Sastavite

Vaš glavni xChip koji će izvršavati i obrađivati program je CW01. Temelji se na WiFi modulu ESP8266 i koristi protokol sabirnice I2C. Za programiranje na CW01 trebat će vam programski xChip. IP01 nam omogućuje programiranje CW01 putem USB priključka na našem računalu jednostavnim klikom zajedno na dva xChips -a 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 identifikacijskih naziva xChip. Svi bi trebali biti usmjereni u istom smjeru. Sada biste trebali imati sljedeće postavljanje.

Slika
Slika

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

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 zaslon OD01.

Slika
Slika

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. Također unesite pouzdan NTP poslužitelj vremena. Za ovaj projekt koristio sam Googleov vremenski poslužitelj.

Slika
Slika

Detalji o WiFi -u i vremenski poslužitelj NTP -a

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 u nastavku.

Slika
Slika

Nakon prijenosa trebali biste vidjeti sljedeće

Korak 6: Neka bude prenosiv

Sada možete izvaditi jedinicu iz USB priključka i odvojiti svaki xChip jednostavnim odvajanjem. Budući da je programiranje dovršeno, IP01 više nije potreban. Sada svoj projekt možete povezati 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 kako je dolje prikazano.

Slika
Slika

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 primjeru koda u knjižnici vremenske zone ili napravite aritmetiku s UTC -vremenom. Nisu korištene žice niti je potrebno lemljenje.

Korak 8: Kodiranje

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

#include // uključi knjižnicu jezgre za XinaBox xCHIPS

#include // uključuje OLED knjižnicu zaslona #include // uključuje biblioteku senzora temperature #include // uključuje ESP8266WiFi funkcionalnost #include // uključuje vremenske knjižnice #include #include #include #include #include xSW01 SW01; // definirajte NTP svojstva #define ntpOffset 60 * 60 // u sekundama #define ntpInterval 60 * 1000 // u milisekundama // umetnite pouzdan ntp vremenski poslužitelj 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; // celzius 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; Niz 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 "," Prosinac}}; const char * ampm = {"AM", "PM"}; void setup () {tempC = tempF = 0; // inicijaliziranje temperature 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 zaslona OLED.begin (); // brisanje OLED zaslona OD01.clear (); // uspostaviti wifi vezu wifi_connect (); kašnjenje (1000); } void loop () {// radi ako je uspostavljena wifi veza 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 = ""; // očisti 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); // formatirajte vrijeme u 12-satni format s AM/PM i bez sekundi clktime += hourFormat12 (utc); clktime += ":"; ako (minuta (utc)

Preporučeni: