İçindekiler:

[15dk] Weasley Clock / Who Is Home Indicator - TR-064 (beta): 4 Adım (Resimlerle)
[15dk] Weasley Clock / Who Is Home Indicator - TR-064 (beta): 4 Adım (Resimlerle)

Video: [15dk] Weasley Clock / Who Is Home Indicator - TR-064 (beta): 4 Adım (Resimlerle)

Video: [15dk] Weasley Clock / Who Is Home Indicator - TR-064 (beta): 4 Adım (Resimlerle)
Video: Ranking Every Mario Kart Track 2024, Temmuz
Anonim
Image
Image
[15dk] Weasley Clock / Who Is Home Göstergesi - TR-064'e (beta) dayalı
[15dk] Weasley Clock / Who Is Home Göstergesi - TR-064'e (beta) dayalı

GÜNCELLEME: 3. adıma bakın.

Uzun hikaye (TL; DR aşağıda): Bir süre önce bilgisayarımda kayıtlı cihazlar için ağı tarayacak ve ana bilgisayar adlarını ilişkili adlarla bir listeyle karşılaştıracak küçük bir bash komut dosyası yazdım. Bir cihaz ağda her oturum açtığında veya ağdan çıktığında bir bildirim alırdım. Bu şekilde kimin evde olduğuna dair bir fikrim olurdu (evde kimin olduğunu bilmek bazen onlara bir yemeğe katılmak isteyip istemediklerini sormak güzel olmakla kalmaz, aynı zamanda garip durumlardan kaçınmanıza da yardımcı olabilir). Sorun şu ki, bu yöntem çok güvenilir değil. Ne yazık ki bazı cihazlar ping'leri yanıtlamıyor (örneğin akıllı telefonlar) ve bazı güç tasarrufu moduna giriyor gibi görünüyor, bu nedenle nmap gibi komutlarla güvenilir bir şekilde algılanamıyor. Sonunda cihazın ağdan çıktığını duyurmadan önce en az 10 negatif isteyerek bunu aşmaya çalıştım. Sonuç olarak işe yaradı, ama yavaş, güvenilmez ve pek hoş değil. Ayrıca bilgisayarımı açmadan evde kimin olduğunu kontrol edebilmek istedim. Yani bu ESP8266'ları etrafta dolaştım - ve onlarla oynamak istedim. Ama 10.120.124.812. ESP tabanlı hava durumu istasyonunu veya benzerini inşa etmek istemedim (neden bir web sitesini ziyaret edebilecekken neden berbat ±2°C termometrenizle hava durumunu izlemek isteyesiniz ki?). Böylece plan yapıldı. Ne yazık ki, ESP'nin tam gelişmiş bir ağ taraması yapmak şöyle dursun, düzgün bir şekilde ping atacak donanıma sahip olmadığı ortaya çıktı (başlangıçta kötüydü, hatırladınız mı?). Bunun için bir kitaplık yazmayı düşündüm - ama C++'ım çok sınırlı olduğundan, bu benim ilk ESP projem ve ağ işlerinde bir dahi değilim ya da bu fikri rafa kaldırdım. Biraz araştırma yaptıktan sonra, öğrendim ki, yönlendirici (Fritz!Box markası) aslında bir API'ye sahiptir! YAY!!!! Protokol TR-064 olarak adlandırılır. Ne kadar ilham verici bir isim değil mi? Konuyla ilgili biraz araştırma yaparken internette (oldukça berbat) bir belge buldum. Çözmem biraz zaman aldı. Önümüzdeki günlerde daha uygulamalı bir talimat gönderebilirim (ve bir tarayıcı eklentisi kullanarak bu API ile nasıl iletişim kurabilir/test edebilirim). API'yi anladıktan sonra ESP'mden kullanmaya başladım. Uzun lafın kısası: Çalışan ve istediğimi yapan bir ördek bantlı ve wd40 çözümüm var (bağlı cihazlar için API'yi sorgulayın, bunları bir MAC adresleri listesiyle karşılaştırın ve buna göre LED'leri değiştirin). Ancak daha sağlam bir çözüm istedim. ve esnek bir çözüm ve bu API'nin sunabileceği çok daha fazlası var (ayarları değiştirebilir (wifi'yi açıp kapatabilir, şifreyi değiştirebilir, konuk wifi'yi açabilir/kapatabilir, sinyal gücünü değiştirebilirsiniz), yönlendiriciyi yeniden başlatabilir, bağlantı hızını sorgulayabilirsiniz, …) - bu yüzden evrensel bir TR-064 kitaplığı oluşturmaya karar verdim!TL;DR;Cihaz şu anda evde olan LED'ler aracılığıyla gösterir. Harika çalışıyor, henüz harika bir muhafazası yok (hey - başlıktaki betayı fark ettiniz mi?). Yönlendirici ile iletişim kurmak için SOAP protokolünü kullanır. Bunu gerçekleştirmek için Arduino kütüphanesi yazdı. Gerekli bilgi• Temel Arduino/ESP bilgisi• ESP'niz ile bir Blink örneği oluşturduysanız, sorun olmaz!• Değilse, bu talimatın ilk iki adımını takip edebilirsiniz• Lehimleme olabilir breadboard aşamasından ayrılmak istiyorsanız kullanışlıdır• Bazı 3D tasarım ve/veya ahşap işleri bir konut için kullanışlı olabilirGithub proje bağlantısı [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] hızlı başvuru için.

Gereçler

  • ESP8266 veya ESP32, Geliştirme Kurulunda veya başka bir programcı ile (2~6€)
  • Programlayıcıya uygun USB kablosu
  • Güç adaptörü (ör. USB veya pil ~2€)
  • Birkaç LED ve direnç (~1€)
  • (Gövde)

=> Minimal bir tasarım için yaklaşık 4-6€. Bu benim için evin etrafında kolayca birkaç tane asabileceğim anlamına geliyor. Tembel iseniz, LED'li bir geliştirme kartı da kullanabilirsiniz (daha fazla ayrıntı için 4. adıma bakın).

Adım 1: Yönlendiricinizi Kurun (isteğe bağlı, ancak Tavsiye Edilir)

Yönlendiricinizi Kurun (isteğe bağlı, ancak Tavsiye Edilir)
Yönlendiricinizi Kurun (isteğe bağlı, ancak Tavsiye Edilir)
Yönlendiricinizi Kurun (isteğe bağlı, ancak Tavsiye Edilir)
Yönlendiricinizi Kurun (isteğe bağlı, ancak Tavsiye Edilir)

Protokol, yönlendiriciler için genel bir protokol olarak tasarlandı, ancak yalnızca (çoğu) Fritz!Box yönlendiricisinin (en azından Avrupa'da çok yaygın) bunu kullandığını biliyorum. Diğer markaları bilmiyorum. Bu yüzden bir Fritz!Box kullandığınızı varsayacağım. Bunu başka bir yönlendiricide çalıştırabilirseniz (veya başaramazsanız), bunu bu talimata eklemekten memnuniyet duyarım (belki de kısa bir uyumluluk listesi başlatabilir misiniz?).

Bu adım gerekli değildir, sadece yönetici hesabınızı da kullanabilirsiniz, ancak bu bariz nedenlerle tavsiye edilmez (ESP'nizden ele geçirilebilir veya çıkarılabilir, yanlışlıkla istemediğiniz şeyleri değiştirebilirsiniz,…) - bu yüzden ben yapmanızı tavsiye ederim.

Her neyse, işte başlıyoruz:

  1. Favori tarayıcınızın url çubuğuna fritz.box yazarak Fritz!Box'ınıza giriş yapın.
  2. Yeni bir FRITZ!Box kullanıcısı oluşturmak için sayfayı bulun (gelişmiş olmanız gerekir, Sistem altında olmalıdır, bulamıyorsanız cihazınızı güncellemeyi deneyin).
  3. Resimde gördüğünüz gibi yeni bir hesap oluşturun (farklı bir kullanıcı adı/şifre kullanarak!).
  4. Çıkış Yap.

2. Adım: Kodlayın

Image
Image
Donanım (beta)
Donanım (beta)
  1. Kütüphaneye Github'dan ulaşabilirsiniz.

  2. Örneklerde, bu projenin kodu olan home-indicator.ino adlı bir dosya bulacaksınız. Örnekler klasörünü arduino IDE proje ana klasörünüze ve diğer klasörü aynı proje ana klasöründeki kitaplıklar klasörüne yerleştirin.
  3. (Yeniden) IDE'yi başlatın.
  4. IDE'de home-indicator.ino'yu açın ve ayarlarınızı girin. Neyin nereye gittiği çok açık olmalı. Herhangi bir sorunuz varsa, bana bildirin!
  5. Şimdi derleyip ESP'nize aktarabilirsiniz!

3. Adım: Donanım (beta)

Donanım (beta)
Donanım (beta)
Donanım (beta)
Donanım (beta)
Donanım (beta)
Donanım (beta)

Evet… Bu, hala biraz daha çalışmam gereken adım. Ama sanırım internette bir şeyi anlamaya yetecek kadar malzeme var:) Resimlerdeki gibi kurulum sadece D1 olan GPIO'ya {5, 4, 0, 2} bağlı ~100Ohm dirençli bir diyot. MCU ESP8266 kartımın D2, D3, D4 (sırasıyla) pinleri ve katotları GND'ye götüren küçük turuncu kablo (kartımda G ile işaretli). Tembel iseniz, ikinci resimde gördüğünüzü yapabilirsiniz. Sadece dahil olan LED'leri olan bir geliştirme kartı kullanın ("ESP-202" gibi, resimlere bakın - nakliye dahil yaklaşık 3,50-5,00€). Daha sonra onu USB gücüne bağlayabilir veya birlikte verilen pil takımını kullanabilir, bir parça kağıda bir arayüz çizebilir ve duvara yapıştırabilirsiniz. Bitti. Bu özel pano için bağlantı noktaları şunlardır:

int userPins[numUser] = {5, 4, 2, 14, 16};

baştan aşağı.

4. Adım: Outlook/Referanslar

Hâlâ planladığım şey: 1. Güzel bir konut yapmak (tabii ki) 2. Kullanıcıları/LED'leri/MAC'leri/bilinen cihazları yönetmek için güzel bir GUI eklemek 3. Kitaplığı geliştirmek (bunun için Github'a bakın) 4. Düzeltme: bazen LED'ler Belirgin bir neden olmadan yavaş tepki verir (bir cihaz ayrıldıktan sonra kapanmaları biraz zaman alır) 5. Bu şeyi koridora ve belki de evin etrafında birkaç tane daha bağlayın Sizden biraz bilgi almak isterim çocuklar! Ve her zaman olduğu gibi, başkalarının sizin düşündüğünüz şeyleri yaptığını görmek beni gerçekten mutlu ediyor, bu yüzden lütfen yorum yapmak ve fotoğraf göndermek için bir dakikanızı ayırın!:):)Biraz daha referans Size yardımcı olabilecek bazı şeyleri buraya bağlayacağım: • TR-064 referansı • Kabuk ve TR-064 ile uğraşan bir adam (API'yi kavramak güzel) • Harry Potter Wikipedia: Weasley Clock girişi • Bazı adamlar güzel ama karmaşık bir Weasly Clock inşa ediyor*_*Telefonunuz için konumunuzu alan bir uygulamaya dayanmaktadır. Belirli önceden tanımlanmış alanlarda iseniz, saatin üzerindeki ilgili ışık yanacaktır. Benim için bu çok karmaşıktı ve bozulabileceği/başarısız olabileceği birçok yer vardı: • Uygulamaların güncel tutulması gerekiyor • Herkes bu uygulamaları kullanmalı • Ve mahremiyet üzerindeki etkisi konusunda sorun yaşamamalı • Uygulama sadece internet ile çalışıyor bağlantı • İletişimi arayüzlemek için bir ara sunucu kullanmanız gerekir (sizin esp'yi sunucu olarak kurmak ve ev ağınızı dış trafiğe açmak istemiyorsanız - evet, doğrudan internete bağlı başka bir güvensiz IOT cihazı!) • The ara hizmet bir gün çevrimdışı olabilir/API'sini değiştirebilir, • …Daha fazla yazılıma ihtiyacınız var. Daha fazla yazılım, hata yapmak için daha fazla yer demektir;)Ama harika bir iş çıkardılar ve böyle bir şey yapmak istiyorsanız, sitelerine gidin, gerçekten harika!

Önerilen: