İçindekiler:

BME280 Sensörlü ESP32 WiFi Hava İstasyonu: 7 Adım (Resimlerle)
BME280 Sensörlü ESP32 WiFi Hava İstasyonu: 7 Adım (Resimlerle)

Video: BME280 Sensörlü ESP32 WiFi Hava İstasyonu: 7 Adım (Resimlerle)

Video: BME280 Sensörlü ESP32 WiFi Hava İstasyonu: 7 Adım (Resimlerle)
Video: BME280... 2024, Temmuz
Anonim
Image
Image
BME280 Sensörlü ESP32 WiFi Hava Durumu İstasyonu
BME280 Sensörlü ESP32 WiFi Hava Durumu İstasyonu
BME280 Sensörlü ESP32 WiFi Hava Durumu İstasyonu
BME280 Sensörlü ESP32 WiFi Hava Durumu İstasyonu

Sevgili arkadaşlar başka bir eğitime hoş geldiniz! Bu eğitimde, bir WiFi özellikli hava istasyonu projesi oluşturacağız! Yeni, etkileyici ESP32 yongasını bir Nextion ekranıyla birlikte ilk kez kullanacağız.

Bu videoda bunu yapacağız. Bildiğim başka bir meteoroloji istasyonu projesi ama bu sefer yeni ESP32 çipini kullanıyoruz! Ayrıca sıcaklığı, nemi ve barometrik basıncı ölçen yeni BME280 sensörünü kullanıyoruz. Projeyi çalıştırdığımızda, WiFi ağına bağlanıyor ve konumum için hava durumu tahminini openweathermap web sitesinden alacak. Ardından, sensörden gelen okumalarla birlikte bu 3.2” Nextion Dokunmatik Ekranda tahmini görüntüleyecektir! Okumalar her iki saniyede bir ve hava durumu tahmini her saat güncellenir! Gördüğünüz gibi, bu projede bugün bir üreticinin kullanabileceği en son teknolojileri kullanıyoruz! Bir DIY ustasıysanız, bu projeyi beş dakikada inşa edebilirsiniz.

Yeni başlayan biriyseniz, bu projeyi denemeden önce birkaç video izlemelisiniz. Bu videonun bağlantılarını bu Eğitilebilir Dosyada bulabilirsiniz, endişelenmeyin.

Hadi başlayalım!

Adım 1: Tüm Parçaları Alın

Tüm Parçaları Alın
Tüm Parçaları Alın

Bu projeyi inşa etmek için aşağıdaki parçalara ihtiyacımız var:

  • Bir ESP32 Kartı ▶
  • Bir BME280 I2C sensörü ▶
  • 3,2 inç Nextion ekran ▶
  • Küçük Bir Breadboard ▶
  • Bazı teller ▶

Projenin maliyeti 30$ civarındadır.

ESP32 yerine daha ucuz olan ESP8266 yongasını kullanabilirdik, ancak biraz deneyim kazanmak ve neyin işe yarayıp neyin yaramadığını görmek için ESP32'yi kullanmaya karar verdim.

2. Adım: ESP32

Image
Image
ESP32
ESP32

Bu, yeni ESP32 yongasıyla inşa ettiğim ilk proje.

Eğer aşina değilseniz ESP32 çipi, geçmişte pek çok kez kullandığımız popüler ESP8266 çipinin halefidir. ESP32 bir canavar! 160MHz'de çalışan iki adet 32 işlemci çekirdeği, muazzam miktarda bellek, WiFi, Bluetooth ve diğer birçok özelliği yaklaşık 7$'lık bir maliyetle sunuyor! İnanılmaz şeyler!

Lütfen bu pano için hazırladığım detaylı incelemeyi izleyin. Videoyu bu Eğitilebilir Tabloya ekledim. Bu çipin, işleri sonsuza kadar yapma şeklimizi neden değiştireceğini anlamamıza yardımcı olacak!

3. Adım: Nextion Ekranı

Image
Image
BME280 Sensör
BME280 Sensör

Ayrıca bu, Nextion dokunmatik ekranla oluşturduğum ilk proje.

Nextion ekranları yeni tür ekranlardır. Arkada, ekranı sürmekten ve grafiksel kullanıcı arayüzünü oluşturmaktan sorumlu kendi ARM işlemcileri var. Böylece onları herhangi bir mikrodenetleyici ile kullanabilir ve muhteşem sonuçlar elde edebiliriz.

Bu Nextion ekranı hakkında, nasıl çalıştıklarını, nasıl kullanılacağını ve sakıncalarını derinlemesine açıklayan ayrıntılı bir Talimat hazırladım. Buraya tıklayarak okuyabilirsiniz:

Adım 4: BME280 Sensörü

BME280 Sensör
BME280 Sensör

BME280, Bosch'tan yeni ve harika bir sensörde.

Şimdiye kadar sıcaklık ve barometrik basıncı ölçebilen BMP180 sensörünü kullanıyordum. BME280 sensörü sıcaklık, nem ve barometrik basıncı ölçebilir! Ne kadar serin! Eksiksiz bir hava istasyonu inşa etmek için sadece bir sensöre ihtiyacımız var!

Buna ek olarak, sensörün boyutu çok küçük ve kullanımı çok kolay. Bugün kullanacağımız modül I2C arayüzünü kullandığından Arduino ile iletişimi oldukça kolaylaştırmaktadır. Çalışması için sadece gücü ve iki kabloyu daha bağlayacağız.

Bu sensör için halihazırda geliştirilmiş birçok kütüphane var, bu yüzden onu projelerimizde çok kolay bir şekilde kullanabiliriz! Sensörün maliyeti yaklaşık 5 $ 'dır. Buradan alabilirsiniz ▶

NOT: BME280 sensörüne ihtiyacımız var. Ayrıca nem ölçümü sunmayan bir BMP280 sensörü bulunmaktadır. İhtiyacınız olan sensörü sipariş etmeye dikkat edin.

Adım 5: Parçaları Bağlama

Parçaları Bağlama
Parçaları Bağlama
Parçaları Bağlama
Parçaları Bağlama
Parçaları Bağlama
Parçaları Bağlama

Parçaların bağlantısı şematik diyagramdan da görebileceğiniz gibi basittir.

BME280 sensörü I2C arayüzünü kullandığından, ESP32 ile iletişim kurmak için sadece iki kablo bağlamamız gerekiyor. Sensörü Pin 26 ve 27'ye bağladım. Teoride, ESP32 kartının her dijital pini I2C çevre birimleri ile kullanılabilir. Ancak pratikte, bazı pinlerin başka kullanımlar için ayrılmış oldukları için çalışmadığını öğrendim. 26 ve 27 numaralı pimler harika çalışıyor!

Ekrana veri göndermek için ESP32'nin TX0 pinine sadece bir kablo bağlamamız gerekiyor. ESP32 kartı bu breadboard için çok büyük olduğu için ekranın dişi kablosunu bağlamak için pimi bu şekilde bükmek zorunda kaldım.

Parçaları bağladıktan sonra kodu ESP32'ye yüklememiz ve GUI'yi Nextion ekranına yüklememiz gerekiyor. Programı ESP32 kartına yüklemekte sorun yaşıyorsanız, Arduino IDE üzerindeki yükleme düğmesine bastıktan sonra BOOT düğmesini basılı tutun.

GUI'yi Nextion ekranına yüklemek için, sizinle paylaşacağım WeatherStation.tft dosyasını boş bir SD karta kopyalayın. SD kartı ekranın arkasındaki SD kart yuvasına yerleştirin. Ardından ekranı açın ve GUI yüklenecektir. Ardından SD kartı çıkarın ve gücü tekrar bağlayın.

Kodu başarıyla yükledikten sonra proje WiFi ağına bağlanacak, openweathermap.org web sitesinden hava durumu tahminini alacak ve sensörden gelen okumaları gösterecektir. Şimdi projenin yazılım tarafına bakalım.

Adım 6: Projenin Kodu

Proje Kodu
Proje Kodu
Proje Kodu
Proje Kodu
Proje Kodu
Proje Kodu

Hava durumu verilerini ayrıştırmak için mükemmel Arduino JSON kitaplığına ihtiyacımız var. Ayrıca sensör için bir kütüphaneye ihtiyacımız var.

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

Şimdi kodu görelim.

Öncelikle WiFi ağımızın SSID'sini ve şifresini belirlememiz gerekiyor. Ardından, operweathermap.org web sitesinden ücretsiz APIKEY'e girmeliyiz. Kendi API anahtarınızı oluşturmak için web sitesine kaydolmanız gerekir. Güncel hava durumu verilerini ve tahminlerini almak ücretsizdir, ancak biraz para ödemeye hazırsanız web sitesi daha fazla seçenek sunar. Ardından, konumumuzun kimliğini bulmalıyız. Konumunuzu bulun ve konumunuzun URL'sinde bulunabilecek kimliği kopyalayın.

Ardından CityID değişkenine şehrinizin kimliğini girin. Ayrıca, bu değişkene şehrinizin rakımını girin. Bu değer, sensörden doğru barometrik basınç okumaları için gereklidir.

const char* ssid = "SSID'niz";const char* parolanız = "Parolanız"; String CityID = "253394"; //Sparta, Yunanistan String APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Sparta, Yunanistan'da Rakım

Şimdi ilerlemeye hazırız.

İlk önce sensörü başlatıyoruz ve WiFi Ağına bağlanıyoruz. Ardından sunucudan hava durumu verilerini talep ediyoruz.

Hava durumu verileriyle birlikte JSON formatında bir yanıt alıyoruz. Verileri JSON kitaplığına göndermeden önce, bana sorun çıkaran bazı karakterleri manuel olarak siliyorum. Ardından JSON kütüphanesi devreye giriyor ve ihtiyacımız olan verileri kolayca değişkenlere kaydedebiliyoruz. Verileri değişkenlerde tuttuktan sonra tek yapmamız gereken bunları ekranda göstermek ve sunucudan yeni veri talep etmeden önce bir saat beklemek. Verdiğim tek bilgi hava durumu ama dilerseniz daha fazla bilgi görüntüleyebilirsiniz. Hepsi burada değişkenlere kaydedildi. Ardından sensörden sıcaklık, nem ve barometrik basıncı okuyoruz ve verileri Nextion ekranına gönderiyoruz.

Ekranı güncellemek için seri bağlantı noktasına aşağıdaki gibi bazı komutlar göndermemiz yeterlidir:

void showConnectingIcon(){ Serial.println(); String komutu = "weatherIcon.pic=3"; Serial.print(komut); endNextionCommand(); }

Nextion GUI, bir arka plan, bazı metin kutuları ve hava durumuna göre değişen bir resimden oluşur. Daha fazla bilgi için lütfen Nextion ekran eğitimini izleyin. Dilerseniz kendi GUI'nizi hızlıca tasarlayabilir ve üzerinde daha fazla şey görüntüleyebilirsiniz.

Her zaman olduğu gibi, bu Eğitilebilir Tabloya ekli projenin kodunu bulabilirsiniz

7. Adım: Son Düşünceler ve İyileştirmeler

Son Düşünceler ve İyileştirmeler
Son Düşünceler ve İyileştirmeler

Gördüğünüz gibi, bugün deneyimli bir yapımcı, birkaç satır kod ve sadece üç parça ile sadece birkaç saat içinde heyecan verici projeler inşa edebilir! Böyle bir projeyi iki yıl önce yapmak bile imkansızdı!

Tabii ki, bu projenin sadece başlangıcı. Grafikler, şu anda eksik olan dokunmatik işlevsellik, belki daha büyük bir ekran ve tabii ki güzel görünümlü 3D baskılı bir muhafaza gibi birçok özellik eklemek istiyorum. Ayrıca daha iyi görünen bir GUI ve simgeler tasarlayacağım. Uygulamam gereken çok taze fikirlerim var!

Bugünkü proje hakkındaki görüşlerinizi duymak isterim. Projeye ne tür özellikler eklememi istersiniz? Görünüşünü beğendin mi? Nasıl geliştiğini görmek istersiniz? Lütfen fikirlerinizi aşağıdaki yorumlar bölümüne gönderin; Düşüncelerini okumayı seviyorum!

Kablosuz Yarışma
Kablosuz Yarışma
Kablosuz Yarışma
Kablosuz Yarışma

Kablosuz Yarışmasında İkincilik

Önerilen: