Isi kandungan:

Paparan Tarikh, Masa & Suhu Menggunakan XinaBox: 8 Langkah
Paparan Tarikh, Masa & Suhu Menggunakan XinaBox: 8 Langkah

Video: Paparan Tarikh, Masa & Suhu Menggunakan XinaBox: 8 Langkah

Video: Paparan Tarikh, Masa & Suhu Menggunakan XinaBox: 8 Langkah
Video: TIPS AND TRICKS : TUKAR TARIKH DAN MASA PADA PAPARAN eHADIR PKPP 2024, November
Anonim
Paparan Tarikh, Masa & Suhu Menggunakan XinaBox
Paparan Tarikh, Masa & Suhu Menggunakan XinaBox

Paparan OLED yang sejuk menunjukkan tarikh, waktu dan suhu dalam Celsius dan Fahrenheit menggunakan Xinabox xChips berdasarkan ESP8266.

Langkah 1: Perkara Yang Digunakan dalam Projek Ini

Komponen perkakasan

  • Pengaturcara USB XinaBox IP01 x 1 xChip berdasarkan FT232R Dari FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core berdasarkan Modul Wi-Fi ESP8266
  • XinaBox SW01 x 1 xChip Suhu, kelembapan dan sensor tekanan atmosfera berdasarkan BME280 dari Bosch.
  • Paparan OLED Pixel XinaBox OD01 x 1 xChip 128x64
  • Bekalan Kuasa XinaBox PU01 x 1 xChip USB (Jenis A)
  • Penyambung Bas XinaBox XC10 x 1 xChip
  • Bekalan Kuasa USB 5V x 1

Aplikasi perisian dan perkhidmatan dalam talian

Arduino IDE

Langkah 2: Cerita

Pengenalan

Saya membina projek ini untuk memaparkan tarikh, masa dan suhu UCT menggunakan XinaBox xChips yang menggunakan protokol bas I2C. Masa diambil dari pelayan NTP google. Suhu persekitaran diukur menggunakan SW01 xChip dan dipaparkan pada paparan OLD OD01 xChip di Celsius dan Fahrenheit. Gambar di bawah menunjukkan paparan OLED.

Imej
Imej

OLED memaparkan tarikh, masa dan suhu

Langkah 3: Muat turun Fail yang Diperlukan

Anda memerlukan perpustakaan dan perisian berikut untuk projek ini.

  • Arduino IDE - Perisian Pembangunan di mana anda akan membuat kod
  • xSW01 - Perpustakaan sensor suhu
  • xCore - Perpustakaan teras untuk XinaBox xChips
  • xOD01 - Pustaka Paparan OLED.
  • Zon Waktu - Perpustakaan untuk memilih zon waktu anda
  • Masa - Untuk menggunakan fungsi masa
  • NTPClient - Membolehkan anda mendapatkan masa dari pelayan
  • Anda juga perlu memuat turun papan ESP8266 dan mengikuti arahan yang menyertainya untuk memasang papan

Setelah dimuat turun, anda akan memasang IDE dan perpustakaan. Ia agak lurus ke hadapan jika anda mengikuti arahan.

Langkah 4: Berkumpul

XChip utama anda yang akan melaksanakan dan memproses program ini adalah CW01. Ia berdasarkan Modul WiFi ESP8266 dan menggunakan protokol bas I2C. Untuk memprogram ke CW01, anda memerlukan xChip pengaturcaraan. IP01 membolehkan kita memprogram CW01 melalui port USB di komputer kita hanya dengan mengklik kedua-dua xChips menggunakan penyambung bas XC10 dan memasukkannya ke port USB. Tidak memerlukan pendawaian dan pematerian. Satu perkara yang perlu diberi perhatian ialah orientasi nama pengenalan xChip. Semuanya harus berorientasi ke arah yang sama. Anda kini harus mempunyai persediaan berikut.

Imej
Imej

Klik bersama CW01 dan IP01 dan masukkan ke dalam port USB di komputer anda

Sekiranya anda biasa dengan xChips, anda boleh menyambungkan setiap xChip bersama-sama menggunakan penyambung bas XC10 yang ingin anda gunakan untuk projek anda dan kemudian memasukkannya ke port USB. Kami akan menggunakan sensor suhu SW01 dan paparan OLED OD01.

Imej
Imej

Anda boleh menyambungkan semua cip anda dan memasukkannya ke port USB anda

Langkah 5: Program

Muat turun atau salin dan tampal kod di bawah ini ke Arduino IDE anda. Sekiranya anda tidak membuat perubahan pada kod tersebut, masukkan butiran WiFi anda di medan masing-masing seperti yang ditunjukkan di bawah. Masukkan juga pelayan masa NTP yang boleh dipercayai. Saya telah menggunakan pelayan masa Google untuk projek ini.

Imej
Imej

Perincian WiFi dan pelayan masa NTP

Sekarang kompilasi dan muat naik. Pastikan anda telah memilih port COM dan papan yang betul di bawah menu alat di Arduino IDE. Setelah dimuat naik, waktu, tarikh dan suhu akan ditunjukkan seperti di bawah.

Imej
Imej

Selepas memuat naik, anda akan melihat perkara berikut

Langkah 6: Jadikannya Mudah Alih

Anda sekarang boleh mengeluarkan unit dari port USB anda dan memisahkan setiap xChip dengan hanya melepaskannya. Oleh kerana pengaturcaraan selesai, IP01 tidak diperlukan lagi. Anda sekarang boleh menghubungkan projek anda dengan cara yang anda mahukan selagi nama pengenalan semuanya berorientasi ke arah yang sama. Untuk menggerakkan unit kami, kami akan menggunakan PU01. Ini membolehkan kita mengaktifkannya dari bank kuasa biasa atau mana-mana bekalan kuasa USB 5V. Saya telah menghubungkan tambang seperti di bawah.

Imej
Imej

Pemasangan akhir. xChip boleh dihubungkan dengan cara yang anda mahukan.

Langkah 7: Kesimpulannya

Projek ini akan mengambil masa 20 minit untuk disiapkan. Sekiranya anda mahukan waktu di lokasi anda, pertimbangkan untuk melihat kod contoh di perpustakaan Timezone atau lakukan aritmetik dengan waktu UTC. Tidak ada wayar yang digunakan dan tidak diperlukan pematerian.

Langkah 8: Kod

Date_Time_Temp.ino Arduino Cukup masukkan butiran WiFi anda di bidang masing-masing dan muat naik ke papan anda.

#masuk // sertakan perpustakaan teras untuk XinaBox xCHIPS

#include // include OLED library library #include // include the sensor sensor library #include // include ESP8266WiFi function #include // include perpustakaan masa #include #include #include #include #include xSW01 SW01; // tentukan sifat NTP #define ntpOffset 60 * 60 // in seconds #define ntpInterval 60 * 1000 // dalam milidetik // masukkan pelayan masa ntp yang boleh dipercayai antara petikan ganda // di sini saya telah menggunakan pelayan masa google ntp # efinisikan ntpAddress "time1.google.com" // sediakan NUD UDP klien WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // suhu terapung suhu berubah; // celsius float tempF; // fahrenheit // perincian wifi anda const char * wifi_ssid = "XinaBox"; // wifi anda ssid const char * wifi_pass = "RapidIoT"; // kata laluan wifi anda // pemboleh ubah tarikh dan masa Tarikh rentetan; Clktime rentetan; // pemboleh ubah yang mengandungi hari dan bulan const char * days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; const char * months = {"Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov "," Dis "}; const char * ampm = {"AM", "PM"}; persediaan kosong () {tempC = tempF = 0; // memulakan suhu hingga zero timeClient.begin (); // mulakan pelanggan NTP UDP // mulakan komunikasi bersiri Serial.begin (115200); // mulakan komunikasi i2c dan tetapkan pin Wire.begin (2, 14); // sensor suhu mula SW01.begin (); // mulakan paparan OLED OLED.begin (); // jelas paparan OLED OD01.clear (); // buat sambungan wifi wifi_connect (); kelewatan (1000); } gelung void () {// jalankan jika sambungan wifi dibuat sekiranya (WiFi.status () == WL_CONNECTED) {SW01.poll (); // baca suhu tempC = SW01.getTempC (); // simpan suhu dalam celcius tempF = SW01.getTempF (); // simpan suhu dalam tarikh fahrenheit = ""; // jelas pemboleh ubah tarikh clktime = ""; // pemboleh ubah masa yang jelas // kemas kini klien ntp dan dapatkan cap waktu unix utc timeClient.update (); epochTime panjang yang tidak ditandatangani = timeClient.getEpochTime (); // menukar cap masa yang diterima menjadi time_t objek time_t utc; utc = epochTime; // utc time TimeChangeRule utcRule = {"UTC", Terakhir, Matahari, Mac, 1, 0}; Zon Waktu UTC (utcRule, utcRule); // format pemboleh ubah masa tarikh + = hari [hari minggu (utc) - 1]; tarikh + = ","; tarikh + = bulan [bulan (utc) - 1]; tarikh + = ""; tarikh + = hari (utc); tarikh + = ","; tarikh + = tahun (utc); // format format masa hingga 12 jam dengan AM / PM dan tanpa detik clktime + = hourFormat12 (utc); clktime + = ":"; jika (minit (utc)

Disyorkan: