Isi kandungan:

Stesen Cuaca WiFi ESP32 Dengan Sensor BME280: 7 Langkah (dengan Gambar)
Stesen Cuaca WiFi ESP32 Dengan Sensor BME280: 7 Langkah (dengan Gambar)

Video: Stesen Cuaca WiFi ESP32 Dengan Sensor BME280: 7 Langkah (dengan Gambar)

Video: Stesen Cuaca WiFi ESP32 Dengan Sensor BME280: 7 Langkah (dengan Gambar)
Video: ESP32 Web Server Tutorial with a BME280 Sensor 2024, Julai
Anonim
Image
Image
Stesen Cuaca WiFi ESP32 Dengan Sensor BME280
Stesen Cuaca WiFi ESP32 Dengan Sensor BME280
Stesen Cuaca WiFi ESP32 Dengan Sensor BME280
Stesen Cuaca WiFi ESP32 Dengan Sensor BME280

Rakan-rakan yang dihormati selamat datang ke tutorial lain! Dalam tutorial ini kita akan membina projek stesen cuaca dengan wiFi! Kami akan menggunakan cip ESP32 baru yang mengagumkan untuk pertama kalinya bersama dengan paparan Nextion.

Dalam video ini, kita akan membuat ini. Ini satu lagi projek stesen cuaca yang saya tahu, tetapi kali ini kita menggunakan cip ESP32 baru! Kami juga menggunakan sensor BME280 baru yang mengukur suhu, kelembapan, dan tekanan barometrik. Apabila kami menghidupkan projek, projek ini akan menghubungkan ke rangkaian WiFi, dan akan mengambil semula ramalan cuaca untuk lokasi saya dari laman web openweathermap. Kemudian ia akan memaparkan ramalan pada 3.2 inci Nextion Touch Display ini bersamaan dengan bacaan dari sensor! Pembacaan dikemas kini setiap dua saat dan ramalan cuaca setiap jam! Seperti yang anda lihat, dalam projek ini kami menggunakan teknologi terkini yang ada pada pembuatnya hari ini! Sekiranya anda seorang veteran DIY, anda boleh membina projek ini dalam lima minit.

Sekiranya anda seorang pemula, anda mesti menonton beberapa video sebelum mencuba projek ini. Anda boleh mendapatkan pautan ke video ini di Instructable ini, jangan risau.

Mari mulakan!

Langkah 1: Dapatkan Semua Bahagian

Dapatkan Semua Bahagian
Dapatkan Semua Bahagian

Untuk membina projek ini, kami memerlukan bahagian-bahagian berikut:

  • Lembaga ESP32 ▶
  • Sensor BME280 I2C ▶
  • Paparan Nextion 3.2 "ed
  • Papan Roti Kecil ▶
  • Beberapa wayar ▶

Kos projek adalah sekitar 30 $.

Bukannya ESP32, kita boleh menggunakan cip ESP8266 yang lebih murah, tetapi saya memutuskan untuk menggunakan ESP32 untuk mendapatkan pengalaman dengannya dan melihat apa yang berfungsi dan apa yang tidak.

Langkah 2: ESP32

Image
Image
ESP32
ESP32

Ini adalah projek pertama yang pernah saya buat dengan cip ESP32 baru.

Sekiranya anda tidak biasa dengannya, cip ESP32 adalah penerus cip ESP8266 yang popular yang telah kami gunakan berkali-kali. ESP32 adalah binatang! Ia menawarkan dua 32 teras pemprosesan yang beroperasi pada 160MHz, sejumlah besar memori, WiFi, Bluetooth dan banyak lagi ciri lain dengan kos sekitar 7 $! Barang yang luar biasa!

Sila lihat ulasan terperinci yang telah saya sediakan untuk papan ini. Saya telah melampirkan video di Instructable ini. Ini akan membantu memahami mengapa cip ini akan mengubah cara kita membuat sesuatu selamanya!

Langkah 3: Paparan Nextion

Image
Image
Sensor BME280
Sensor BME280

Juga, ini adalah projek pertama yang saya bina dengan paparan sentuhan Nextion.

Paparan Nextion adalah jenis paparan baru. Mereka mempunyai pemproses ARM mereka sendiri di bahagian belakang yang bertanggungjawab untuk memacu paparan dan membuat antara muka pengguna grafik. Oleh itu, kita dapat menggunakannya dengan mikrokontroler apa pun dan mencapai hasil yang luar biasa.

Saya telah menyediakan Instructable terperinci mengenai paparan Nextion ini yang menerangkan secara mendalam bagaimana mereka berfungsi, bagaimana menggunakannya dan kekurangannya. Anda boleh membacanya dengan mengklik di sini:

Langkah 4: Sensor BME280

Sensor BME280
Sensor BME280

BME280 dalam sensor hebat baru dari Bosch.

Sejauh ini saya menggunakan sensor BMP180 yang dapat mengukur suhu dan tekanan barometrik. Sensor BME280 dapat mengukur suhu, kelembapan, dan tekanan barometrik! Betapa hebatnya! Kami hanya memerlukan satu sensor untuk membina stesen cuaca yang lengkap!

Selain itu, sensornya sangat kecil dan senang digunakan. Modul yang akan kita gunakan hari ini menggunakan antara muka I2C sehingga menjadikan komunikasi dengan Arduino sangat mudah. Kami hanya menyambungkan kuasa dan dua wayar lagi untuk menjadikannya berfungsi.

Sudah ada banyak perpustakaan yang dikembangkan untuk sensor ini sehingga kami dapat menggunakannya dalam projek kami dengan sangat mudah! Kos sensor adalah sekitar 5 $. Anda boleh mendapatkannya di sini ▶

CATATAN: Kami memerlukan sensor BME280. Terdapat juga sensor BMP280 yang tidak menawarkan pengukuran kelembapan. Berhati-hati untuk memerintahkan untuk mengesan yang anda perlukan.

Langkah 5: Menyambungkan Bahagian

Menyambungkan Bahagian
Menyambungkan Bahagian
Menyambungkan Bahagian
Menyambungkan Bahagian
Menyambungkan Bahagian
Menyambungkan Bahagian

Sambungan bahagiannya mudah seperti yang anda lihat dari rajah skematik.

Oleh kerana sensor BME280 menggunakan antara muka I2C, kita hanya perlu menyambungkan dua wayar untuk berkomunikasi dengan ESP32. Saya telah memasang sensor pada Pin 26 dan 27. Secara teori, setiap pin digital papan ESP32 boleh digunakan dengan periferal I2C. Walaupun dalam praktiknya, saya mendapati bahawa beberapa pin tidak berfungsi kerana ia digunakan untuk kegunaan lain. Pin 26 dan 27 berfungsi hebat!

Untuk menghantar data ke paparan, kami hanya perlu menyambungkan satu wayar ke pin TX0 ESP32. Saya terpaksa membengkokkan pin seperti ini untuk menyambungkan wayar wanita pada paparan kerana papan ESP32 terlalu besar untuk papan roti ini.

Setelah menyambungkan bahagiannya, kita harus memuatkan kod ke ESP32, dan kita harus memuatkan GUI ke paparan Nextion. Sekiranya anda menghadapi masalah memuat naik program ke papan ESP32, tahan butang BOOT setelah menekan butang muat naik di Arduino IDE.

Untuk memuatkan GUI ke paparan Nextion, salin fail WeatherStation.tft yang akan saya kongsikan kepada anda ke kad SD kosong. Masukkan kad SD ke dalam slot kad SD di bahagian belakang paparan. Kemudian hidupkan paparan, dan GUI akan dimuat. Kemudian keluarkan kad SD dan sambungkan semula kuasa.

Setelah berjaya memuatkan kod projek akan disambungkan ke rangkaian WiFi, ia akan mendapat ramalan cuaca dari laman web openweathermap.org, dan akan memaparkan bacaan dari sensor. Mari kita lihat bahagian perisian projek ini.

Langkah 6: Kod Projek

Kod Projek
Kod Projek
Kod Projek
Kod Projek
Kod Projek
Kod Projek

Untuk menguraikan data cuaca, kami memerlukan perpustakaan Arduino JSON yang sangat baik. Kami juga memerlukan perpustakaan untuk sensor.

? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:

Mari lihat kodnya sekarang.

Pada mulanya, kita harus menetapkan SSID dan kata laluan rangkaian WiFi kita. Seterusnya, kita harus memasukkan APIKEY percuma dari laman web operweathermap.org. Untuk membuat kunci API anda sendiri, anda perlu mendaftar di laman web. Mendapatkan data cuaca dan ramalan semasa adalah percuma, tetapi laman web ini menawarkan lebih banyak pilihan sekiranya anda sanggup membayar sejumlah wang. Seterusnya, kita mesti mencari id lokasi kita. Cari lokasi anda dan salin ID yang terdapat di URL lokasi anda.

Kemudian masukkan id bandar anda dalam pemboleh ubah CityID. Juga, masukkan ketinggian bandar anda dalam pemboleh ubah ini. Nilai ini diperlukan untuk bacaan tekanan barometrik yang tepat dari sensor.

const char * ssid = "yourSSID"; const char * kata laluan = "yourPassword"; String CityID = "253394"; // Sparta, Yunani Rentetan APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Ketinggian di Sparta, Greece

Sekarang kita sudah bersedia untuk terus maju.

Pada mulanya, kami menginisialisasi sensor, dan kami menyambung ke Rangkaian WiFi. Kemudian kami meminta data cuaca dari pelayan.

Kami mendapat balasan dengan data cuaca dalam format JSON. Sebelum menghantar data ke perpustakaan JSON, saya secara manual menghapus beberapa watak yang menyebabkan saya menghadapi masalah. Kemudian perpustakaan JSON mengambil alih, dan kami dapat menyimpan data yang kami perlukan dengan mudah dalam pemboleh ubah. Setelah kami menyimpan data dalam pemboleh ubah, yang harus kami lakukan adalah memaparkannya di layar dan menunggu satu jam sebelum meminta data baru dari pelayan. Satu-satunya maklumat yang saya sampaikan adalah ramalan cuaca, tetapi anda boleh memaparkan lebih banyak maklumat jika anda mahu. Semua di sini disimpan dalam pemboleh ubah. Kemudian kami membaca suhu, kelembapan dan tekanan barometrik dari sensor dan kami menghantar data ke paparan Nextion.

Untuk mengemas kini paparan, kami hanya menghantar beberapa arahan ke port bersiri seperti ini:

batal showConnectingIcon () {Serial.println (); Perintah rentetan = "weatherIcon.pic = 3"; Serial.print (arahan); endNextionCommand (); }

Nextion GUI terdiri dari latar belakang, beberapa kotak teks dan gambar yang berubah bergantung pada ramalan cuaca. Sila tonton tutorial paparan Nextion untuk maklumat lebih lanjut. Anda boleh dengan cepat merancang GUI anda sendiri jika anda mahu dan memaparkan lebih banyak perkara di dalamnya.

Seperti biasa anda boleh mendapatkan kod projek yang dilampirkan di Instructable ini

Langkah 7: Pemikiran & Penambahbaikan Akhir

Pemikiran & Penambahbaikan Akhir
Pemikiran & Penambahbaikan Akhir

Seperti yang anda lihat, pembuat yang berpengalaman hari ini dapat membina projek yang menarik hanya dalam beberapa jam dengan beberapa baris kod dan hanya tiga bahagian! Projek seperti ini tidak mungkin dapat dibuat walaupun dua tahun lalu!

Sudah tentu, ini baru permulaan projek. Saya ingin menambahkan banyak ciri padanya, seperti grafik, fungsi sentuhan yang kini tidak ada, mungkin paparan yang lebih besar dan tentu saja cetakan 3D yang cantik. Saya juga akan merancang GUI dan ikon yang lebih baik. Saya mempunyai beberapa idea yang sangat segar untuk dilaksanakan!

Saya ingin mendengar pendapat anda mengenai projek hari ini. Apakah jenis ciri yang anda mahu saya tambahkan ke projek ini? Adakah anda suka penampilannya? Bagaimana anda mahu melihatnya berkembang? Sila hantarkan idea anda di ruangan komen di bawah; Saya suka membaca fikiran anda!

Peraduan Tanpa Wayar
Peraduan Tanpa Wayar
Peraduan Tanpa Wayar
Peraduan Tanpa Wayar

Naib Johan dalam Peraduan Tanpa Wayar

Disyorkan: