İçindekiler:

XinaBox Kullanarak Tarih, Saat ve Sıcaklık Görüntüleme: 8 Adım
XinaBox Kullanarak Tarih, Saat ve Sıcaklık Görüntüleme: 8 Adım

Video: XinaBox Kullanarak Tarih, Saat ve Sıcaklık Görüntüleme: 8 Adım

Video: XinaBox Kullanarak Tarih, Saat ve Sıcaklık Görüntüleme: 8 Adım
Video: nodeMCU ESP8266 Kurulum (Setup) 2024, Temmuz
Anonim
XinaBox Kullanarak Tarih, Saat ve Sıcaklık Göstergesi
XinaBox Kullanarak Tarih, Saat ve Sıcaklık Göstergesi

ESP8266'ya dayalı Xinabox xChips kullanılarak Celsius ve Fahrenheit cinsinden tarih, saat ve sıcaklığı gösteren harika OLED ekran.

Adım 1: Bu Projede Kullanılanlar

Donanım bileşenleri

  • FTDI Limited'den FT232R tabanlı XinaBox IP01 x 1 xChip USB Programlayıcı
  • ESP8266 Wi-Fi Modülüne dayalı XinaBox CW01 x 1 xChip Wi-Fi Çekirdeği
  • XinaBox SW01 x 1 xChip Sıcaklık, nem ve atmosferik basınç sensörü, Bosch'un BME280'ini temel alır.
  • XinaBox OD01 x 1 xChip 128x64 Piksel OLED Ekran
  • XinaBox PU01 x 1 xChip USB (Tip A) Güç Kaynağı
  • XinaBox XC10 x 1 xChip Veri Yolu Konnektörleri
  • 5V USB Güç Kaynağı x 1

Yazılım uygulamaları ve çevrimiçi hizmetler

Arduino IDE'si

2. Adım: Öykü

Tanıtım

Bu projeyi, I2C veri yolu protokolünü kullanan XinaBox xChips kullanarak tarihi, UCT saatini ve sıcaklığı görüntülemek için oluşturdum. Saat, bir google NTP sunucusundan alındı. Ortam sıcaklığı, SW01 xChip kullanılarak ölçüldü ve OD01 xChip OLED ekranında Celsius ve Fahrenheit cinsinden görüntülendi. Aşağıdaki resim OLED ekranını göstermektedir.

resim
resim

Tarih, saat ve sıcaklığı gösteren OLED

3. Adım: Gerekli Dosyaları İndirin

Bu proje için aşağıdaki kütüphanelere ve yazılımlara ihtiyacınız olacak.

  • Arduino IDE - Kodlayacağınız Geliştirme Yazılımı
  • xSW01 - Sıcaklık sensörü kitaplığı
  • xCore - XinaBox xChips için çekirdek kitaplık
  • xOD01 - OLED Ekran kitaplığı.
  • Saat dilimi - Saat diliminizi seçmek için kitaplık
  • Zaman - Zaman işlevlerini kullanmak için
  • NTPClient - Bir sunucudan zaman almanızı sağlar
  • Ayrıca, ESP8266 kartını indirmeniz ve kartın kurulu olması için beraberindeki talimatları izlemeniz gerekecektir.

İndirdikten sonra IDE'yi ve kitaplıkları kuracaksınız. Talimatları takip ederseniz, oldukça basittir.

Adım 4: Birleştirin

Programı yürütecek ve işleyecek ana xChip'iniz CW01'dir. ESP8266 WiFi Modülünü temel alır ve I2C veri yolu protokolünü kullanır. CW01'e programlamak için bir programlama xChip'e ihtiyacınız olacak. IP01, XC10 veri yolu konektörlerini kullanarak iki xChip'i bir araya getirerek ve USB bağlantı noktasına takarak CW01'i bilgisayarımızdaki USB bağlantı noktası aracılığıyla programlamamızı sağlar. Kablolama ve lehimleme gerektirmez. Dikkate alınması gereken bir şey, xChip tanımlama adlarının yönüdür. Hepsi aynı yöne yönlendirilmelidir. Şimdi aşağıdaki kuruluma sahip olmalısınız.

resim
resim

CW01 ve IP01'i birlikte tıklayın ve bilgisayarınızdaki USB bağlantı noktasına takın

xChips'e aşinaysanız, projeniz için kullanmak istediğiniz XC10 veri yolu konektörlerini kullanarak her xChip'i birbirine bağlayabilir ve ardından USB bağlantı noktasına takabilirsiniz. SW01 sıcaklık sensörünü ve OD01 OLED ekranını kullanacağız.

resim
resim

Tüm çiplerinizi birbirine bağlayabilir ve ardından USB bağlantı noktanıza takabilirsiniz.

Adım 5: Program

Aşağıdaki kodu indirin veya kopyalayıp Arduino IDE'nize yapıştırın. Kodda herhangi bir değişiklik yapmıyorsanız, aşağıda gösterildiği gibi WiFi bilgilerinizi ilgili alanlara girmeniz yeterlidir. Ayrıca güvenilir bir NTP zaman sunucusu girin. Bu proje için bir Google zaman sunucusu kullandım.

resim
resim

WiFi ayrıntıları ve NTP zaman sunucusu

Şimdi derleyin ve yükleyin. Arduino IDE'deki araçlar menüsü altında doğru COM bağlantı noktasını ve kartı seçtiğinizden emin olun. Yüklendikten sonra saat, tarih ve sıcaklık aşağıdaki gibi görünmelidir.

resim
resim

Yükledikten sonra aşağıdakileri görmelisiniz

Adım 6: Taşınabilir Hale Getirin

Artık üniteyi USB bağlantı noktasından çıkarabilir ve her bir xChip'i basitçe çekerek ayırabilirsiniz. Programlama tamamlandığından, IP01 artık gerekli değildir. Tanımlama isimlerinin hepsi aynı yöne yönlendirildiği sürece artık projenizi dilediğiniz şekilde bağlayabilirsiniz. Ünitemize güç sağlamak için PU01'i kullanacağız. Bu, normal bir güç bankasından veya herhangi bir 5V USB güç kaynağından güç vermemizi sağlar. Benimkini aşağıda gösterildiği gibi bağladım.

resim
resim

Son montaj. xChips istediğiniz şekilde bağlanabilir.

7. Adım: Sonuç

Bu projenin tamamlanması 20 dakika sürecektir. Bulunduğunuz yerde saati istiyorsanız, Saat Dilimi kitaplığındaki örnek koda bakmayı düşünün veya UTC saati ile biraz aritmetik yapın. Hiçbir tel kullanılmadı ve lehimleme gerekli değildi.

Adım 8: Kod

Date_Time_Temp.ino Arduino WiFi bilgilerinizi ilgili alanlara girmeniz ve panonuza yüklemeniz yeterlidir.

#include // XinaBox xCHIPS için çekirdek kitaplığı dahil et

#include // OLED ekran kitaplığını dahil edin #include // sıcaklık sensörü kitaplığını dahil edin #include // ESP8266WiFi işlevselliğini dahil edin #include // zaman kitaplıklarını dahil edin #include #include #include #include #include xSW01 SW01; // NTP özelliklerini tanımla #define ntpOffset 60 * 60 // saniye cinsinden #define ntpInterval 60 * 1000 // milisaniye cinsinden // çift tırnak arasına güvenilir bir ntp zaman sunucusu ekleyin // burada bir google ntp zaman sunucusu kullandım # ntpAddress "time1.google.com" tanımlayın // NTP UDP istemcisini ayarlayın WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, ntpAddress, ntpOffset, ntpInterval); // sıcaklık değişkeni şamandıra tempC; // santigrat yüzer sıcaklıkF; // fahrenhayt // wifi bilgileriniz const char* wifi_ssid = "XinaBox"; // wifi ssid const char* wifi_pass = "RapidIoT"; // wifi şifreniz // tarih ve saat değişkeni Dize tarihi; Dize clktime; // günleri ve ayları içeren değişkenler const char * günler = {"Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"}; const char * ay = {"Ocak", "Şubat", "Mart", "Nis", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım" ", "Ara"}; const char * ampm = {"AM", "PM"}; geçersiz kurulum () { tempC = tempF = 0; // sıcaklığı sıfıra sıfırla timeClient.begin(); // NTP UDP istemcisini başlat // seri iletişimi başlat Serial.begin(115200); // i2c iletişimini başlat ve pinleri ayarla Wire.begin(2, 14); // sıcaklık sensörünü başlat SW01.begin(); // OLED ekranını başlat OLED.begin(); // OLED ekranını temizle OD01.clear(); // wifi bağlantısı kurun wifi_connect(); gecikme(1000); } void loop() { // wifi bağlantısı kurulursa çalıştır if (WiFi.status() == WL_CONNECTED) { SW01.poll(); // sıcaklığı oku tempC = SW01.getTempC(); // sıcaklığı celcius'ta sakla tempF = SW01.getTempF(); // sıcaklığı fahrenhayt olarak sakla tarih = ""; // tarih değişkenini temizle clktime = ""; // zaman değişkenini temizle // ntp istemcisini güncelle ve unix utc zaman damgasını al timeClient.update(); imzasız uzun epochTime = timeClient.getEpochTime(); // alınan zaman damgasını time_t nesnesine dönüştür time_t utc; utc = epochTime; // utc time TimeChangeRule utcRule = {"UTC", Last, Sun, Mar, 1, 0}; Saat dilimi UTC(utcRule, utcRule); // zaman değişkenlerini formatla tarih += günler[hafta içi(utc) - 1]; tarih += ", "; tarih += ay[ay(utc) - 1]; tarih += " "; tarih += gün(utc); tarih += ", "; tarih += yıl(utc); // saati AM/PM ile ve saniye olmadan 12 saatlik formatta biçimlendirin clktime += hourFormat12(utc); clktime += ":"; if (dakika(utc)

Önerilen: