Suatu kali, duduk di kantor dan merasa tidak nyaman bernafas, saya memutuskan untuk memasang meteran CO2.
Setelah mempelajari beberapa artikel tentang topik ini, ia merumuskan persyaratan untuk perangkat tersebut.
- Perangkat harus dengan layar, karena harus perangkat portabel.
- Perangkat tidak boleh tergantung pada Internet karena alasan yang sama.
- Perangkat harus dapat mencatat nilai dari waktu ke waktu, yang nyaman untuk dilihat kapan saja. Dan ini berarti ia harus memiliki server web sendiri dan titik Wi-Fi sendiri.
Item terakhir secara ambigu mengarah pada input bahwa perangkat akan berada pada ESP. Karena saya tidak memerlukan kinerja tinggi, saya memilih opsi termurah - yaitu ESP8266, 07. Di rumah, salinan dengan memori 1 mb tergeletak begitu saja.
Saya memesan suku cadang yang hilang untuk aliexpress, dan mereka adalah:
- Layar Oled 96x64 SSD1331.
- Sensor CO2 MH-Z19B.
- Modul DS1307 RTC.
Setelah menerima rincian, ia mulai mengembangkan sirkuit menggunakan KiCad.
Saya harus mengatakan segera - semua sumber akan berada di akhir artikel dan, setelah berkumpul sesuai dengan skema, mengunggah firmware, mereka harus mendapatkan perangkat yang berfungsi penuh.
Skema keluar seperti ini:

Saya memutuskan untuk membuat modul yang bisa dilepas, jadi tidak ada modul di sirkuit, tetapi hanya konektor untuk mereka.
Saya menyebarkan papan:

Setelah membuat papan sirkuit cetak dan menyolder, berikut ini keluar:


Dalam perakitan dan dalam pekerjaan itu terlihat seperti ini:

Sekarang tentang bagian perangkat lunak.
Kode tersebut ditulis dalam Arduine IDE, karena saya bukan seorang programmer, dan saya tidak ingin memahami perpustakaan di studio visual atau di mana pun.
Pada prinsipnya, saya menggunakan kode untuk modul di perangkat dari contoh perpustakaan dan dari Internet, jadi saya tidak akan memikirkannya. Siapa yang mau - mudah mengerti sketsa.
Tetapi ternyata tidak sesederhana itu menerapkan tampilan dan menampilkan statistik tepat waktu.
Saya menginginkannya seperti ini: dari ponsel atau laptop, semudah mungkin terhubung ke perangkat, melalui peramban HTML buka halaman data dan melihatnya dalam grafik waktu.
Pertama, di ESP, membuat jalur akses tanpa kata sandi dan otentikasi.
Yang kedua - menciptakan array data di mana saya menulis data CO2 dan waktu akuisisi data (untuk ini, pada kenyataannya, saya mengatur jam di perangkat.
Ketiga, saya mengatur server HTTP dan beberapa halaman HTML, di mana saya mengeluarkan data.
Keempat - Java Script untuk menggambar grafik pada halaman ditulis ke sistem file ESP.
Karena output grafik hanya dimungkinkan dengan bantuan Java Script, maka, setelah percobaan panjang, item keempat diimplementasikan seperti ini: skrip Chart.js paling sederhana ditulis sebagai file ke sistem file SPIFFS ESP, yang meminta halaman menampilkan hasilnya.
Secara umum, menyalakan perangkat, pada tampilan setiap 10 -15 detik pembacaan sensor baru ditampilkan, dan setiap 8 menit pembacaan sensor saat ini dicatat dalam array data.
Setelah beberapa waktu, ingin menganalisis pembacaan dalam waktu, Anda terhubung melalui ponsel atau laptop ke titik Wi-Fi "CO2", setelah menghubungkan mulai browser Internet dan masukkan alamat IP "10.10.10.1" di bilah pencarian. Anda sampai ke halaman:

Ada tombol untuk pergi ke halaman tampilan data dan tombol untuk pergi ke halaman pengaturan waktu (karena waktu kadang-kadang hilang, dan itu hanya hilang ketika baterai diganti).
Halaman output data terlihat seperti ini:
Arsipkan dengan sumber di sini.Arsip berisi sketsa, Java Script, proyek Kicad, cetak dalam format Photoshop dalam resolusi 600dpi, jika Anda tidak ingin mengacaukan Kicad.
Cara mengkonfigurasi ide Adruino untuk firmware ESP dan cara mengunggah file ke SPIFS dapat dengan mudah ditemukan di Internet.
Untuk firmware ESP, Anda harus melepaskan sensor CO2, karena tergantung pada TX0 dan RX0, yang diperlukan untuk firmware. Juga, saya menandatangani yang sebaliknya pada papan data baris, sehingga saya menghubungkan TX dari flasher ke TX di papan tulis, dll.