İçindekiler:
Video: ESP32 Scraper-parser-mailer ve Live Mapper: 4 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
Selam Dünya! Bu benim ilk Eğitilebilirliğim! Ben Grosseto İtalya'dan Marco, geliştirici değilim, elektronik mühendisi değilim ama yerel doğal parkımızda (Maremma doğal parkı) çevre rehberiyim.
Kooperatifimde kano turları, kuş gözlemciliği ve biraz da rahatlama için Ombrone nehrinde doğal ve sakin turlar ile çok çalışıyoruz.
Ancak Ombrone nehri, karakteristik akış türüyle de ünlüdür: yaz "sıfır" dan sonbahar-kış akışına saatte birkaç bin metreküp su.
Bu nedenle, Ombrone nehri, toplanan verileri kullanılabilir hale getiren harika bir site ile mükemmel bölgesel hidrometrik servis (SIR) tarafından sürekli olarak izlenir.
Şimdi rıhtım ve kanoları kaldırmak için sezonun sonunu ve ilk sonbahar sellerini bekliyoruz…
Ancak, esp32ing vb. ayrıştırma kazıma hakkında konuşmaya başladığımızda? bir an daha
İtalyan kilitlenmesi sırasında ilk arduino yanıp sönme dersini yaptım, harika… ve sensörler ve arduino C ile oynamaya devam ettim. Yani kodumu kaba veya anlamsız mantıksal boşluklarla dolu bulursanız, bunu düşünün!
Sadece zaman kaybetmek için çok şey yaptım ama bu sürekli sel riskiyle havalı bir şey yapmaya karar verdim: arduino form faktörlü bir ESP32 (Wemos d1 r32) sayesinde "zor" olduğunu düşündüğüm için aylarca sardım., gerçekten çok tatmin oldum:
Bir SIR web sayfasından veri getiren ve ayrıştıran ve ucuz bir i2c LCD'de elde edilen değişkenleri görüntüleyen ve gerçekçi bir harita üzerinde bazı ledlerde parlaklık-frekans yanıp sönen bir kazıyıcı yaptım.
yani dağ tarafından bir sel gelirse, haritadaki ledlerin artan parlaklığı (seviye değişimi) ve artan sıklığı (bir saat içinde seviye değişimi) ile uyarılırım… ama ESP32 e-posta da gönderebilir! Öyleyse neden bunun için bir işlev yapmıyorsunuz?
Şimdi aşağıdaki kodu görmeye gidelim!
Gereçler
- ESP32 tabanlı kart: Wemos d1 r32 kullandım çünkü dişi pinler var ve kullanımı daha kolay
- ledler, kırmızı daha çok "uyarı gibi"
- I2C 16x2 LCD iv'e sadece mavi ama yeşil daha şık
- ucuz mantar pano
- gece saati (isteğe bağlı)
Adım 1: Kod
çevrimiçi sadece verileri ayrıştırmak için harici siteleri kullanan vapourous öğreticiler buldum, bu yüzden verileri doğrudan tahtada ayrıştırarak esp32 çekirdeklerinin gücünü test etmeye çalıştım… sorunsuz!
bu nedenle, SIR sayfa kaynağını görüntülerseniz nasıl çalıştığını anlayabilirsiniz: neyse ki verilerini görüntülemek için "virgülle ayrılmış benzer" değerler kullanırlar, bu nedenle bu kodla bir hidrografik istasyon (kod TOSnumber) ararım ve virgül sayısını sayarım (ayırıcı olarak) istediğim değeri içerir (ve değişken olarak saklar), ardından "varyasyon seviyesi" yanıp sönmesi için led parlaklığı ve milis cinsinden süre olarak yeniden eşleyin
Bu kazıyıcının çekirdeği http sekmesindedir:
ind = payload.indexOf("TOSstation_number"); // virgül saymaya başladığımız yeri (ind) al
String my_var = getValue_ind(yük, ', ', 8); // burada 8, virgülle (ayırıcı) tanımlanan sekizinci hücredir
"yük", daha önce "alıntılar" ve " " den temizlenmiş web'den aldığım şeydir;
ve ana sekmedeki getValue_ind işlevi
String getValue_ind(Dize verisi, karakter ayırıcı, int indeksi) {
int bulundu = 0; int strIndex = {0, -1}; int maxIndex = data.length() - 1; for (int i = ind; i <= maxIndex && bulundu <= dizin; i++) { //ind konumundan if (data.charAt(i) == ayırıcı || i == maxIndex) { bulundu++; strIndex[0] = strIndex[1] + 1; strIndex[1] = (i == maxIndex) ? ben + 1: ben; } } dönüş bulundu> dizin ? data.substring(strIndex[0], strIndex[1]): ""; }
stackoverflow.com/a/14824108 adresinden uyarlanmıştır
kod her 15 dakikada bir sayfayı soruyor, yaklaşık 44Kb, sunucular ve ESP32 için büyük bir yük olduğunu düşünmüyorum.. Çok fazla kaydırma yapmamak için programı farklı işlevlere böldüm, yorumları okuyun
burada kod yapıştırma gerçekten bir karmaşa….ino dosyalarını doğrudan koyuyorum
arduino IDE'nin sekmeler özelliğini kullandım, böylece farklı.ino dosyalarım var
Bu, kodun (?) en son sürümüdür, çok fazla çaba var, bu yüzden herhangi bir öneriyi takdir edeceğim!
- düşük değerler için led parlaklığının düzleştirilmesi için, - kayan nokta değişkenleri için "harita" işlevi için - ESP32'de ikinci çekirdeğin kullanımı için, - sprintfI ile bir dizeden html postasının nasıl yazdırılacağını anlamak için çok fazla gerçek "nerding zamanı" harcadı, bu yüzden.ino dosyalarındaki veya github'daki yorumları okuyun!
yükleme ayarları olarak bu büyük kod için daha fazla alana sahip olmak için Araçlar: Bölümleme Düzeni: OTA YOK kullandım
iyi eğlenceler
github'daki kod için buraya tıklayın
2. Adım: Harita
Bu tut, ESP32 koduna odaklanmıştır, bu nedenle size sadece kullanılan bazı anahtar kelimeleri, bağlantıları ve araçları verebilirim:
openstreetmap'ten vektörel alanların çıkarılması için mükemmel hizmet
- onları sindirmek için "ostik" QGis
- haritanızı basitleştirmek için özellik tablosunu arayın
- bir baskı düzeni oluşturun ve haritayı svg formatında A3 kağıt formatında dışa aktarın
- "daha pürüzsüz" illüstratörle eğlenin
- yazdır
3. Adım: Sıcak Tutkal Partisi
bu yüzden mantar panoya sabitlemeden önce led ve ekran için kağıt üzerindeki delikleri kalıpla kesmeyi önerebilirim
kablolama gerçekten basit ve benim tarafımdan kötü yapılmış: P
Lehimleme seviyem: Güvercin
koddan da görebileceğiniz gibi ledler IO pinlerine gidiyor
#define LED_PIN0 14 //si#define LED_PIN1 27 //buon #define LED_PIN2 16 //sass #define LED_PIN3 17 //tur #define LED_PIN4 25 //ist #define LED_PIN5 26 //berr
anlamak için ESP32 pinout'u arayın
Adım 4: Bitmiş Ürün
bu yüzden bu fotoğraf en iyisi değil, ama bir nehir taşkınımız olduğunda güzel bir video koyacağım!
Önerilen:
Arduino ve Stage Monster Live ile IOT DMX Kontrol Cihazı: 6 Adım
Arduino ve Stage Monster Live ile IOT DMX Kontrol Cihazı: Telefonunuzdan veya başka herhangi bir web özellikli cihazdan sahne aydınlatmasını ve diğer DMX cihazlarını kontrol edin. Arduino Mega kullanarak Stage Monster Live platformunda çalışan kendi DMX denetleyicinizi nasıl hızlı ve kolay bir şekilde oluşturacağınızı göstereceğim
Nasıl Yapılır: Raspberry PI 4 Headless (VNC) Kurulumu Rpi-imager ve Resimlerle: 7 Adım (Resimlerle)
Nasıl Yapılır: Raspberry PI 4 Headless (VNC) Kurulumu Rpi-imager ve Resimlerle: Bu Rapsberry PI'yi blogumda bir sürü eğlenceli projede kullanmayı planlıyorum. Kontrol etmekten çekinmeyin. Raspberry PI'mi kullanmaya geri dönmek istedim ama yeni konumumda Klavye veya Farem yoktu. Ahududu kurduğumdan beri bir süre geçti
ESP32'ye Başlarken - Arduino IDE'de ESP32 Kartlarının Kurulması - ESP32 Yanıp Sönme Kodu: 3 Adım
ESP32'ye Başlarken | Arduino IDE'de ESP32 Kartlarının Kurulması | ESP32 Yanıp Sönme Kodu: Bu talimatta, esp32 ile çalışmaya nasıl başlayacağımızı ve esp32 kartlarının Arduino IDE'ye nasıl kurulacağını göreceğiz ve esp 32'yi arduino ide kullanarak yanıp sönme kodunu çalıştıracak şekilde programlayacağız
Kolay Adımlar ve Resimlerle Bilgisayar Nasıl Sökülür: 13 Adım (Resimlerle)
Kolay Adımlar ve Resimlerle Bir Bilgisayar Nasıl Sökülür: Bu, bir PC'nin nasıl söküleceği hakkında bir talimattır. Temel bileşenlerin çoğu modülerdir ve kolayca çıkarılabilir. Ancak bu konuda organize olmanız önemlidir. Bu, parçaları kaybetmenize ve aynı zamanda yeniden birleştirmeyi kolaylaştırmaya yardımcı olacaktır
Adım Adım Ciclop 3d Tarayıcı My Way: 16 Adım (Resimlerle)
Adım Adım Ciclop 3d Tarayıcı Adım Adım: Merhabalar, ünlü Ciclop 3D tarayıcıyı gerçekleştireceğim. Orijinal projede iyi açıklanan tüm adımlar mevcut değil. Öncelikle işlemi basitleştirmek için bazı düzeltmeler yaptım. Tabanı yazdırıyorum ve PCB'yi yeniden sterilize ediyorum, ama devam et