İçindekiler:
- Adım 1: Tüm Parçaları Alın
- Adım 2: ESP32 Kartı
- Adım 3: Arduino ve ESP32 için 2.8" TFT Ekran
- 4. Adım: Ekranı Bağlama
- Adım 5: Projenin Kodu
- Adım 6: Son Düşünceler ve İyileştirmeler
Video: ESP32 Xiaomi Hack - Verileri Kablosuz Olarak Alın: 6 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Sevgili arkadaşlar başka bir Eğitilebilirliğe hoş geldiniz! Bugün, bu Xiaomi Sıcaklık ve Nem monitörünün ESP32 kartının Bluetooth işlevini kullanarak ilettiği verileri nasıl alacağımızı öğreneceğiz.
Gördüğünüz gibi, bir ESP32 kartı ve 2.8” renkli TFT ekran kullanıyorum. Ekranda sıcaklık ve nemi gösteriyoruz. İşin güzel yanı, ESP32 kartına herhangi bir sensör bağlamamış olmam. Bu ticari Xiaomi Sıcaklık ve Nem monitöründen sıcaklığı ve nemi kablosuz olarak alıyorum. Ne kadar serin! Xiaomi cihazındaki ekran her saniye güncelleniyor ancak Xiaomi cihazındaki gücü korumak için ESP32 kartına bağlı ekranı her 10 saniyede bir güncelliyorum.
Bu harika Xiaomi sıcaklık ve nem sensörü, LCD ekranında sıcaklık ve nemi gösterir ve ayrıca verileri Bluetooth protokolünü kullanarak diğer Xiaomi Cihazlarına veya uygulamalarına iletebilir. Cihazlar tek AAA pil kullanıyor ve ticari bir ürün olduğu için cihazın pil ömrü mükemmel. Tek bir AAA pille aylarca dayanabilir, ki bu bizim kendin yap projelerimizde başaramadığımız bir şey. Birkaç hafta önce, bazı akıllı adamların, Xiaomi'nin verileri sensörden iletmek için kullandığı protokolü tersine mühendislik yapmayı başardığını ve bu verileri bir ESP32 kartı kullanarak almayı başardığını keşfettim. Ben de denedim ve gördüğünüz gibi işe yarıyor!
Adım 1: Tüm Parçaları Alın
Şimdi bu projenin nasıl oluşturulacağını görelim. Bir ESP32 kartına, 2,8” ILI9341 ekrana, Xiaomi sıcaklık ve nem sensörüne, bir devre tahtasına ve bazı kablolara ihtiyacımız var.
İşte bu Eğitilebilir Dosyada kullanacağım parçalara bazı bağlantılar.
- ESP32 ▶
- 2,8" Ekran ▶
- Xiaomi Sensörü ▶
- Breadboard ▶
- Teller ▶
- USB Metre ▶
- Güç Bankası ▶
Adım 2: ESP32 Kartı
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! ESP32 ile ilgili en heyecan verici şeylerden biri, çok güçlü olmasına rağmen, yalnızca 10μΑs akım gerektiren bir derin uyku modu sunmasıdır. Bu, ESP32'yi düşük güç uygulamaları için ideal çip yapar.
Adım 3: Arduino ve ESP32 için 2.8" TFT Ekran
Ekran büyük ve 320x240 piksel çözünürlük sunuyor. Favori ekranlarımdan birine kıyasla, 1.8” Renkli TFT ekranı çok daha büyük görebilirsiniz. Ekran ayrıca ek bir bonus olan dokunmatik işlevsellik ve arkada bir SD kart yuvası sunar. SPI arayüzünü kullanır, bu nedenle Arduino veya ESP32 kartı ile bağlantı çok basittir. Ekranın maliyeti nispeten düşüktür; 11$ civarında bir maliyeti var ki bu bence bu ekranın sunduğu şey için makul bir fiyat.
Bu ekranla ilgili bir başka şey de şu ana kadar kullandığımız dokunmatik ekran gibi bir kalkan olarak gelmemesi. Bu şekilde ekranı herhangi bir karta, Arduino Pro mini, STM32, ESP8266 ve ESP32'ye bağlayabiliriz. Bu çok önemli çünkü artık her panoda kullanabileceğimiz düşük maliyetli bir ekranımız var. Şimdiye kadar bu panolarla kullanabildiğimiz tek dokunmatik ekran, daha pahalı olan Nextion ekranlardı ve dürüst olmak gerekirse, zaman zaman kullansam da onları pek sevmiyorum.
4. Adım: Ekranı Bağlama
Öncelikle ESP32 Board'u 2.8” ekrana bağlamamız gerekiyor. Instructable'a ekli şemayı bulabilirsiniz. Yaklaşık iki yıl önce piyasaya sürülen bu DOIT ESP32 kartını kullanıyorum. Tahtanın bu versiyonu artık mevcut değil çünkü artık daha fazla pin sunan daha yeni bir versiyonu mevcut, bu bir. Kartın eski versiyonunu kullanmamın tek nedeni, kartın GND pininin SPI pinlerinin yanına, board'un aynı tarafında yer alması, bu da onu breadboard dostu yapıyor.
Ekranı panoya bağladıktan sonra projeyi çalıştırabiliriz. Birkaç saniye sonra yakındaki Xiaomi Cihazından canlı veriler alıyoruz. Cihaz Bluetooth 4 kullandığı için menzili oldukça iyi. Bu cihazın ilettiği verileri 10 metre ve daha fazla mesafelerden kolayca alabiliyoruz! Xiaomi Cihazının pil seviyesini de alabiliyoruz ama bu değeri ekranda göstermiyorum.
Bu USB metreyi kullanırsak, bu büyük ekranı kullanarak bu projenin mevcut çekişinin 120-150 mA civarında olduğunu görebiliriz. Bir e-kağıt ekran kullanırsak, ESP32 kartını derin uyku moduna alırsak ve birkaç dakikada bir sensörden veri alırsak bu projeyi pil dostu hale getirebiliriz. Bunu bir sonraki videoda deneyeceğim. Bu proje sadece bu cihazdan kablosuz olarak veri alabileceğimizin bir gösterimidir.
Adım 5: Projenin Kodu
Şimdi projenin yazılım tarafına bakalım.
Projenin kodu bu projeye dayanmaktadır:
Bu verileri Xiaomi cihazından alan kodu kullandım ve onunla bağımsız bir proje oluşturdum.
Bu değişkende her 10 saniyede bir yeni veri almamız gerektiğini bildiriyoruz.
#define SCAN_TIME 10 // saniye
Burada sıcaklığı Santigrat derece cinsinden göstermek istediğimizi beyan ederiz. Imperial sistemini kullanmak istiyorsanız, bu değişkeni false olarak ayarlayın.
boolean METRIC = doğru; //Metrik sistem için doğru ayarla; emperyal için yanlış
Kurulum fonksiyonunda ESP32 kartının ekranını ve Bluetooth modülünü başlatıyoruz ve ardından ekrana kullanıcı arayüzünü çiziyoruz.
geçersiz kurulum() {
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); // karartma dedektörünü devre dışı bırak
tft.begin();
Seri.başla(115200);
Serial.println("ESP32 XIAOMI EKRAN"); initBluetooth();
drawUI();
}
Ardından, her 10 saniyede bir yakındaki Bluetooth cihazlarını ararız. Gerekli olmadığı için Xiaomi Cihazı ile bağlantı kurmuyoruz. Yalnızca yakındaki Bluetooth düşük enerjili çevre birimlerini tarar ve yayınlanan reklam paketlerini kontrol ederiz.
void loop() { char printLog[256]; Serial.printf("%d saniye süreyle BLE taramasını başlat…\n", SCAN_TIME); BLEScanResults foundDevices = pBLEScan->start(SCAN_TIME); int sayı = bulunanDevices.getCount(); printf("Bulunan aygıt sayısı: %d\n", sayım);
gecikme(100);
}
Nem ve sıcaklık değerleri bu paketlerde saklanıyor, bu yüzden sadece okumamız yeterli. Değerleri okuduktan sonra ekranda gösteriyoruz. Her zaman olduğu gibi, bu Eğitilebilir Tabloya eklenen açıklamada bu projenin koduna bir bağlantı bulabilirsiniz.
Adım 6: Son Düşünceler ve İyileştirmeler
Artık bu sensörden kablosuz olarak nasıl veri alacağımızı bildiğimize göre, pille çalışan eksiksiz bir hava durumu istasyonu inşa edebiliriz. Bu Xiaomi Cihazı ticari bir ürün olduğu için harika bir pil ömrü sunar. Maalesef henüz projelerimizde benzer pil tüketimini sağlayamıyoruz. Bu yüzden, bu sensörü büyük bir e-kağıt ekranı kullanacak bir hava durumu istasyonu projesi için bir dış mekan sensörü olarak kullanmayı planlıyorum. Serin olacak. Ayrıca, benzer şekilde hackleyebileceğimiz diğer Xiaomi Bluetooth özellikli cihazları da arayacağım. Bizi izlemeye devam edin.
Bu proje hakkındaki görüşlerinizi öğrenmek isterim. Bazı ticari Bluetooth cihazlarından veri alabilmemizi faydalı buluyor musunuz? Bu işlevi kullanarak ne inşa edeceksiniz? Fikirlerinizi okumak istiyorum, bu yüzden lütfen aşağıdaki yorumlar bölümüne gönderin. Teşekkürler!
Önerilen:
ISP Olarak Arduino -- AVR'de Hex Dosyası Yaz -- AVR'de Sigorta -- Programcı Olarak Arduino: 10 Adım
ISP Olarak Arduino || AVR'de Hex Dosyası Yaz || AVR'de Sigorta || Arduino As Programmer:……………………………Daha fazla video için lütfen YouTube kanalıma ABONE OLUN……..Bu makale isp olarak arduino ile ilgili. Hex dosyası yüklemek istiyorsanız veya sigortanızı AVR'ye ayarlamak istiyorsanız, bir programlayıcı satın almanıza gerek yok, yapabilirsiniz
Göz Kırparak Bilgisayarı Kablosuz Olarak Kontrol Edin;): 9 Adım (Resimlerle)
Göz Kırparak Bilgisayarı Kablosuz Olarak Kontrol Edin;): Alışkanlıklarınızın ötesine geçmeye ne dersiniz?? Yeni bir şey denemeye ne dersiniz??!!!!Klavyenizi ve farenizi KULLANMADAN PC'nizi kontrol etmeye ve istediğiniz her şeyi yapmaya ne dersiniz!Hmm… Ama bu nasıl mümkün olabilir???Sadece bir göz açıp kapayıncaya kadar!! Yapma
Herhangi Bir Telefona Kablosuz Şarj Ekleyin: LG-V20'yi Örnek Olarak Kullanma: 10 Adım (Resimlerle)
Herhangi Bir Telefona Kablosuz Şarjı Ekleyin: Örnek Olarak LG-V20'yi Kullanma: Benim gibiyseniz ve telefonunuzu 2 yıldan fazla kullanmayı planlıyorsanız, telefonunuzun değiştirilebilir bir pili olmalıdır, çünkü pil yalnızca yaklaşık 2 yıl dayanır, Ve şarj bağlantı noktasını yıpratmamanız için kablosuz şarj. Şimdi kolay
IOT BIT (Resmi Olarak PiAnywhere V1.31 Olarak Bilinir) Raspberry Pi için 4G ve LTE Şapkası: 10 Adım (Resimlerle)
IOT BIT (Resmi Olarak PiAnywhere V1.31 Olarak Bilinir) Raspberry Pi için 4G ve LTE Şapkası: IOT BIT 4G & Raspberry Pi4G için LTE Hat (100 mbps aşağı/ 50 mbps yukarı) - Ahududu pi'niz için ultra hızlı internet bağlantısı, büyük indirmeler ve video akışı için mükemmeldir.TheIOT BIT 4G & Raspberry Pi Beta provi için LTE Hat
Motorola/nextel/boost Telefonunuzda Ücretsiz Kablosuz Web Alın: 6 Adım
Motorola/nextel/boost Telefonunuzda Ücretsiz Kablosuz Web Alın: Bugün size nextel/motorola/boost telefonunuzda ücretsiz kablosuz web'i nasıl edineceğinizi öğreteceğim