İçindekiler:

Postino: Postacı Bir Şey Getirdi mi?: 6 Adım (Resimlerle)
Postino: Postacı Bir Şey Getirdi mi?: 6 Adım (Resimlerle)

Video: Postino: Postacı Bir Şey Getirdi mi?: 6 Adım (Resimlerle)

Video: Postino: Postacı Bir Şey Getirdi mi?: 6 Adım (Resimlerle)
Video: Ölüm Gecesi Kabirde İlk Ne Olacak? - Kabir Azabı | Mehmet Yıldız 2024, Temmuz
Anonim
Postino: Postacı Bir Şey Teslim Etti mi?
Postino: Postacı Bir Şey Teslim Etti mi?

Benim fikrim değil: bir gün bir arkadaşım benden posta kutusuna herhangi bir posta postası gelip gelmediğini uzaktan kontrol etmenin bir yolunu istedi. Posta kutusu kapısına giden yolda değil, bu yüzden tembel bir çocuk olduğundan, bir teknoloji aygıtının onu posta kutusuna herhangi bir mektup gelmesi konusunda uyarıp uyaramayacağını merak etti. Piyasaya baktım ve ihtiyaçlarına uygun herhangi bir hazır cihaz bulamadım, bu yüzden kendime bir meydan okuma getirdim: neden tasarlayıp inşa etmeyeyim?

Kısıtlamalar şunlardı:

  • pil değişiklikleri arasında makul bir ömürle pille çalışır;
  • WiFi iletişimi;
  • posta olup olmadığını günde sadece bir kez kontrol edin;

Asıl soru şuydu: gereksinimlerime hangi tür sensör uyabilir? Kontrolün gerçek zamanlı olarak değil, günde yalnızca bir kez yapılması gerektiğinden yakınlık sensörü çalışamazdı; ağırlık sensörü de yoktur, çünkü bu ek karmaşıklık ve hassasiyet sorunlarına yol açacaktır (bir yaprak kağıt çok hafif olabilir). Seçimim bir Uçuş Süresi (mikro lazer) sensörüne indi. Posta kutusu boyutuna göre kalibre edildiğinde, ortada duran herhangi bir şey sensörü tetikleyebilirdi! 3 kısıtlamayı göz önünde bulundurarak, bir ESP8266 (yazılımı çalıştırma ve WiFi'ye bağlama), ölçüm için bir VL6180 Uçuş Süresi sensörü ve tüm devreleri günde bir kez tetiklemek için bir DS3231 Gerçek Zamanlı Saat kullanmaya karar verdim: işte böyleydi Postino doğdu!

Adım 1: Parçalar ve Bileşenler

  • ESP8266-01 (veya ESP-12E NodeMCU)
  • VL6108 Uçuş Süresi sensörü
  • DS3231 Gerçek Zamanlı Saat
  • IRLZ44 N-kanal MosFET
  • BC547 Transistör
  • dirençler
  • CR123 Pil

Adım 2: Sensör

Sensör
Sensör

Sistemin kalbi VL6180 sensörüdür. Bu, hedef yansımadan bağımsız olarak mutlak mesafenin ölçülmesine izin veren çığır açan bir teknolojidir. VL6180X, nesneden geri yansıyan ışığın miktarını (renk ve yüzeyden önemli ölçüde etkilenir) ölçerek mesafeyi tahmin etmek yerine, ışığın en yakın nesneye gitmesi ve sensöre geri yansıması için geçen süreyi hassas bir şekilde ölçer (Zaman -of-Uçuş). Kızılötesi yayıcı, menzil sensörü ve ortam ışığı sensörünü üçü bir arada kullanıma hazır yeniden akıtılabilir bir pakette birleştiren VL6180X'in entegrasyonu kolaydır ve son ürün üreticisine uzun ve maliyetli optik ve mekanik tasarım optimizasyonlarından tasarruf sağlar.

Modül, düşük güçte çalışma için tasarlanmıştır. 2,7 V ila 5,5 V giriş voltajı aralığında çalışmasına izin veren voltaj regülatörlerine sahip Pololu devre kartını kullandım.

Sensör, farklı hassasiyetlerle 20 ila 60 cm arasında maksimum ölçüm aralığını ayarlayan 3 geçerli ölçeklendirme faktörüne izin verir. Bir aralık ölçeklendirme faktörü yapılandırarak, sensörün potansiyel maksimum aralığı, daha düşük çözünürlük pahasına artırılabilir. Ölçekleme faktörünün 2 olarak ayarlanması, 2 mm çözünürlükte 40 cm'ye kadar menzil sağlarken, 3 ölçekleme faktörü, 3 mm çözünürlükte 60 cm'ye kadar menzil sağlar. 3 teraziyi posta kutusu boyutlarınızla test etmeniz gerekir. Benimki 25 cm (Y) olduğundan ölçek faktörü=1 kullandım.

3. Adım: Gerçek Zamanlı Saat Özelleştirmesi

RTC için, bir EEPROM (amacım için işe yaramaz) ve madeni para büyüklüğünde bir pil içeren bir DS3231 devre kartı kullandım. RTC'ye ana cihaz pili (3v CR123) ile güç vermeye karar verdiğimde, madeni para pilini çıkardım; güçten tasarruf etmek için EEPROM'u (pimlerini dikkatlice keserek) ve yerleşik led'i de çıkardım.

Madeni para pili benim için kullanışlı değildi çünkü gerçek zamanlı tarih/saat/dakika/saniye tutmam gerekmiyordu, ancak RTC'nin yalnızca 24 saat sayması ve ardından cihazı açmak için alarmı tetiklemesi gerekiyordu.

Adım 4: Gemideki Diğer Çeşitli

Gemideki Diğer Çeşitli
Gemideki Diğer Çeşitli
Gemideki Diğer Çeşitli
Gemideki Diğer Çeşitli

Cihazın açılması, RTC alarmı tarafından tetiklenen bir transistör ve MosFET devresi ile gerçekleştirilir. Alarm sıfırlandığında devre, 24 saatlik bir döngü için cihaza giden gücü keser. Alarma ulaşıldığında, DS3231 bir pimi yüksekten düşüğe değiştirir: normal koşullarda transistör doymuştur ve MosFET'in kapısına kısa devre yapar. Alarm, transistörün tabanını toprağa getirdiğinde, açılır ve MosFET'in devreyi kapatmasına ve bileşenlerin geri kalanına güç vermesine izin verir.

Ayrıca bir “test-1M” jumper'ı ekledim. Bu anahtarın amacı – etkinleştirilirse – dağıtım testlerini çalıştırmak için döngüyü günde bir defadan dakikada bir defaya değiştirmektir. Aralığı bir günden bir dakikaya değiştirmek için önce “Test-C” jumperını yaklaşık 15 saniye kapatmanız, saat alarmı aktivasyon süresini atlamanız ve cihazı açmanız gerekir. Testler bittiğinde jumperları açın ve cihazı sıfırlayın (çevrim gücü).

Adım 5: Şematik

Şematik
Şematik

Adım 6: Yazılım ve Mantık

Testler sırasında (pratik nedenlerle) bir NodeMCU denetleyicisi kullandım, bu nedenle yazılım, CHIP değişkenini “NodeMCU” veya “esp8266” olarak ayarlayarak bunu halleder.

Çizim, ilk çalıştırma sırasında cihazın geçerli bir WiFi AP'ye bağlanmasına izin vermek için WiFiManager kitaplığını uygular. Böyle bir durumda, cihaz AP moduna geçerek ona bağlanmanıza ve katılmak için doğru WiFi ağını seçmenize olanak tanır. Bundan sonra, ağ konfigürasyonu sonraki döngüler için EPROM'a kaydedilir.

REST_MSG değişkeni, sensör posta kutusunda bir nesne bulduğunda gönderilecek http mesajını içerir. Benim durumumda, bir domotic REST sunucusuna bir mesaj gönderir, ancak bunu istediğiniz gibi değiştirebilirsiniz: bir Telegram BOT mesajı, bir IFTTT WebHook olayı, vb.

Döngüye asla ulaşılmadığından, taslağın geri kalanının tümü setup() işlevindedir. Birkaç kitaplık için gereken konfigürasyonlardan sonra, yazılım saati 00:00:01'e ve alarmı günde bir defaya (veya “test-1M” jumper'ı etkinleştirilmişse dakikada bir defaya) ayarlar. Ardından ölçüm yapar, (posta kutusunda herhangi bir nesne bulunursa) bildirim gönderir ve alarm pinini sıfırlayarak cihazı kapatır. Döngünün sonunda, yalnızca RTC açılır ve 24 saat sayar. Test-1M atlama kablosu, ESP8266'nın GPIO-3 olarak kullanılan RX pinine şu ayar aracılığıyla bağlanır: setMode(PIN, FUNCTION_3). Bu nedenle, ESP8266'yı çalıştırırken Seri monitörü kullanamazsınız: “#define DEBUG” satırı (taslaktaki tüm seri baskılara izin verir) yalnızca bir ESP8266 yerine bir NodeMCU kurulduğunda kullanılır.

ESP8266, Wire kitaplığında başlatılan GPIO-0 ve GPIO-2 pinleri aracılığıyla RTC ve sensör ile I2C iletişimini yönetir.

Kodun tamamı bu bağlantıdan indirilebilir.

Yardımcı Teknoloji Yarışması
Yardımcı Teknoloji Yarışması
Yardımcı Teknoloji Yarışması
Yardımcı Teknoloji Yarışması

Yardımcı Teknoloji Yarışmasında İkincilik

Önerilen: