Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
ESP8266 əsaslı Xinabox xChips istifadə edərək Selsi və Fahrenheitdəki tarixi, saatı və temperaturu göstərən sərin OLED ekran.
Addım 1: Bu Layihədə İstifadə Edilən Şeylər
Avadanlıq komponentləri
- FTDI Limited -dən FT232R -ə əsaslanan XinaBox IP01 x 1 xChip USB Proqramçı
- ESP8266 Wi-Fi Moduluna əsaslanan XinaBox CW01 x 1 xChip Wi-Fi Core
- XinaBox SW01 x 1 xChip Bosch BME280 -ə əsaslanan temperatur, rütubət və atmosfer təzyiqi sensoru.
- XinaBox OD01 x 1 xChip 128x64 Piksel OLED Ekranı
- XinaBox PU01 x 1 xChip USB (A Tipi) Güc Təchizatı
- XinaBox XC10 x 1 xChip Avtobus Bağlayıcıları
- 5V USB Güc Təchizatı x 1
Proqram proqramları və onlayn xidmətlər
Arduino IDE
Addım 2: Hekayə
Giriş
Bu layihəni I2C avtobus protokolundan istifadə edən XinaBox xChips istifadə edərək tarixi, UCT vaxtını və temperaturunu göstərmək üçün qurdum. Vaxt Google NTP serverindən alındı. Ətraf temperaturu SW01 xChip istifadə edərək ölçüldü və Selsi və Fahrenheitdəki OD01 xChip OLED ekranında göstərildi. Aşağıdakı şəkil OLED ekranı göstərir.
Tarixi, vaxtı və temperaturu göstərən OLED
Addım 3: Lazımi faylları yükləyin
Bu layihə üçün aşağıdakı kitabxanalara və proqrama ehtiyacınız olacaq.
- Arduino IDE - Kod yazacağınız İnkişaf Proqramı
- xSW01 - Temperatur sensoru kitabxanası
- xCore - XinaBox xChips üçün əsas kitabxana
- xOD01 - OLED Ekran kitabxanası.
- Saat qurşağı - Kitabxana, vaxt qurşağınızı seçin
- Zaman - Vaxt funksiyalarından istifadə etmək üçün
- NTPClient - Bir serverdən vaxt almağa imkan verir
- Lövhənin quraşdırılması üçün ESP8266 lövhəsini yükləməli və onunla birlikdə gələn təlimatları izləməlisiniz.
Yüklədikdən sonra IDE və kitabxanaları quraşdıracaqsınız. Təlimatlara əməl etsəniz kifayət qədər düzdür.
Addım 4: yığın
Proqramı icra edəcək və işləyəcək əsas xChipiniz CW01 -dir. ESP8266 WiFi Moduluna əsaslanır və I2C avtobus protokolundan istifadə edir. CW01 -ə proqramlaşdırmaq üçün xChip proqramlaşdırmasına ehtiyacınız olacaq. IP01, CW01 -i kompüterimizdəki USB portu vasitəsilə proqramlaşdırmağa imkan verir, sadəcə XC10 avtobus konnektorlarından istifadə edərək iki xChip -i bir yerə vuraraq USB portuna daxil etməklə. Kablolama və lehimləmə tələb olunmur. XChip identifikasiya adlarının oriyentasiyasına diqqət yetirmək lazımdır. Hamısı eyni istiqamətə yönəldilməlidir. İndi aşağıdakı quruluşa sahib olmalısınız.
CW01 və IP01 -i birlikdə vurun və kompüterinizin USB portuna daxil edin
XChips ilə tanışsınızsa, layihəniz üçün istifadə etmək istədiyiniz XC10 avtobus bağlayıcılarından istifadə edərək hər bir xChip -i birləşdirə və sonra USB portuna daxil edə bilərsiniz. SW01 temperatur sensoru və OD01 OLED ekrandan istifadə edəcəyik.
Bütün çiplərinizi birləşdirə və sonra USB portunuza daxil edə bilərsiniz
Addım 5: Proqram
Aşağıdakı kodu yükləyin və ya kopyalayın və Arduino IDE -yə yapışdırın. Kodda heç bir dəyişiklik etməsəniz, aşağıda göstərildiyi kimi WiFi sahənizin sahələrini müvafiq sahələrə daxil edin. Etibarlı bir NTP vaxt serveri də daxil edin. Bu layihə üçün bir Google vaxt serverindən istifadə etdim.
WiFi məlumatları və NTP vaxt serveri
İndi tərtib edin və yükləyin. Arduino IDE alətlər menyusunda düzgün COM portu və lövhə seçdiyinizə əmin olun. Yükləndikdən sonra saat, tarix və temperatur aşağıda göstərilməlidir.
Yüklədikdən sonra aşağıdakıları görməlisiniz
Addım 6: Portativ olun
İndi vahidi USB portunuzdan çıxara və hər bir xChipi ayıraraq ayıra bilərsiniz. Proqramlaşdırma tamamlandığından IP01 artıq tələb olunmur. Eyniləşdirmə adlarının hamısı eyni istiqamətə yönəldildiyi təqdirdə, layihənizi istədiyiniz şəkildə bağlaya bilərsiniz. Cihazımızı gücləndirmək üçün PU01 -dən istifadə edəcəyik. Bu, onu normal bir enerji bankından və ya hər hansı bir 5V USB enerji təchizatı ilə təmin etməyə imkan verir. Aşağıda göstərildiyi kimi özümü bağladım.
Son montaj. xChips istədiyiniz şəkildə bağlana bilər.
Addım 7: Nəticə
Bu layihənin tamamlanması 20 dəqiqə çəkəcək. Vaxtınızı yerinizdə görmək istəyirsinizsə, Timezone kitabxanasındakı nümunə koduna baxmağı və ya UTC vaxtı ilə arifmetik etməyi düşünün. Tel istifadə edilməmiş və lehimləmə tələb olunmamışdır.
Addım 8: Kod
Date_Time_Temp.ino Arduino Sadəcə WiFi məlumatlarınızı müvafiq sahələrə daxil edin və lövhənizə yükləyin.
#include // XinaBox xCHIPS üçün əsas kitabxana daxildir
#include // OLED ekran kitabxanasını daxil edin #daxil edin // temperatur sensoru kitabxanasını daxil edin #daxil edin // ESP8266WiFi funksiyasını daxil edin #daxil edin // vaxt kitabxanalarını daxil edin #daxil edin #daxil edin #daxil edin #daxil edin xSW01 SW01; // NTP xüsusiyyətlərini təyin edin #define ntpOffset 60 * 60 // saniyələrdə #define ntpInterval 60 * 1000 // milisaniyələrdə // ikiqat tırnaqlar arasında etibarlı bir ntp vaxt serveri daxil edin // burada bir Google ntp vaxt serverindən istifadə etdim # ntpAddress "time1.google.com" təyin edin // NTP UDP müştəri WiFiUDP ntpUDP qurun; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // temperatur dəyişən float tempC; // celsius float tempF; // fahrenheit // wifi məlumatlarınız const char* wifi_ssid = "XinaBox"; // wifi ssid const char* wifi_pass = "RapidIoT"; // wifi parolunuz // tarix və vaxt dəyişən String tarixi; String saatı; // günləri və ayları ehtiva edən dəyişənlər const char * days = {"Bazar", "Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Cümə axşamı", "Cümə", "Şənbə"}; const char * ay = {"Yanvar", "Fevral", "Mar", "Aprel", "May", "İyun", "İyul", "Avqust", "Sentyabr", "Okt", "Kasım "," Dekabr "}; const char * ampm = {"AM", "PM"}; void setup () {tempC = tempF = 0; // temperaturu sıfıra endirmək timeClient.begin (); // NTP UDP müştərisini işə salın // Serial.begin (115200) seriyalı ünsiyyətə başlayın; // i2c ünsiyyətinə başlayın və pinləri təyin edin Wire.begin (2, 14); // başlanğıc temperatur sensoru SW01.begin (); // OLED ekranını başlat OLED.begin (); // OLED displeyi sil OD01.clear (); // wifi bağlantısı qur wifi_connect (); gecikmə (1000); } void loop () {// əgər wifi bağlantısı qurulsa çalıştırın (WiFi.status () == WL_CONNECTED) {SW01.poll (); // oxumaq temperatur tempC = SW01.getTempC (); // saxlama temperaturu celcius tempF = SW01.getTempF (); // saxlama tempi fahrenheit tarixində = ""; // tarix dəyişənini sil clktime = ""; // vaxt dəyişənini təmizləyin // ntp müştərisini yeniləyin və unix utc zaman damgasını əldə edin timeClient.update (); imzasız uzun epochTime = timeClient.getEpochTime (); // alınan vaxt möhürünü time_t obyektinə çevirmək time_t utc; utc = epochTime; // utc vaxtı TimeChangeRule utcRule = {"UTC", Son, Günəş, Mart, 1, 0}; Saat dilimi UTC (utcRule, utcRule); // format vaxt dəyişənləri tarixi += günlər [həftə içi (utc) - 1]; tarix += ","; tarix += aylar [ay (utc) - 1]; tarix += ""; tarix += gün (utc); tarix += ","; tarix += il (utc); // vaxtı AM/PM ilə 12 saatlıq formatlaşdırın və heç bir saniyə yoxdur clktime += hourFormat12 (utc); clktime += ":"; əgər (dəqiqə (utc)