Mündəricat:

AtmoScan: 7 addım (şəkillərlə)
AtmoScan: 7 addım (şəkillərlə)

Video: AtmoScan: 7 addım (şəkillərlə)

Video: AtmoScan: 7 addım (şəkillərlə)
Video: Jennifer Lopez x Dolby Atmos : Can`t Get Enough 2024, Noyabr
Anonim
Image
Image
Sensorlar
Sensorlar

**********************************************************************************************

XƏBƏRLƏR

GitHub -a gedin:

- Bəzi kiçik hardware dəyişiklikləri, dizayndan ən böyük çatışmazlıqlardan birini aradan qaldırmaq üçün proqramdan özünü söndürmə qabiliyyəti də daxil olmaqla dizaynı yaxşılaşdırır - aşağı batareyanı necə idarə etmək olar.

- PCB v2 dizaynı, dəyişikliyi V1.0 lövhələrinə asanlıqla tətbiq etmək üçün bir bələdçi ilə birlikdə nəşr olunur.

- Tamamilə bağlama üçün CAD faylları

Yeni korpus yuxarıdakı şəklə bənzəyir … yaxşı, rezin bant olmadan

****************************************************************************************

ATMOSCAN, qapalı havanın keyfiyyətini izləməyə yönəlmiş multisensor cihazdır. Bənzər məqsədi olan bir çox layihə nəşr olunsa da, hamısını ümumiləşdirən kompakt, özünəməxsus bir paketdəki tam bir sistemdir. LCD rəngli ekrana malikdir, vaxt və məkandan xəbərdardır, jestlə idarə olunur və MQTT vasitəsi ilə ThingSpeak -a (və ya digərlərinə) göndərir, lakin əlaqəsi kəsilmiş əməliyyatları və yenidən əlaqəni düzgün idarə edə bilir. Daxili doldurulan batareya ilə elektrik enerjisi kəsildikdə tam bir gün davam edir.

Çox vəzifəli kooperativ çərçivədən istifadə edir və sensorlar nümunə götürərkən, istifadəçi interfeysini idarə edərkən, MQTT -yə göndərərkən istifadəçi girişinə çox həssasdır. Əslində kiçik ESP8266 -dan bir az sıxılır. Bunu bir sıra açıq mənbə kitabxanalarını birləşdirərək və internet veb xidmətlərindən istifadə etməklə edir.

Kitabxanalar üçün kreditlər bir çox töhfəçiyə verilir, daha sonra baxın.

Videoda musiqi BURADA tapa bilərsiniz

Addım 1: Sensorlar

Atmoscan bir çox dəyişəni ölçür:

  • Temperatur
  • Rütubət
  • Təzyiq
  • CO2
  • CO
  • NO2
  • VOC (Uçucu üzvi birləşmələr, Hava keyfiyyəti göstəricisi)
  • PM 01
  • PM25
  • PM10
  • Radiasiya

Bunu etmək üçün bir sıra diskret sensorlar birləşdirir

  • BME280 (məsələn, link)
  • PMS7003 (məsələn, Link)
  • MH-Z19 (məsələn, Link)
  • HDC1080 (məsələn, link)
  • MiCS6814 (Bağlantı)
  • MP503 (Bağlantı)
  • LND-712 Geiger borusu (Link, Avropada tapdım burada Link və ya bura link) yüksək gərginlikli modulu ilə (Link)

Məlumat Vərəqləri BURADA.

Addım 2: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Atmoscan, NodeMCU və ya hər hansı digər ESP8266 lövhəsi və səviyyəli dəyişdiricilər və gərginlik tənzimləyiciləri kimi asanlıqla əldə edilə bilən komponentlər ilə asanlıqla qurula bilər.

Ayrı komponentlərlə prototip hazırladığım halda, son versiya üçün bütün funksiyaları birləşdirən və sensorlar üçün səliqəli bağlayıcılar, vəziyyət üçün LEDlər (Mavi = enerji təchizatı qoşuldu; Qırmızı = şarj) verən xüsusi bir lövhə hazırladım.

Eagle PCB faylları BURADA mövcuddur.

Xüsusilə, idarə heyəti birləşdirir:

  • MAX8903A (Link) əsasında şarj dövriyyəsi
  • Bir düyməli açma/söndürmə məntiqi
  • ESP12E modulu
  • Proqramlaşdırma məntiqi
  • Səviyyə dəyişdiricisi
  • LCD arxa işıq sürücüsü
  • 3.3V Pololu S7V8F3 əsasında Link-Up
  • Pololu U1V10F5 (Link) əsasında 5V Artan Gərginlik Tənzimləyicisi
  • SparkFun TOL10617 əsasında LiPo Yanacaq Göstəricisi (Link)

Ekran, ILI9341 çipinə (Link) əsaslanan 2,8 TFT 320x240 formatındadır.

Jest sensoru, fasiləsiz fasilələr yaradan və pleksiglas vasitəsilə işləyə bilməyən ucuz APDS9960 -dan daha yaxşı olan PAJ7620U2 çipinə (Link) əsaslanır.

Sensorlar kifayət qədər acdır, buna görə də ən azı 24 saatlıq muxtariyyət təmin etmək üçün 3 x 5000mAh LiPo 105575 batareyaları olan bir paket hazırladım (Link). Əslində 2 ədəd kifayət edərdi. MAX8903 şarj cihazı, ortaya çıxan 15.000 mAh paketini doldurmaqda çətinlik çəkir.

QEYDLƏR - ŞƏKİLLƏRDƏ GÖRüldüyü kimi:

  • Bağlayıcıların mövqeyi göstərilir
  • Qutuya uyğun olmasını istəyirsinizsə, SD kart yuvasının ekrandan çıxarılması lazımdır
  • Fana müdaxilə etməmək üçün PCB -də kiçik bir çuxur düzəltməlisiniz (çentiklər iPhone X -dən sonra dəbdədir). PCB V2 -də düzəldildi

PCB -də bağlayıcıların qısaldılması aşağıdakı kimidir:

  • PRS: Barometrik Təzyiq Sensoru (BME280 əsasında) QEYD: birbaşa PCB -yə quraşdırılacaq
  • VOC: Grove - Hava keyfiyyəti sensoru v1.3 (MP503 əsasında)
  • TMP: Yüksək Dəqiqlik Rəqəmsal Nəmlik və Temperatur Sensoru (HDC1080 əsasında)
  • PMS: PMS7003 Rəqəmsal hissəciklərin konsentrasiyası sensoru
  • GAS: Grove - Çoxkanallı Qaz Sensoru (MiCS6814 əsasında)
  • GES: Grove - Jest sensoru (PAJ7620U2 əsasında)
  • RAD: Geiger borusu (TTL Sayısallaşdırılmış Pulse Çıxışlı 400V / 500V Yüksək Gərginlikli Geiger Probe Sürücü Güc Təchizatı Modulu vasitəsilə)
  • CO2: MH-Z19 infraqırmızı CO2 qaz sensoru
  • U1V10F: Pololu-ya əsaslanan 5V Artan Gərginlik Tənzimləyicisi
  • U1V10F5 S7V8V3: Pololu S7V8F3 əsasında 3.3V Step-Up/Step-Down Voltage Regulator
  • TOL10617: Sparkfun LiPo Yanacaq Göstəricisi
  • LCD: ILI9341 ekran

Addım 3: Qapaq

Mühafizə
Mühafizə
Mühafizə
Mühafizə
Mühafizə
Mühafizə

Korpus, ebay -dan aldığım 10x10x10 sm ölçülü bir pleksiglas kub konteynerdən alınmışdır və tamamilə fərqli istifadə üçün nəzərdə tutulmuşdur. Tam lazım olan gözəl havalandırma yuvaları var idi. Həcmi praktik olaraq bütün dəsti yığmaq üçün kifayət idi, asan olmadı … karton maketlərə əsaslanan bəzi erkən cəhdlər uğursuz oldu, buna görə 3D CAD ilə bir neçə saat boşa getdim və daxili dəstəyi lazerlə kəsdim. Daxili boşluq hissələrə bölünür ki, temperatur sensoru daxili istilik mənbələrindən mümkün qədər uzaq olsun. Xarici korpus 3 mm materialdan, üstü isə 2+1 mm təbəqələrdən hazırlanmışdır. Bu hiylə, jest sensorunun yalnız 1 mm akril ilə örtülməsinə icazə verdi və bu, onun işləməsi üçün kifayətdir.

Fan, açar və USB delikləri kimi orijinal korpusdakı əl alətləri ilə bəzi dəyişikliklər edilməli idi. Nəticə yenə də layiqli idi!

CAD faylları BURADA.

Addım 4: Mexaniki montaj

Mexanik Quraşdırma
Mexanik Quraşdırma
Mexanik Quraşdırma
Mexanik Quraşdırma
Mexanik Quraşdırma
Mexanik Quraşdırma

Paket çox sıxdır, lakin 3D cad dizaynı sayəsində onu yığarkən bir neçə sürprizlə qarşılaşdım.

Hava dövranı (yuxarıdan aşağıya) kiçik bir fan tərəfindən təmin edilir. Aliexpress / eBay -də ədalətli bir nömrə aldıqdan sonra, ucuz fanatların səs -küyünün qapalı bir cihaz üçün dözülməz olduğunu başa düşdüm. Olduqca bahalı, yavaş dönən bir Papst 255M (Link) satın aldım və bir neçə diod vasitəsilə 5V -dən az qidalandırdım. Nəticə olduqca yaxşıdır və gözədəyməz qalmaq üçün kifayət qədər səssizdir (hətta arvad tərəfindən təsdiqlənmişdir, ən çətin sertifikat).

Addım 5: Proqram təminatı

Proqram təminatı
Proqram təminatı
Proqram təminatı
Proqram təminatı
Proqram təminatı
Proqram təminatı
Proqram təminatı
Proqram təminatı

Proqram arxitekturası, UI, sensorlar və MQTT ilə işləyən çoxlu (kooperativ) prosesləri idarə edən Obyekt yönümlü bir çərçivəyə əsaslanır. Bu yer və vaxtdan xəbərdardır, lakin WiFI ilə əlaqənin kəsilməsini / yenidən bağlanmasını idarə edə bilər.

Çərçivə açıqdır və kodları və mənbələri Flash yaddaşına uyğun olduğu müddətdə istənilən sayda ekranı idarə edə bilir. Tətbiq çərçivəsi jestləri idarə edir və lazım olduqda daha çox işləmək və ya ləğv etmək üçün ekranlara ötürür. Çərçivə tərəfindən idarə olunan jestlər bunlardır:

  • Sola / sağa sürüşdürün - Ekranı dəyişdirin
  • (Barmaq) Saat yönünde dönmə - Ekranı döndər
  • (Barmaq) Saat əqrəbinin tersi yönünde fırlanma - Quraşdırma ekranını çağırın
  • (Əl) Uzaqdan yaxına - Ekranı söndürün

Ekranlar əsas sinifdən miras alınır və aşağıdakı hadisə modeli ilə idarə olunur:

  • aktivləşdir - ekran yaradıldıqda bir dəfə atəşə tutulur
  • yeniləmə - ekranı yeniləmək üçün vaxtaşırı çağırılır
  • deaktiv edin - ekran sönməzdən əvvəl bir dəfə çağırılır
  • onUserEvent - jest sensoru işə salındıqda çağırılır. Varsayılan hadisə işlənməsinə cavab verməyə və ləğv etməyə imkan verir, məsələn. ekranı dəyişdirmək üçün sürüşdürməyi ləğv edin

Hər bir ekran aşağıdakı məlumatları verməklə öz imkanlarını bəyan edir:

  • getRefreshPeriod - ekranın nə qədər tez -tez yeniləməyə ehtiyacı var
  • getRefreshWithScreenOff - arxa işıq söndürüldükdə belə ekran təzələnmək istəyirsə. məs. qrafiklər üçün
  • getScreenName - ekranın adı
  • isFullScreen - ekrana tam nəzarət edin və ya tarix/vaxt/yer/batareya göstəricisi/wifi ölçüsü ilə üst çubuğa icazə verin

Çərçivə, deklarativ sinif fabriki vasitəsilə ekranları düzəldə və ayıra bilər. Dinamik ayırma RAM -a qənaət edir və cihazı asanlıqla genişləndirir. Ümumi tətbiq çərçivəsi digər layihələr üçün də təkrar istifadə edilə bilər.

Hal -hazırda Atmoscan -da tətbiq olunan ekranlar bunlardır:

  • Sensorların dəyərləri
  • Geiger metr / semilog qrafiki
  • Sistem vəziyyəti
  • Xəta girişi
  • Hava İstasyonu
  • Təyyarə Spotter
  • Qurmaq
  • Az batareya

Quraşdırma ekranları Wifi etimadnaməsini, MQTT kanallarını, Syslog serverini təyin etməyə imkan verir.

V2.0 -da YENİ: bütün veb xidmətləri açarları artıq konfiqurasiya portalı vasitəsilə konfiqurasiya edilə bilər. Hələ də kodlaşdırılmış olan yeganə dəyər OTA paroludur (böyük hərf ATMOSCAN).

QEYD 1: İlk proqramlaşdırma proqramlaşdırma konnektoruna qoşulmuş USB-Serial kabeli ilə aparılmalıdır. Seriya portu bir sensor tərəfindən tutulduğundan, montajdan sonra bu şəkildə ayıklama və proqramlaşdırma praktiki deyil, çünki sensoru ayırmaq lazımdır. Buna görə də proqram SYSLOG ayıklama və OTA yeniləmələrini dəstəkləyir.

Qeyd 2: ATMOSCAN ikili 700 KB -dən çoxdur və ArduinoOTA, proqram sahəsinin "4M (3M SPIFFS)" seçimini istisna edən görüntü ölçüsünün ən azı iki qat böyük olmasını tələb edir. Bununla birlikdə, standart "4M (1M SPIFFS)" seçimi də uyğun deyil, çünki SPIFFS bölməsi hava stansiyası, təyyarə spotteri və konfinq faylı ilə əlaqəli qrafik mənbələr üçün kifayət etməyəcəkdir. Buna görə problemi həll etmək üçün "4M (2M SPIFFS)" xüsusi bir konfiqurasiya yaradılmışdır. Burada izahat.

Sənədlər və tam mənbə kodu burada mövcuddur.

KREDİTLƏR KODU & KİTABXANALARI DAHİL EDİR

  • Adafruit
  • Arcao
  • Bblanchon
  • Bodmer
  • Bağlı Kub
  • Gmag11
  • Məktəbli
  • Lucadentella
  • Görüldü
  • 78
  • Tzapu
  • Sehrbaz 97

WEB XİDMƏTLƏRİNİ ENTEGRE EDİR

  • Adsbexchange.com
  • GeoNames.org
  • Google.com
  • Mylnikov.org
  • Timezonedb.com
  • Wunderground.com

Addım 6: Daha yaxşı olun

Daha yaxşı olun!
Daha yaxşı olun!

Nəticə heç də pis deyil! Proqram yaxşı görünür və etibarlıdır, halbuki yeni xüsusiyyətlərlə genişləndirilə bilər və bəlkə də tətbiq çərçivəsini digər layihələr üçün yenidən istifadə etmək üçün bir qədər təmizlənə bilər. Bəzi sensorların kalibrlənməsi o qədər də yaxşı deyil, amma test laboratoriyası avadanlıqlarına ehtiyac olardı. Zaman qiymətlidir və çox şeyim yoxdur, buna görə irəliləyiş yavaş idi. İşim bitənə qədər ESP32 üçün layiqli dəstək mövcud oldu. İndi başlamış olsaydım, istifadə edərdim və bluetooth vasitəsilə xarici sensorları birləşdirərdim.

Hər kəs?

Qeyd: Hələ bir neçə PCB var, buna görə hər kəs maraqlanırsa nominal / poçt qiymətində mövcuddur.

Addım 7: Suallar və Cavablar

Suallar və Cavablar
Suallar və Cavablar
Suallar və Cavablar
Suallar və Cavablar

İlk növbədə, çox müsbət fikirləriniz üçün təşəkkür edirəm. Düzü, bu qədər maraq gözləmirdim.

Şərhlər və ya şəxsi mesajlar vasitəsilə bir çox sual aldım, buna görə də cavabları burada toplamağı düşündüm. Daha çox gəlsə, əlavə edərəm.

Bir çekmecenin arxasında 8 mövcud PCB tapdım - Belçika, Almaniya, Hindistan, ABŞ, Kanada, Böyük Britaniya, Avstraliyaya gedirlər. Vay, 3 qitə! İnanılmaz.

ATMOSCAN konfiqurasiya səhifəsinə nə qoymalıyam?

Atmoscan konfiqurasiya səhifəsi aşağıdakı parametrləri tələb edir:

  • Qoşulmaq istədiyiniz WiFi şəbəkəsinin SSID və şifrəsi
  • İstifadə etdiyiniz MQTT serveri. Məsələn, mqtt.thingspeak.com istifadə edirəm
  • İstifadə olunan MQTT mövzuları üçün əlaqə xətti. Məsələn, Thingspeak MQTT mövzuları formatdadır: kanallar/KANAL-ID/dərc/WRITE-API (NÜMUNƏ: kanallar/123456/dərc/567890)
  • Syslog serveri: giriş üçün istifadə etdiyiniz syslog serverinin IP ünvanıdır
  • Maps Static API üçün Google açarı. Https://console.cloud.google.com/apis/dashboard -dan bir açar əldə edin. Bir layihə yaradın; Atmoscanın istifadə etdiyi API https://maps.googleapis.com/maps/api/staticmap -dir. Yeni yaratdığınız google layihəsində bu API üçün bir açar yaradın, burada istifadə edin
  • Hava Yeraltı açarı. Www.wunderground.com saytında bir hesab yaradın, WEATHER API -yə gedin (ana səhifənin altındakı link, ƏSAS AYARLARA gedin, bir açar yaradın, burada istifadə edin)
  • Geonames hesabı. Http://www.geonames.org/ saytında bir hesab yaradın ki, pulsuz veb xidmətlərindən istifadə etsin və istifadəçi adını bura qoysun.
  • TimeZoneDB açarı. Https: //timezonedb.com/ saytında bir hesab yaradın, bir açar yaradın və bura qoyun

Thingspeak -ı necə konfiqurasiya edə bilərəm?

3 Thingspeak kanalı lazımdır. Sahələr aşağıdakı kimi istifadə olunur:

KANAL 1 sahələri

  1. TEMPERATURE
  2. Rütubət
  3. BASINÇ
  4. PM01
  5. PM2.5
  6. PM10
  7. CPM
  8. RADİASİYA

KANAL 2 sahələri

  1. CO
  2. CO2
  3. NO2
  4. VOC

KANAL 3 sahələri (Sistem kanalı)

  1. DƏQİQƏLƏRDƏ UPTIME
  2. BAYTLARDA PULSUZ YÜK
  3. WIFI RSSI (DBM -də SİNYAL)
  4. BATARYA GERİLİMİ
  5. LINEAR SOC (BATTERY CHARGE STATE % - xətti hesablama, gərginliyə mütənasib)
  6. DOĞAL SOC (BATTERY DARAĞI VƏZİYYƏTİ % - ölçü ilə bildirildiyi kimi. Ölçüdən oxunduğu kimi. DİQQƏT: Batareyalar bir az da boşaldıla biləcəyi halda 3.6v -ə çatanda ölçü 0 % deyir, 3v -dən yuxarı deyək. Alt limit, ATMOSCAN -ın özünü söndürdüyü, globaldefinitions.h faylında #define)
  7. SİSTEM SICAKLIĞI (bme280 -dən birbaşa lövhəyə quraşdırılmışdır)
  8. SİSTEM Rütubəti (bme280 -dən birbaşa lövhəyə quraşdırılmışdır)

PCB çox yığcamdır. SMD cihazlarını, xüsusən MAX8903A IC -ni necə lehimləməliyəm?

Birincisi, SMD-yə girmək istədiyinizi və ya birdəfəlik olub olmadığını özünüzdən soruşmağınızı təklif edirəm- Əgər ikincisi varsa, bəlkə də kiminsə sizin üçün bunu etməsini istəyin. SMD problemini həll etmək istəyirsinizsə, bir az sərmayə qoyun və uyğun alətləri (lehim, axı, izopropilik spirtli kiçik dəmir, isti silah, cımbız, ucuz bir USB kamera, bir PCB tutacağı) əldə edin. İndiki vaxtda bu ucuz maldır. Sonra bir YouTube videosuna baxın-yarım milyon var-və bəzi komponentləri qurban verə və lehimləmək / təmizləmək / lehimləmək üçün köhnə bir PCB ilə bir az vaxt keçirin. Nə gözlədiyinizi öyrənmək, istiliyinizi və s. Əldə etmək üçün təcrübəyə əsaslanaraq inanmırsınız … SMD -ni iPod touch -da ekran bağlayıcısını dəyişməyə başladım və birincisini öldürdüm!

Həqiqətən də Atmoscan PCB kompaktdır və IC asan deyil. Yenə də ilk SMD lehimləmə olaraq bunu etməyi məsləhət görmürəm. İndiyə qədər bir nömrəni lehimləməyimə baxmayaraq QFN dost bir paket deyil. Düzgün aldığınızdan heç vaxt əmin deyilsiniz …

Atmoscan -da əvvəlcə lehim etdim, sonra ətrafdakı komponentləri lövhənin şarj hissəsinin işlədiyini yoxlaya bildim, sonra qalan hissəni tamamladım. Əlavə edilmiş şəkillərdən komponentlərin istiqamətini təyin etməlisiniz. İctimai sahə komponent kitabxanalarından istifadə etdim və oriyentasiya ipək ekranda o qədər də aydın deyil.

Mənim yolum: əvvəlcə dəmir olan yastıqlara bir az lehim qoydum. Sonra bir çox axın (SMD -ə xas) və IC -ni cımbızla diqqətlə yerləşdirdim. Qeyri -bərabər istiləşmə səbəbiylə gərginliyin qarşısını almaq üçün hər şeyi təxminən 200/220C -ə qədər qızdırın. Sonra IC -nin ətrafında və ya ətrafındakı temperaturu 290C -ə qaldırdım. Yaxınlıqdakı yastığa bir az lehim qoysanız, temperaturun ərimə nöqtəsində olduğunu görəcəksiniz, çünki parlayacaq.

Bundan sonra izopropilik spirtlə təmizlədim və ucuz USB kamera ilə diqqətlə yoxladım. Tipik problemlər hizalanma və lehim miqdarıdır, çünki bəzi pinlər bağlana bilməz. Bəzi hallarda, bəzi sancaqlara bir az daha lehim əlavə etmək üçün kiçik bir lehimləmə dəmiri ilə geri qayıtmalı oldum, çünki bu IC -nin də lehimlənməsi lazım olan bir termal yastığı var. Bu, lehim miqdarını təxmin etməyi bir az çətinləşdirir və altından çox lehim çıxarıla bilər ki, sancaqlar PCB -yə toxunmasın.

Bunu dedikdən sonra sizi qorxutmaq istəmirəm. 3 lövhəni tamamladım və bu IC -ləri heç vaxt öldürmədim … Bir dəfə belə çıxartmalı, təmizləməli və sıfırdan yenidən başlamalı olsam da, sonda işləmişdir. Yenə də çox asan deyil, amma edilə bilər.

Komponentləri haradan almısınız?

Əsasən eBay və Aliexpress -də. Bununla birlikdə markalı olanlar orijinaldır (Seeed, Pololu, Sparkfun).

Bəzi Göstərici bağlantılar izləyir. Qeyd: ətrafa baxın, daha ucuz təkliflər tapa bilərsiniz …

www.aliexpress.com/item/ESP8266-Remote-Ser…

www.aliexpress.com/item/PLANTOWER-Laser-PM…

www.aliexpress.com/item/High-Accuracy-BME2…

www.aliexpress.com/item/Free-shipping-HDC1…

www.aliexpress.com/item/J34-F85-Free-Shipp…

www.aliexpress.com/item/30pcs-A11-Tactile-…

www.aliexpress.com/item/10PCS-IRF7319TRPBF…

www.aliexpress.com/item/120PC-Lot-0805-SMD…

www.aliexpress.com/item/100pcs-sma-1N5819-…

www.aliexpress.com/item/Free-Shipping-100P…

www.aliexpress.com/item/Chip-Capacitor-080…

www.aliexpress.com/item/92valuesX50pcs-460…

www.aliexpress.com/item/170valuesX50pcs-85…

www.aliexpress.com/item/Si2305-si2301-si23…

www.aliexpress.com/item/100pcs-lot-SI2303-…

www.aliexpress.com/item/20pcs-XH2-54-2-54m…

www.aliexpress.com/item/10pcs-SMD-Power-In…

İlk proqramlaşdırma Atmoscan lövhəsi, NodeMCU ilə uyğun bir proqramlaşdırma sistemini ehtiva edir. Serial keçid ümumiyyətlə ilk proqramlaşdırma üçün istifadə olunur. Bundan sonra, tam yığılmış qurğu ilə edilə biləcəyi üçün WiFi vasitəsilə OTA proqramlaşdırması üstünlük verilən seçimdir. Serial portun normal olaraq hissəcik sensoru tərəfindən istifadə edildiyini unutmayın!

Lövhəni seriya ilə proqramlaşdırmaq üçün, sxematik şəkildə göstərildikdən sonra J7 konnektoruna (sıfırlama düyməsinin yanında) bir USB-Serial adapter (məsələn, FTDI232 və ya bənzəri) bağlanmalıdır. Proqram, sensorlar bağlanmadan yüklənə bilər, istisna olmaqla, geiger sensorunun kəsmə xətti GND -yə qoşulmalıdır, əks halda lövhə açılmayacaq (bunu etmək üçün 1 və 3 -cü pinləri RAD bağlayıcısına bağlayın). Əsas eskizdən istifadə etmədən lövhəni sınamağın ən asan yolu, buna görə də sensorların mürəkkəbliyi olmadan - bu sadə proqramı serial kabel vasitəsilə yükləməkdir. Əsas proqramla daha da yanıb -sönməyə imkan verən bir WiFi giriş nöqtəsi yaradır.

Vacib: 4M/2M SPIFFS konfiqurasiyasını təlimata uyğun istifadə etməyi unutmayın, əks halda əsas proqram uyğun olmayacaq. Lövhə bu konfiqurasiya ilə serial proqramlaşdırma yolu ilə işə salınmalıdır, əks halda daha sonra OTA ilə bağlı problemləriniz ola bilər.

Təəssüf ki, sensorlar olmadıqda bəzi sensorların işə salınması bloklanır (kitabxananın təminatçısından asılıdır). Bir nümunə, çoxqazlı sensor kitabxanasıdır. Tam firmware ilə Atmoscan'ın düzgün çəkilməsini təmin etmək üçün əlaqəli prosesi deaktiv edə bilərsiniz, əlaqədar sual -cavab nöqtəsinə baxın. Sınaq üçün BÜTÜN sensörleri söndürməyin sadə yolu, GlobalDefinitions.h faylında ENABLE_SENSORS #define xəttini şərh etməkdir.

Lövhə əsas eskizi ilk dəfə çəkəndə, konfiqurasiya edilmədiyini başa düşməli və qoşula və qura biləcəyiniz bir WiFi giriş nöqtəsi açmalıdır. Ayarlar arasında, çox ayıklamaya kömək edən bir syslog serveri var. GlobalDefinitions.h faylında #define DEBUG_SYSLOG şərhini yazaraq qeyd səviyyəsini artıra bilərsiniz. Nəzərə alın ki, eyni faylda ilkin ayıklama zamanı istifadə edilən #define DEBUG_SERIAL da var. Əgər şərh edilməmişdirsə, _some_ qalıq girişi çıxarır, lakin minimaldır. Bir ToDo maddəsi həmişə girişi vahid və seçilə bilən etmək idi, amma heç vaxt onu təmizləməyə vaxtım olmadı.

İstifadə etdiyiniz kitabxanaları dəyişdirmisinizmi, konfiqurasiyaya ehtiyac varmı? (yükləmək və tərtib etməkdən fərqli olaraq)

Yaxşı sualdır, bu məqamı qeyd etməyi unutmuşam. Əslində bir neçə mod / konfiqurasiya lazımdır:

  • Kitabxana https://github.com/Seeed-Studio/Mutichannel_Gas_Sensor - serial debug ifadələri. Şərh etmək lazımdır, çünki serial portu sensor üçün istifadə olunur!
  • Kitabxana https://github.com/Bodmer/TFT_eSPI - pin təyininin və SPI tezliyinin göstərildiyi bir konfiqurasiya faylı tələb edir
  • Kitabxana https://github.com/lucadentella/ArduinoLib_MAX1704… - Şərhlərə və çəkmə istəklərinə baxdığımda heç vaxt birləşdirilməyən bir səhv düzəlişinin olduğunu gördüm.

Xatırladığım qədər bu olmalıdır. Hər hansı bir problem yaranarsa mənə bildirin.

Qeyd: Zəhmət olmasa ən son mənbə kodundakı şərhlərə baxın - bütün lazımi kitabxanalara bağlantılar var və bu günə qədər saxlanılır

Niyə bəzi sensorlar videoda/şəkillərdə qırmızı, bəziləri isə yaşıl oxuyur?

Rəng tendensiyanı göstərir. Ağla başlayır və yuxarı qalxmaq qırmızı olarsa, enmək yaşıl olar.

Vaxt keçdikcə sensorların sürüşməsini necə idarə edirsiniz? Bu sensorlar nə qədər yaxşıdır? Bu sensorlar ilə nə görə bilərəm?

Düzünü desəm, bu elmi ölçü dəsti deyil. Kalibrləmə üçün əlimdə olmayan avadanlığa ehtiyacım olacaq. Bu həqiqətən bir ev heyvanı layihəsidir. Bir neçə sensoru sınadım. Hissəcik, CO2, temperatur, rütubət, təzyiq, Geiger mənim fikrimcə olduqca yaxşıdır. NO2 -də kalibrləmə və ümumi dizaynla bağlı qeydlərim var, amma çox da yoxdur. Ümumiyyətlə, onlar əsas sensorlardır.

Ancaq birləşmə gözləmədiyiniz şeyləri göstərmək üçün kifayət qədər yaxşıdır.

Atmoscan oturma otağında və mətbəx bir otaq uzaqda olduqda, məsələn, böyük hissəcik zirvələrini aşkar edir. qızardıcı şeylər. Pəncərələr bağlı olsa belə səhər trafikindən NO2 hiss edir.

Bir Geiger sayğacı həqiqətən lazım idi? Faydalı bir şey göstərirmi?

Şükürlər olsun ki, nüvə hadisələri baş vermədi və hələ müharibə gəlmir … Yenə də o qədər də uzaqda olmayan nüvə stansiyaları var və hökumət hadisələr baş verərsə uşaqların çekmecədə saxlanılması üçün yod həbləri paylayır … buna görə şübhələndim. İndiyə qədər demək lazımdır ki, oxunuşlar gözlənilən fon radiasiyasına tam uyğundur (0.12 uSv/saat)

Cihazın ümumi dəyəri nə qədərdir?

Artıq evdə bir çox komponentim var idi və yuxarıdakı bağlantılar sizə fikir verir. Düzünü desəm, hazır bir NetAtmo və ya bənzəri alsanız, pula qənaət edirsiniz. Geniş miqyaslı işlər görən bir Çin şirkətini məğlub edə bilməzsiniz! Ancaq uşaqlarınızla birlikdə hazırlamağı sevirsinizsə, buna dəyər. Yaxşı tərəfi ondadır ki, sizin üçün bir çox sensoru sınamışam (və atmışam).

PCB haqqında nə demək olar? Mənə birini sata bilərsən?

Əvvəlcə onlardan 10 -nu dirtypcbs.com tərəfindən hazırladım və sənədlərim yaxşı işləndi. Keyfiyyətli və kifayət qədər ucuz, 10 PCB üçün 25USD / 20Euro. Iki istifadə etdim və qalıqlarını çılpaq qiymətə göndərməkdən məmnunam (2 Avro + göndərmə, yerdən və göndərmə seçimlərindən asılı olaraq). Mənə şəxsi mesaj göndərənləri seçməyimdən qorxuram.

Bir dəst və ya bir başlanğıc kampaniyası edə bilərsinizmi?

Yaltaqlıq, amma vicdanla, bunun kifayət qədər yenilikçi olduğunu heç düşünmədim … və bundan başqa, VAXT YOXDUR !!

Ancaq kimsə bu fikri qəbul edərsə, ikinci bir təkrarlama lazımdır. Dizaynda düzəltməyə dəyər bəzi iti kənarlar var, amma yenə də V2 üçün kifayət qədər vaxtım olmadı.

Avadanlıqda: İmkanları genişləndirmək / enerji istehlakını azaltmaq üçün bir sensor, ekran və s əlavə edə bilərəmmi?

Ekran MISO istifadə etmədən bağlanır, buna görə CPU heç vaxt ekrandan oxumur. Buna görə də ekran qarışqasını bağlaya bilməzsiniz, yaxşı işləyəcək. Bunu söylədikdən sonra, ekran son jest aşkarlandıqdan sonra yalnız bir müddət yanır və buna görə də enerji istehlakına təsir etmir.

Sensorlar əvəzinə gücə acdır və hər şey asanlıqla 400/500mA istifadə edir. Ventilyatoru və hissəcik sensorunun da quraşdırılmış bir fan olduğunu unutmayın. ESP də GPIO ponlarının olmaması səbəbindən yuxu rejiminə keçmir. Ancaq bu, 20mA qənaət edə bilərdi …

Proqram moduldur və prosesləri və ekranları asanlıqla əlavə edə/silə bilərsiniz, buna görə də istəsəniz sensorlar əlavə edə və ya bəzilərini çıxarıb onu işıqlandıra bilərsiniz. Yeganə məhdudiyyət GPIO pinlərinin sayıdır. Bununla birlikdə, I2C və ya alternativ olaraq GPIO əlavə etmək üçün bir I2C genişləndiricisi istifadə olunarsa sensorlar asanlıqla əlavə edilə bilər …

Bir sensoru söndürmək üçün, məsələn, qismən quruluşu sınamaq, mənim fikrimcə ən yaxşı yol əlaqəli prosesi başlamamaq olar. Bu, əsas.ino faylında void startProcesses () funksiyasındakı əlaqədar enable () çağırışını şərh etməklə həyata keçirilə bilər. Sistemi struktur olaraq dəyişdirmək istəməsəniz, ekran və MQTT prosesləri onları sorğu -suala çəkəcəyi üçün prosesləri tamamilə silməzdim. Bu şəkildə onlar sıfıra dönməlidirlər. Unutmayın ki, geiger lövhəsi üçün kəsilmə girişi istifadə edilmədikdə aşağı salınacaq, əks halda lövhə açılmayacaq.

V2.0 üçün vaxtınız olsaydı, hansı inkişafları edərdiniz?

Xüsusi bir qaydada deyil..

  • PCB, ESP8266 antenasının arxasındakı misdən qaça bilər. Tamamilə unutdum və radiasiya diaqramını qeyri-izotrop edir
  • Məncə şarj cihazı belə böyük bir batareya üçün kiçikdir / batareya şarj cihazı üçün çox böyükdür. Başqa IC -lər var və başqa birini sınayardım.
  • Daha yaxşı batareya ölçü cihazları var.
  • Bir ozon sensoru əlavə edərdim
  • Əsas bölmədən daha çox GPIO və Bluetooth sensoru üçün ESP32 istifadə edərdim.
  • ESP32 ilə və ya I2C genişləndiricisiylə daha çox GPIO -ya sahib olsaydım, birini fanatı idarə etmək üçün, digərini isə qurğunu proqramdan söndürmək üçün istifadə edərdim. İndi batareya az olduqda, onu aşağı batareya ekranı göstərmək üçün edə biləcək yeganə şeydir. Bu, əslində dizaynın ən böyük dezavantajıdır, çünki aşağı batareya vəziyyəti zərif idarə olunmur.

Proqram təminatında

Məni aparatdan daha uzun çəkdi … Düşünürəm ki, bir çox yaxşı anlayışlar var, təəssüf ki, tam tətbiq olunmur. Xüsusilə, təmizlənməli, potensial olaraq genişləndirilməli olduğuna inanıram və ESP8266 tətbiqləri üçün ümumi bir çərçivə asanlıqla əldə edilə bilər. Vaxt yox. Çətinliyi götürən var?

Səs nəzarəti əlavə edə bilərsinizmi?

Mümkündür. Alexa ilə bir ESP8266-nı idarə etmək üçün bir çox hazır kitabxana var və inteqrasiyanın niyə problem olduğunu anlamıram. Maraqlı sual, funksionallıq baxımından bununla nə etmək istədiyinizdir. Amazon Echo sahibi deyiləm, buna görə heç cəhd etməmişəm.

Lazer kəsiklərini necə etdiniz?

Rəsmlər SketchUp ilə hazırlanmışdır. Proqram gözəldir, lakin ixrac imkanlarından ciddi şəkildə məhrumdur. Bununla birlikdə, 30 günlük sınaq versiyası əlavə funksiyaya malik olduğu üçün kömək edir. Daha sonra onu son emal üçün Inkscape -ə idxal etdim.

MOSFET -lər vasitəsilə enerjiyə qənaət etmək üçün sensorları aça/söndürə bilərsinizmi?

Prinsipcə gözəl bir fikirdir, amma bu sensorların çoxunun istiləşmə vaxtı olduğu üçün daim gücə ehtiyacı var. Bundan əlavə … ESP8266 -da GPIO -larım tükəndi. Rəsmi olaraq işləməyən, lakin ESP12E -də yaxşı işləyən GPIO10 -dan istifadə etməli oldum.

Hansı bacarıqlara ehtiyacım var?

Sıfırdan qurmaq üçün bəzi elektronika dizayn fonuna ehtiyacınız olacaq. Əslində çox azdır, bu günlərdə internetlə ilk günlərimdəki kimi məlumat cədvəlini sətir -sətir oxumağa ehtiyac yoxdur … Təcrübəmin nəticələrini istifadə edirsinizsə, bəzi SMD lehimləmə bacarıqlarına, mexaniki bacarıqlara və bir az səbrə ehtiyacınız var.

Bu, ilk layihənizdir?

İlk təlimatımdır, amma ilk layihəm deyil. Keçmişdə çox fikirləşirdim, amma indi çox vaxtım yoxdur. Övladlarıma faydalı bir şey öyrətməyə çalışarkən paslı bacarıqlarımı canlandırdım..! Bir gün daha dərc edə biləcəyim bir neçə layihə hazırladım.

Tövsiyə: