Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Matriks LED Jam NTP dengan DS3231, BME280, BH1750 &ESP01

Komponen dan persediaan

Arduino Nano R3
× 1
Modul Periferal DS3231MPMB1 Terintegrasi Maxim
Yang murah di Ebay, dengan resistor dilepas untuk menghentikan baterai meledak
× 1
SparkFun Atmospheric Sensor Breakout - BME280
Yang murah dari Ebay
× 1
Sensor Cahaya BH1750
Dari Ebay
× 1
Max7219 32x8 LED Matrix
× 1
Kapasitor 10 F
× 2
Espressif ESP8266 ESP-01
Opsional jika Anda ingin mengatur waktu melalui NTP
× 1
LM3940IT3.3
Regulator LDO 3.3v untuk ESP01
× 1
Papan Penggeser Level SparkFun
Diperlukan oleh ESP01
× 1

Tentang proyek ini

Inilah yang membuat saya masuk ke Arduino. Saya menemukan Jam Kata LED Nick, dan berpikir saya ingin membuatnya.

Sejak mengunduh kodenya, saya telah memodifikasinya untuk menyertakan sensor dan tombol tambahan serta menambahkan ESP01.

BH1750 digunakan untuk meredupkan layar secara otomatis, tergantung pada kondisi cahaya, dan dapat mematikan layar di malam hari. BME280 menunjukkan suhu, kelembaban dan tekanan. ESP01 digunakan untuk mendapatkan waktu dari pool.ntp.org.

Tombol tambahan ada untuk memudahkan penyesuaian pengaturan. Anda dapat menyesuaikan setelan sensor cahaya menggunakan tombol, serta mengubah font dan setelan NTP/DST/UTC.

Enam font baru telah ditambahkan, saya membuat font menggunakan:http://dotmatrixtool.com/.

Saya telah membuat sedikit perubahan pada jam kata, sekarang memiliki lebih banyak kata dan telah pindah sedikit ke PROGMEM untuk menghemat RAM.

Halaman proyek Nick:https://123led.wordpress.com/mini-led-clock/

Kode saya:https://github.com/Ratti3/miniclock

Kodenya sekarang sudah lengkap, terlepas dari bug yang tidak diketahui dan tweak di sana-sini, saya akan membuat kasus untuk itu.

Anda perlu menyesuaikan kode sensor cahaya agar sesuai dengan kondisi cahaya Anda, saya mengkodekannya saat sinar matahari cerah berada di samping jendela.

Sebuah ESP01 digunakan untuk mendapatkan waktu melalui NTP, ESP01 dikodekan untuk tidur (wifi mati) saat tidak diperlukan, dan dibangunkan melalui serial untuk mendapatkan waktu dalam format UNIX. Nama SSID dan kata sandi diteruskan melalui kode Arduino untuk kemudahan.

Versi ini juga memiliki perhitungan DST/UTC dan BST. Pengaturan ini dapat disesuaikan atau dinonaktifkan melalui menu.

Pengaturan disimpan ke EEPROM, ini berarti jika Anda mematikan dan menghidupkan kembali perubahan yang dilakukan melalui menu akan disimpan.

Ini adalah file kode di Github:

Kode di Github [https://github.com/Ratti3/miniclock]:Arduino LEDClock32x8.ino ProgmemData.hArduino ESP-01_NTP.ino LEDClock32x8_ESP01-NTP.ino ProgmemData.h 

Saat ESP01 sedang berjalan, Serial Arduino akan menampilkan ini:

Arduino :Mengirim permintaan NTP ke ESP01ESP01 :Permintaan NTP diterima dari Arduino[usaha 1 dari 3]Menghubungkan ke SSID:TheInternets....connectedSSID:TheInternets, Alamat IP:192.168.0.135Kekuatan Sinyal (RSSI):-42 dBmMengirim paket NTP ke:195.195.221.100 [percobaan 1]Mengirim paket NTP ke:195.195.221.100 [percobaan 2]UNIX1562848457Menonaktifkan WiFi....ok 

Lebih banyak gambar dan instruksi akan datang...

Menyatukan semuanya:

Pengkabelan:

DS3231, BH1750 dan BME280:PIN SCL =A5 PIN SDA =A4 VCC =3.3vLED Matriks:CLK =D11 CS =D10 DIN =D12 VCC =5vSwitch:D2 - Menu D3 - Tanggal / + D4 - Temp / - D5 - Opsi tampilanESP01 - Opsional D7 - Pin TX dari ESP01 D6 - Pin RX dari ESP01 

Ini adalah variabel global yang dapat Anda ubah:

// Variabel global (default yang dapat diubah), angka dalam kurung [] adalah lokasi penyimpanan EEPROM untuk nilai tersebut// Pengaturan jam// [200] Intensitas/kecerahan default (0-15), dapat diatur melalui intensitas menubyte =2;// [201] Mode jam default. Default =0 (basic_mode)byte clock_mode =0; // [206] Tentukan mode acak - mengubah jenis tampilan setiap beberapa jam. Default =0 (mati)bool random_mode =0; // [207] Tentukan mode acak font - mengubah font setiap beberapa jam. 1 =font acak onbool random_font_mode =0; // [208] Tentukan waktu 12 atau 24 jam. 0 =24 jam. 1 =12 jam air amp =0; // Pengaturan cahaya// [202] Mode hidup/mati tampilan default, digunakan oleh sensor cahaya. 0 =normal, 1 =selalu aktif, 2 - selalu nonaktif, 3 - 5 =ditentukan oleh hour_off_1,2,3byte display_mode =5; // [209] Pengaturan intensitas cahaya otomatis defaultbool auto_intensity =1; // Ketiganya menentukan sensor cahaya jam yang dapat mematikan tampilan jika cukup gelap, formatnya adalah 24 jam, rutin untuk // ini memeriksa antara 8.00 dan salah satu dari nilai-nilai ini byte hour_off_1 =21; byte jam_off_2 =22; byte hour_off_3 =23;// Pengaturan font - ini diatur melalui menu pengaturan Font, lihat rutin set_font_case() untuk semua nilai default:// [203] Jam default font besar stylebyte font_style =2; // [204] Jam default besar font offset adjustmentbyte font_offset =1; // [205] Jam default, kolom font besar, adjustmentbyte font_cols =6; // Pengaturan DST NTP dan UTC// [210] Mengaktifkan fungsi DST, 1 =mengaktifkan, 0 =menonaktifkanbool dst_mode =1; // [211] Aktifkan fungsi NTP, 1 =aktifkan, 0 =nonaktifkanbool ntp_mode =1; // Jumlah detik untuk menyesuaikan nilai NTP sebelum menerapkan ke DS3231, membutuhkan beberapa ratus milidetik untuk memproses byte data ESP01 ntp_adjust =1; // [213] penyesuaian offset UTC, hoursint8_t utc_offset =0; // Waktu sinkronisasi NTP/DST harian terjadi, harus dibiarkan pada jam 2 pagi jika menggunakan modebyte DST ntp_dst_hour =2; // Jumlah waktu untuk mencoba kembali permintaan NTP 1 =35 detik (ish) secara total, nilai 1 - 9byte ntp_max_retry =3; // Digunakan untuk menghitung kapan harus keluar dari ntp() saat tidak menerima data, nilai dalam detik, dikalikan dengan ntp_max_retrybyte ntp_timeout =45; // Konstanta global - SSID dan kata sandi untuk WiFi, diteruskan ke ESP01 melalui SoftwareSerial// Gabungan SSID dan panjang kata sandi tidak boleh melebihi 72 karakter// Panjang nama SSID Anda, misalnya SSID =MyWifi, ssid_len =6const byte ssid_len =8; // Nama SSID Anda, misalnya MyWificonst char ssid[] ="YourSSID"; // Panjang kata sandi SSID Anda, misalnya kata sandi =kata sandi, pass_len =8const byte pass_len =12; // Kata sandi SSID Anda, misalnya passwordconst char pass[] ="YourPassword";  

Kode

Github Ratti3
https://github.com/Ratti3/miniclock

Skema

Tidak ada BH1750, terhubung dengan cara yang sama seperti BME280

Proses manufaktur

  1. Jam Arduino dengan waktu sholat Islam
  2. Arduino dengan Bluetooth untuk Mengontrol LED!
  3. Jam POV LED Gaya Analog
  4. Lampu Matriks LED Lem Panas
  5. Kontrol LED Anda dengan Cortana
  6. Matriks LED Tunggal Arduino Flip Clock
  7. Mengontrol Matriks LED dengan Arduino Uno
  8. Jam murah dan akurat berdasarkan GPS
  9. Matriks yang Dikendalikan Bluetooth Arduino dengan Teks Bergulir
  10. Jam Alarm Sederhana dengan DS1302 RTC