Daftar Isi:

Jam Pasang dan Cuaca: 9 Langkah (dengan Gambar)
Jam Pasang dan Cuaca: 9 Langkah (dengan Gambar)

Video: Jam Pasang dan Cuaca: 9 Langkah (dengan Gambar)

Video: Jam Pasang dan Cuaca: 9 Langkah (dengan Gambar)
Video: cara menampilkan jam dan prakiraan cuaca di layar utama 2024, November
Anonim
Jam Pasang dan Cuaca
Jam Pasang dan Cuaca

Meskipun Anda dapat membeli jam pasang analog yang memiliki satu tangan yang menunjukkan apakah air pasang tinggi atau rendah atau di suatu tempat di antaranya, yang saya inginkan adalah sesuatu yang akan memberi tahu saya jam berapa air surut. Saya menginginkan sesuatu yang dapat saya lihat dengan cepat tanpa harus menyalakannya, atau menekan tombol apa pun, atau menunggu. Dan saya menginginkan sesuatu dengan daya tahan baterai yang lama. Jadi saya menggunakan papan TTGO T5, yang merupakan papan berbasis ESP32 dengan layar e-paper 2,13 , terhubung ke chip TTL5110. TPL5110 menyalakan T5 setiap 2,5 jam, dan sekali sehari T5 mengunduh data pasang surut dari NOAA dan data cuaca dari OpenWeatherMap, menampilkan data pada e-paper, kemudian memberitahu TPL5110 untuk mematikan T5.

UPDATE (Feb 25, 2020) Jam Pasang telah berjalan selama satu tahun sekarang, dan baterai berada pada 4,00 volt, sehingga jam tersebut dapat berjalan selama bertahun-tahun.

Langkah 1: Daftar Perangkat Keras

Papan TTGO T5 $17

Papan Adafruit TPL5110 $5

Adafruit Perma-Proto Quarter-size board (opsional) $0.71 (minimum order $8.50)

Baterai Li-Poly 1200 mAh $10 (atau sumber daya lain yang sesuai)

Kabel 2-Pin JST PH – Header Pria $0,75

220 uF kapasitor

Langkah 2: Alat

Besi solder

penari telanjang kawat

Pengisi daya baterai Li-Po, seperti ini.

Langkah 3: Merakit Perangkat Keras

Merakit Perangkat Keras
Merakit Perangkat Keras
Merakit Perangkat Keras
Merakit Perangkat Keras
Merakit Perangkat Keras
Merakit Perangkat Keras

Merakit perangkat keras cukup sederhana seperti yang ditunjukkan skema. Saya menggunakan papan Adafruit Perma-proto yang seperti papan proto biasa kecuali ditata seperti papan tempat memotong roti, dengan sambungan listrik yang sama dengan papan tempat memotong roti, yang bagus. Karena saya hanya membutuhkan beberapa sambungan, dan ingin memasukkan seluruh rakitan ke dalam kotak kecil, saya memotong salah satu papan menjadi empat bagian dengan roda pemotong Dremel.

Kapasitor 220 uF sangat penting. Tanpa itu, TPL5110 tidak akan pernah menghidupkan T5. Sedikit tidak jelas mengapa, tetapi orang lain yang menggunakan TPL5110 memiliki masalah yang sama. Mungkin ESP32 menarik lebih banyak arus saat startup daripada yang dapat disediakan oleh TTL5110?

Jangan memasang kabel baterai. Gunakan kabel JST-PH sehingga Anda dapat melepas baterai untuk mengisinya. Mungkin ada cara untuk mengisi baterai dari T5 kembali melalui TPL5110 jika TPL5110 "aktif", tetapi saya tidak dapat menjamin teknik itu.

Saya membuat kotak kayu sebagai penutup, tetapi apa pun dengan dimensi interior minimum 1,5" x 2,75" x 1" akan berfungsi.

Langkah 4: Atur Waktunya

Papan TPL5110 memiliki potensiometer trim yang mengatur interval waktu di mana TPL5110 bangun. Gunakan obeng kecil untuk memutarnya berlawanan arah jarum jam. Di papan saya, ini mengatur interval ke 145 menit, yang sebenarnya lebih dari maksimum 120 menit yang ditentukan, tetapi bekerja dan konsisten dan akan menghemat lebih banyak daya daripada bangun setiap 120 menit, jadi saya menggunakannya. Anda tidak perlu mengetahui intervalnya dengan tepat, karena tujuannya hanya untuk mendownload data kira-kira sekali sehari kira-kira sekitar jam 4 pagi. Anda dapat menentukan interval (mis., 145 menit) dan waktu bangun (mis., 4am) di env_config.h.

(Jika Anda ingin kontrol waktu yang lebih baik untuk beberapa proyek lain, papan TPL5110 memiliki jejak di bagian belakang yang dapat Anda potong untuk menonaktifkan potensiometer. Kemudian Anda memasang resistor ke pin Penundaan, dan resistansi menentukan interval, menurut grafik ini.)

Langkah 5: Perangkat Lunak

Anda akan membutuhkan Arduino IDE dengan paket ESP32. Di IDE, atur papan Anda ke "ESP32 Dev Module".

Sketsa tersedia di https://github.com/jasonful/Tides dan membutuhkan 3 perpustakaan:

  1. "ESP8266 Weather Station", tersedia dari Arduino Library Manager (atau di sini). Anda hanya memerlukan 6 file ini: ESPHTTPClient.h, ESPWiFi.h, OpenWeatherMapCurrent.cpp, OpenWeatherMapCurrent.h, OpenWeatherMapForecast.cpp, OpenWeatherMapForecast.h dan dapat menghapus sisanya.
  2. "Json Streaming Parser" tersedia dari Arduino Library Manager (atau di sini)
  3. https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo Meskipun kode tersebut tidak dikemas sebagai perpustakaan yang sebenarnya, Anda dapat menyalinnya di bawah direktori perpustakaan Anda dan sertakan dia.

Langkah 6: Konfigurasikan Perangkat Lunak

Ada beberapa parameter yang harus Anda atur (dan beberapa yang mungkin ingin Anda atur) di file env_config.h, termasuk:

  • SSID dan kata sandi WiFi
  • ID stasiun NOAA (dengan kata lain, di mana Anda berada)
  • OpenWeatherMap AppID, yang harus Anda daftarkan (mudah dan gratis)
  • OpenWeatherMap LocationID (sekali lagi, di mana Anda)
  • CONFIG_USE_TPL5110, yang memungkinkan Anda menggunakan T5 tanpa TPL5110. Sebagai gantinya, perangkat lunak akan memasuki mode tidur nyenyak. Papan T5 menarik sekitar 8 ma dalam tidur nyenyak, jadi saya hanya berharap baterai bertahan beberapa hari.

Langkah 7: Bagaimana Perangkat Lunak Bekerja

(Anda dapat melewati bagian ini jika Anda tidak peduli.)

Tujuannya adalah untuk bangun sekali sehari, tetapi karena interval maksimum TPL5110 hanya sekitar 2 jam, T5 harus bangun lebih sering. Jadi, setelah mengunduh data pasang surut dan cuaca, ia menghitung berapa banyak interval 2 jam ini antara sekarang dan 4:00 pagi besok pagi. Ini sedikit rumit oleh fakta bahwa TPL5110 benar-benar memotong daya ke T5, yang bagus untuk baterai, tetapi itu berarti kita kehilangan RAM dan jam waktu nyata. Ini seperti bangun setiap pagi dengan amnesia. Jadi untuk mengetahui jam berapa sekarang, ia mengekstraknya dari header HTTP NOAA. Dan untuk mengingat berapa banyak interval 2 jam yang tersisa, ia menulis bahwa counter untuk penyimpanan non-volatile (flash). Setiap kali bangun, ia memeriksa penghitung itu, menguranginya, menyimpannya, dan jika lebih besar dari nol, ia segera mengirimkan sinyal ke TPL51110 ("Selesai") menyuruhnya untuk tidur. Ketika penghitung mencapai nol, kode mengunduh data baru, dan menghitung ulang serta mengatur ulang penghitung.

Langkah 8: Jalankan Ini

Menjalankannya
Menjalankannya

Pastikan sakelar di sisi kiri T5 dalam posisi atas (on), unggah sketsa ke T5, dan dalam beberapa detik layar akan diperbarui dengan info pasang surut dan cuaca.

Jika Anda perlu men-debug perangkat lunak, ubah "#define DEBUG 0" di bagian atas Tides.ino menjadi "#define DEBUG 1". Ini akan mengaktifkan output debug serial, dan juga menampilkan di bagian bawah e-paper jumlah restart yang tersisa sebelum mengunduh data baru, dan waktu terakhir mengunduh data.

Langkah 9: Arah Masa Depan

  1. Penggunaan TPL5110 yang dikombinasikan dengan tampilan e-paper adalah cara yang bagus untuk menampilkan data apa pun yang tidak sering berubah, dengan daya tahan baterai yang sangat baik.
  2. Ketika saya mendesain ini, saya mempertimbangkan untuk menggunakan TrigBoard, yang merupakan papan ESP8266 dengan papan TPL5111. Itu akan membutuhkan tampilan e-paper terpisah dan papan driver e-paper seperti ini atau ini. Atau kombo driver+papan seperti ini atau ini. Untuk mem-port kode ke ESP8266, saya pikir kode SSL harus menggunakan sidik jari alih-alih sertifikat, dan kode penyimpanan non-volatil perlu menggunakan memori EEPROM atau RTC.
  3. Saya baru-baru ini mendengar bahwa papan Lolin32 cukup baik dalam mode tidur nyenyak: sekitar 100uA. Tidak sebagus papan TPL51110 (20uA menurut Adafruit) tapi cukup bagus.
  4. OpenWeatherMap mengembalikan lebih banyak data cuaca daripada yang saya tampilkan. Termasuk id ikon, yang memerlukan pencarian ikon monokrom di suatu tempat.

Direkomendasikan: