İçindekiler:
- Adım 1: Tüm Parçaları Alın
- 2. Adım: ESP32
- 3. Adım: Nextion Ekranı
- Adım 4: BME280 Sensörü
- Adım 5: Parçaları Bağlama
- Adım 6: Projenin Kodu
- 7. Adım: Son Düşünceler ve İyileştirmeler
Video: BME280 Sensörlü ESP32 WiFi Hava İstasyonu: 7 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
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
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
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ı
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, 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ı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
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
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ışmasında İkincilik
Önerilen:
NaTaLia Hava İstasyonu: Arduino Güneş Enerjili Hava İstasyonu Doğru Şekilde Yapıldı: 8 Adım (Resimlerle)
NaTaLia Hava İstasyonu: Arduino Güneş Enerjili Hava İstasyonu Doğru Şekilde Yapıldı: 2 farklı lokasyonda 1 yıllık başarılı operasyonun ardından, güneş enerjili meteoroloji istasyonu proje planlarımı paylaşıyor ve gerçekten uzun süre hayatta kalabilen bir sisteme nasıl evrildiğini açıklıyorum. güneş enerjisinden dönemler. Takip ederseniz
DIY Hava İstasyonu ve WiFi Sensör İstasyonu: 7 Adım (Resimlerle)
DIY Hava İstasyonu ve WiFi Sensör İstasyonu: Bu projede size bir WiFi sensör istasyonu ile birlikte bir hava istasyonunun nasıl oluşturulacağını göstereceğim. Sensör istasyonu, yerel sıcaklık ve nem verilerini ölçer ve WiFi aracılığıyla hava durumu istasyonuna gönderir. Hava durumu istasyonu daha sonra t görüntüler
Arduino, BME280 ve Son 1-2 Gün İçindeki Trendi Görmek İçin Ekranlı Hava İstasyonu: 3 Adım (Resimlerle)
Arduino, BME280 ve Son 1-2 Gün İçindeki Trendi Görmek için Ekranlı Hava İstasyonu: Merhaba! Burada, talimatlarda hava istasyonları zaten tanıtıldı. Mevcut hava basıncını, sıcaklığını ve nemini gösterirler. Şu ana kadar eksikleri ise son 1-2 gün içerisinde kursun sunumuydu. Bu süreç, bir
Çoklu Sensörlü 2.4 TFT Arduino Hava İstasyonu: 7 Adım
Çoklu Sensörlü 2.4 TFT Arduino Hava İstasyonu: TFT LCD ve birkaç sensörlü taşınabilir bir Arduino hava istasyonu
Raspberry Pi ve Weewx Kullanan Acurite 5'i 1 Arada Hava İstasyonu (Diğer Hava İstasyonları Uyumludur): 5 Adım (Resimlerle)
Acurite 5'i 1 Arada Hava İstasyonu Raspberry Pi ve Weewx Kullanarak (diğer Hava İstasyonları Uyumludur): Acurite 5'i 1 arada meteoroloji istasyonunu satın aldığımda, evde yokken hava durumunu kontrol edebilmek istedim. Eve gelip kurduğumda, ekranı bir bilgisayara bağlamam ya da akıllı hub'larını satın almam gerektiğini fark ettim,