Isi kandungan:

ESP8266 NodeMCU Dengan Tolok & Carta BME280: 5 Langkah
ESP8266 NodeMCU Dengan Tolok & Carta BME280: 5 Langkah

Video: ESP8266 NodeMCU Dengan Tolok & Carta BME280: 5 Langkah

Video: ESP8266 NodeMCU Dengan Tolok & Carta BME280: 5 Langkah
Video: Measure Temperature and Humidity WiFi with ESP32 DHT11 and DHT22 - Robojax 2024, September
Anonim
ESP8266 NodeMCU Dengan Tolok & Carta BME280
ESP8266 NodeMCU Dengan Tolok & Carta BME280
ESP8266 NodeMCU Dengan Tolok & Carta BME280
ESP8266 NodeMCU Dengan Tolok & Carta BME280

Tolok dan Carta Mewah untuk papan Pembangunan NodeMCU ESP8266 anda dengan sensor Suhu, Kelembapan dan Tekanan BME280. Thingspeak akan menyimpan semua data anda di awan untuk diambil pada bila-bila masa selama bertahun-tahun (semoga) akan datang. Alat pengukur dan carta diisi dari data yang disimpan di thingspeak dan dikemas kini secara automatik setiap 5 minuet.

Item yang diperlukan:

Lembaga Pembangunan NodeMCU ESP8266 ($ 3,79 dari Banggood.com Hong Kong)

Bosch BME280 ($ 5.63 dari Banggood.com Hong Kong)

Pelompat Breadboard ($ 3.09 dari Banggood.com Hong Kong)

Papan Roti ($ 2.28 dari Banggood.com Hong Kong)

Bekalan Kuasa, Percuma jika anda mempunyai pengecas telefon USB mikro

Kabel USB mikro, Percuma jika anda sudah memilikinya

Arduino IDE, Muat turun Percuma

Dapatkan fail kod.ino &. HTML di sini

Langkah 1: Buat & Siapkan Saluran Thingspeak Anda

Buat & Sediakan Saluran Perkara Bicara Anda
Buat & Sediakan Saluran Perkara Bicara Anda

1. Buat akaun Thingspeak percuma dan saluran baru di https://thingspeak.com, Hubungi saluran "ESP8266-NodeMCU-12E-BME280"

2. Saluran baru harus mempunyai 3 bidang bernama Suhu Kelembapan Tekanan dalam urutan tertentu (Catatan huruf besar huruf besar).

3. Perhatikan "saluran ID" XXXXXX baru anda di bawah "Tetapan Saluran"

4. Klik pautan "Kunci API" dan perhatikan "Tulis API" dan "Kunci API Baca" anda XXXXXXXXXXXXXXX. Juga, jadikan ini sebagai saluran awam di bawah perkongsian.

5. Buat saluran Thingspeak kedua yang akan memuatkan "Hari Ini" (sejak tengah malam) data Rendah Tinggi. Sebut saja "Data Rendah Tinggi Harian BME280"

6. Saluran baru ini harus mempunyai 6 medan bernama Tmax Tmin Hmax Hmin Pmax Pmin dalam urutan khusus itu (Nota huruf besar Huruf Pertama).

7. Perhatikan ID saluran "Data Rendah Tinggi Harian BME280" "," Baca "&" Tulis kekunci API "seperti pada langkah di atas.

Langkah 2: Siapkan Arduino IDE, Perpustakaan dan Konfigurasikan BME280

Siapkan Arduino IDE, Perpustakaan dan Konfigurasikan BME280
Siapkan Arduino IDE, Perpustakaan dan Konfigurasikan BME280

8. Ikuti arahan untuk memasang teras Arduino IDE & ESP8266 di

9. Nyalakan Arduino IDE sehingga kami dapat memasang empat perpustakaan yang kami perlukan.

10. Anda memerlukan perpustakaan "Adafruit Unified Sensor Driver", memasangnya di "Library Manager" di Arduino IDE. Sketsa Menu Sertakan Perpustakaan Kelola Perpustakaan melakukan carian mengikut Jenis = "Disarankan" Topik = "Sensor" kemudian masukkan kata-kata Adafruit Unified Sensor Driver di kotak carian. Yang anda mahukan mengatakan "Adafruit Unified Sensor Driver by Adafruit"

11. Di samping itu, anda juga memerlukan "Adafruit BME280 Library" memasangnya di "Library Manager" di Arduino IDE. Sketsa Menu Sertakan Perpustakaan Kelola Perpustakaan melakukan carian mengikut Jenis = "Disarankan" Topik = "Sensor" kemudian letakkan kata-kata Adafruit BME280 Library di kotak carian. Yang anda mahukan mengatakan "Adafruit BME280 Library by Adafruit"

12. Perpustakaan lain yang anda perlukan adalah Wire.h, pasangkannya di "Library Manager" di Arduino IDE. Menu, Sketsa Sertakan Perpustakaan Menguruskan Perpustakaan Lakukan carian mengikut Jenis = "Disumbang" Topik = "Input / Output Isyarat" kemudian masukkan perkataan Wire di kotak carian. Yang anda mahukan mengatakan "Wire Built-in by Arduino" Kemungkinan besar di bahagian bawah pilihan.

13. Satu lagi perpustakaan, ESP8266WiFi, pasangkannya di "Library Manager" di Arduino IDE. Menu, Sketsa Sertakan Perpustakaan Menguruskan Perpustakaan Lakukan carian mengikut Jenis = "Disumbang" Topik = "Komunikasi" kemudian masukkan kata ESP8266wifi di kotak carian. Yang anda mahukan mengatakan "ESP8266wifi Built-in oleh Ivan Grokhotkov"

14. Alamat I2C untuk BME280 dikodekan keras dalam fail Adafruit_BME280.h (cari baris #define BME280_ADDRESS 0x77) di dalam folder Adafruit_BME280_Library. Modul sensor BME Adafruit berwayar keras untuk menggunakan alamat I2C 0x77. Tetapi BME280 boleh mempunyai alamat I2C yang sedikit berbeza (0x76) jika pin SDO luarannya dibumikan. Sekiranya anda menggunakan modul sensor dari pihak ketiga, kemungkinan alamatnya tidak sesuai dengan nilai lalai di perpustakaan Adafruit. Sebagai contoh, untuk kebanyakan modul sensor BME280 yang terdapat di eBay atau Aliexpress mempunyai alamat I2C mereka menjadi 0x76. Sekiranya anda tidak mendapat respons dari sensor menggunakan alamat lalai yang ditetapkan dalam fail Adafruit_BME280.h, anda mungkin perlu mengubahnya menjadi 0x76.

Titik Sambungan BME280 & ESP8266. ESP8266 3.3V hingga BME280 Vin, ESP8266 GND hingga BME280 GND, ESP8266 D4 hingga BME280 SCL, ESP8266 D3 hingga BME280 SDA. 15. Buka fail ESP8266-NodeMCU-12E-BME280.html yang disediakan dalam editor teks dan masukkan "ESP8266-NodeMCU-12E-BME280" (Saluran pertama yang anda buat) "Saluran ID" & "Baca API Kunci" untuk pemboleh ubah key1 & chan1. Masukkan juga "Baca API Key" dan "Channel ID" untuk "BME280 Daily High Low Data" (Saluran kedua yang anda buat) untuk key2 dan chan2. Di samping itu, masukkan pengimbangan zon waktu anda dari UTC. Seperti dalam -5 untuk saya. Semua nilai mesti ada di dalam petikan tunggal yang disediakan 'XXXXX'. Simpan dan keluar dari penyunting teks.

Pasangkan ESP8266 anda dengan kabel USB ke komputer anda kemudian pilih port bersiri anda untuk menjadi port USB.

Pengguna Linux mungkin perlu mengubah kepemilikan port USB untuk berkomunikasi dengan / dev / ttyUSB0 seperti dalam 'sudo chown yourusername / dev / ttyUSB0' atau apa sahaja yang anda pilih sebagai port anda dalam persediaan.

Langkah 3: Program ESP8266 Dengan Arduino IDE

Program ESP8266 Dengan Arduino IDE
Program ESP8266 Dengan Arduino IDE

16. Seterusnya kita akan memprogram ESP8266. Sambungkan kabel USB antara ESP8266 dan komputer anda.

Muatkan fail New_BME_Sensor.ino yang disediakan ke Arduino IDE. Sensor BME280 anda harus disambungkan ke D3 (SDA) & D4 (SCL) pada ESP8266. Masukkan "ESP8266-NodeMCU-12E-BME280" (Saluran pertama yang anda buat) "Tulis Kunci" "SSID Tanpa Wayar" & "Kata Laluan" ke bahagian lakaran yang betul. Kemudian klik item menu "Sketch" & "Upload". Selepas anda memuat naik lakaran (Kemajuan mencapai 100%) ke ESP8266, anda boleh membuka monitor bersiri (Ikon kanan atas kelihatan seperti kaca pembesar) dan melihat data anda dicetak selepas 5 Minit, setiap 5 Minit. Data dihantar ke thingspeak pada selang 5 minit sehingga akan ada beberapa saat sebelum anda mempunyai data carta yang bermakna tetapi anda harus mempunyai bacaan ukuran setelah 5 min.

Pastikan anda mendapat bacaan yang betul dari BME280 di monitor bersiri.

Pengukuran pertama kemungkinan menjadi nan tidak sah.

Tunggu beberapa minuet hingga bacaan seterusnya dan sahkan bacaannya bagus.

Langkah 4: Kembali ke Thingspeak untuk Melakukan Penyesuaian Data

Kembali ke Thingspeak untuk Melakukan Penyesuaian Data
Kembali ke Thingspeak untuk Melakukan Penyesuaian Data

17. Sekarang, sementara data perlahan-lahan memuat naik ke thingspeak memungkinkan kita melakukan tweak untuk mendapatkan beberapa data tambahan dari apa yang dimuat naik. Kembali ke laman web thingspeak dan di halaman saluran Thingspeak "BME280 Daily Low Low Data" (Saluran kedua yang anda buat) klik butang hijau "MATLAB Analysis". Pilih Templat "Custom (No Starter Code)"

18. Namakan Analisis MATLAB "Hitung Min Max Sejak Tengah Malam".

19. Salin kod MATLAB Analysis.txt ke ruang yang disediakan. Masukkan "ID saluran" untuk "ESP8266-NodeMCU-12E-BME280" (Saluran pertama yang anda buat) ke dalam "readChannelID". Masukkan "Data Rendah Tinggi Harian BME280" (Saluran kedua yang anda buat) Tulis "ID Saluran" & "Kunci Tulis" ke dalam tulisNewChannelID & tulisAPIKey dengan hormat. Saya tahu kedengarannya membingungkan (baca lagi). Klik simpan dan jalankan. Sekiranya anda melakukannya dengan betul dan saluran yang dibaca adalah umum, anda tidak akan melihat kesilapan dan berjaya mencetak nilainya. Perhatikan, Anda mungkin melihat ralat jika belum ada data yang diunggah ke saluran tersebut. Walaupun kesalahan tetap berlaku. Sekiranya dikehendaki, anda boleh melihat semula Klik simpan dan jalankan untuk memastikannya berfungsi setelah data dimuat naik.

20. Seterusnya, kita perlu membuat "Time Control" untuk mengaktifkan kod ini setiap 5 min dan data kita ditulis ke saluran "BME280 Daily High Low Data" (Saluran kedua yang anda buat). Dari halaman utama "Data Rendah Tinggi Harian BME280" (Saluran kedua yang anda buat) pilih Aplikasi di bahagian atas. Di bawah tindakan pilih "TimeControl" kemudian butang Hijau "New TimeControl". Namakannya "Kirim Suhu Rendah Tinggi ESP8266". Pilih zon waktu anda jika diperlukan dan pilih "Berulang" di bawah Kekerapan. Pilih Minit di bawah Berulang. Dijalankan setiap 5 Minit. Tindakan haruslah Analisis MATLAB dan "Code to Execute" adalah "Hitung Min Max Sejak Tengah Malam". Jimat Masa Kawalan.

Langkah 5: Edit Fail HTML yang Disediakan

Edit Fail HTML yang Disediakan
Edit Fail HTML yang Disediakan

Edit fail HTML dan cari komen yang bertuliskan "******** Change Me 1 of 8 *********" Ubah ini mengikut pilihan anda.

Catatan:

Sebilangan medan teks dan carta mingguan tidak akan terisi dengan betul sehingga anda mempunyai data sepanjang hari dan seminggu penuh untuk bahagian dan carta 24 Jam dan Minggu. Sebaik sahaja anda mempunyai banyak data, anda boleh memperbesar carta dengan roda tetikus (Klik Kanan untuk Reset). Anda juga boleh mempunyai alat pengukur keempat (seperti yang dilihat dalam tangkapan skrin) dari sensor lain dari saluran lain tetapi saya telah memulakan bahagian yang berkaitan. Sekiranya anda merasa bijak, sambungkannya. Terdapat juga beberapa masalah masa yang perlu diberi perhatian. Anda mungkin tidak akan mempunyai data terkini mutlak, tetapi data tersebut mestilah kurang dari 5 Minit. Ini berasal dari saat pengendalian waktu dipecat, Ketika data dikirim dari ESP8266 dan ketika Anda memuat / menyegarkan halaman web.

Buka fail ESP8266-NodeMCU-12E-BME280.html yang disediakan di penyemak imbas web anda dan anda akan melihat alat pengukur dan carta diisi.

Dapatkan fail kod.ino &. HTML di sini

Disyorkan: