Cuprins:

AtmoScan: 7 pași (cu imagini)
AtmoScan: 7 pași (cu imagini)

Video: AtmoScan: 7 pași (cu imagini)

Video: AtmoScan: 7 pași (cu imagini)
Video: Jennifer Lopez x Dolby Atmos : Can`t Get Enough 2024, Septembrie
Anonim
Image
Image
Senzori
Senzori

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

ȘTIRI

Accesați GitHub-ul meu pentru:

- Unele mici modificări hardware îmbunătățesc designul, inclusiv capacitatea de a se opri de la software, remediind unul dintre cele mai mari dezavantaje ale designului - cum să gestionați bateria descărcată.

- Un design PCB v2 este acum publicat împreună cu un ghid pentru a aplica cu ușurință modificarea pe plăcile V1.0.

- Fișiere CAD pentru incinte complete

Noua incintă arată ca imaginea de mai sus … ei bine, fără bandă de cauciuc

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

ATMOSCAN este un dispozitiv multisenzor menit să monitorizeze calitatea aerului interior. Deși au fost publicate multe proiecte care au un scop similar, acesta este un sistem complet într-un pachet compact, autonom, care le rezumă pe toate. Are un ecran LCD color, este conștient de timp și locație, este controlat prin gesturi și se postează pe ThingSpeak (sau altele) prin MQTT, dar poate gestiona în mod corespunzător operațiunile deconectate și reconectarea. Cu bateria reîncărcabilă încorporată, durează o zi întreagă când este deconectat de la alimentare.

Folosește un cadru cooperativ multitasking și este foarte receptiv la intrarea utilizatorului în timp ce prelevează senzori, manipulează interfața de utilizare, postează pe MQTT. De fapt, stoarce destul de puțin din micul ESP8266. O face prin integrarea unui număr de biblioteci open source și prin utilizarea serviciilor web pe internet.

Creditele pentru biblioteci sunt destinate unui număr de colaboratori, a se vedea mai târziu.

Muzica video poate fi găsită AICI

Pasul 1: senzori

Atmoscan măsoară o serie de variabile:

  • Temperatura
  • Umiditate
  • Presiune
  • CO2
  • CO
  • NO2
  • COV (compuși organici volatili, un indicator al calității aerului)
  • PM 01
  • PM25
  • PM10
  • Radiații

Pentru aceasta, acesta integrează o serie de senzori discreți

  • BME280 (de ex., Link)
  • PMS7003 (de ex., Link)
  • MH-Z19 (de ex. Link)
  • HDC1080 (de ex. Link)
  • MiCS6814 (Link)
  • MP503 (Link)
  • LND-712 Tub Geiger (Link, l-am găsit în Europa aici Link sau aici Link) cu modul de înaltă tensiune (Link)

Fișele tehnice sunt AICI.

Pasul 2: Electronică

Electronică
Electronică
Electronică
Electronică
Electronică
Electronică

Atmoscan poate fi construit cu ușurință cu un NodeMCU sau orice altă placă ESP8266 și câteva componente ușor disponibile, cum ar fi schimbătoarele de nivel și regulatoarele de tensiune, dacă renunțați la încărcătorul integrat de baterii.

În timp ce făceam prototip cu componente separate, pentru versiunea finală am proiectat o placă specifică care integrează toate funcțiile și oferă conectori îngrijite pentru senzori, LED-uri pentru stare (Albastru = sursă de alimentare conectată; Roșu = încărcare).

Fișierele Eagle PCB sunt disponibile AICI.

Mai exact, placa integrează:

  • Circuite de încărcare bazate pe MAX8903A (Link)
  • Logică de pornire / oprire cu un singur buton
  • Modulul ESP12E
  • Logica de programare
  • Schimbător de nivel
  • Driver de iluminare de fundal LCD
  • Regulator de tensiune Step-Up / Step-Down 3.3V bazat pe Pololu S7V8F3 (Link)
  • Regulator de tensiune de 5V bazat pe Pololu U1V10F5 (Link)
  • Indicator de combustibil LiPo bazat pe SparkFun TOL10617 (Link)

Afișajul este un TFT de 2,8 320x240 bazat pe un cip ILI9341 (Link).

Senzorul de gest se bazează pe cipul PAJ7620U2 (Link), mult mai bun decât APDS9960 ieftin, care generează întreruperi continue și nu poate funcționa prin plexiglas.

Senzorii sunt destul de înfometați, așa că, pentru a garanta o autonomie de cel puțin 24 de ore, am făcut un pachet cu baterii LiPo 105575 de 3 x 5000mAh (Link). De fapt, 2 ar fi putut fi de ajuns. Încărcătorul MAX8903 se străduiește să încarce pachetul rezultat de 15, 000mAh.

NOTE - AȘA Văzut în imagini:

  • Sunt afișate pozițiile conectorilor
  • Slotul pentru card SD trebuie să fie desoldat de pe afișaj, dacă doriți să încapă în carcasă
  • Trebuie să faceți o mică crestătură în PCB pentru a nu interfera cu ventilatorul (crestătura este la modă după iPhone X). Corectat în PCB V2

Abrevierile conectorilor de pe PCB sunt după cum urmează:

  • PRS: senzor de presiune barometrică (bazat pe BME280) NOTĂ: pentru a fi montat direct pe PCB
  • VOC: Grove - Senzor de calitate a aerului v1.3 (bazat pe MP503)
  • TMP: senzor digital de înaltă precizie pentru umiditate și temperatură (bazat pe HDC1080)
  • PMS: PMS7003 Senzor digital de concentrare a particulelor
  • GAZ: Grove - senzor de gaz multicanal (bazat pe MiCS6814)
  • GES: Grove - Senzor de gest (bazat pe PAJ7620U2)
  • RAD: tub Geiger (prin modulul de alimentare de înaltă tensiune a driverului Geiger Probe 400V / 500V cu ieșire impuls digital digitalizată TTL)
  • CO2: senzor de gaz cu infraroșu MH-Z19
  • U1V10F: 5V Step-Up Voltage Regulator bazat pe Pololu
  • U1V10F5 S7V8V3: 3.3V Regulator de tensiune pas cu pas / coborâre bazat pe Pololu S7V8F3
  • TOL10617: Indicator de combustibil Sparkfun LiPo
  • LCD: afișaj ILI9341

Pasul 3: incintă

Incintă
Incintă
Incintă
Incintă
Incintă
Incintă

Carcasa este derivată dintr-un recipient cub plexiglas 10x10x10 cm pe care l-am cumpărat pe eBay și a fost destinat unei utilizări complet diferite. Avea fante de ventilație frumoase, care erau exact ceea ce era necesar. Volumul a fost în principiu suficient pentru a împacheta întregul set, cu excepția faptului că nu a fost ușor … unele încercări timpurii bazate pe machete de carton au eșuat lamentabil, așa că am renunțat și am pierdut câteva ore cu un CAD 3D și am avut suporturile interne tăiate cu laser. Spațiul intern este împărțit în compartimente, astfel încât senzorul de temperatură să fie cât mai departe de sursele de căldură interne. În timp ce carcasa externă este fabricată din material de 3 mm, partea superioară este realizată din foi de 2 + 1 mm. Acest truc a permis ca senzorul de gest să fie acoperit cu acrilic de doar 1 mm și acest lucru este suficient pentru a-l face să funcționeze.

Unele modificări trebuiau făcute cu sculele manuale de pe carcasa originală, cum ar fi ventilatorul, comutatorul și orificiile USB. Rezultatul a fost totuși decent!

Fișierele CAD sunt AICI.

Pasul 4: Asamblare mecanică

Asamblare mecanică
Asamblare mecanică
Asamblare mecanică
Asamblare mecanică
Asamblare mecanică
Asamblare mecanică

Pachetul este foarte dens, dar datorită designului cad 3D am avut puține surprize la asamblarea acestuia.

Circulația aerului (de sus în jos) este asigurată de un ventilator mic. După ce am cumpărat un număr corect de pe Aliexpress / eBay, mi-am dat seama că zgomotul fanilor ieftini era insuportabil pentru un dispozitiv interior. Am ajuns să cumpăr un Papst 255M (Link) destul de scump, cu rotire lentă și l-am hrănit cu mai puțin de 5V prin câteva diode. Rezultatul este destul de bun și este suficient de silențios pentru a fi neobservat (este chiar aprobat de soție, cea mai grea certificare).

Pasul 5: Software

Software
Software
Software
Software
Software
Software
Software
Software

Arhitectura software se bazează pe un cadru orientat pe obiecte care rulează mai multe procese (cooperative) care gestionează interfața de utilizare, senzorii și MQTT. Este localizat și conștient de timp, dar poate gestiona deconectarea / reconectarea la WiFI.

Cadrul este deschis și poate gestiona orice număr de ecrane, atât timp cât codul și resursele lor se încadrează în memoria Flash. Cadrul de aplicație gestionează gesturile și le transmite pe ecrane, pentru o manipulare suplimentară sau anulare, dacă este necesar. Gesturile gestionate de cadru sunt:

  • Glisați la stânga / la dreapta - Schimbați ecranul
  • (Deget) Rotire în sensul acelor de ceasornic - Rotiți ecranul
  • (Deget) Rotire în sens invers acelor de ceasornic - Invocați ecranul de configurare
  • (Mână) De departe până aproape - Opriți afișajul

Ecranele moștenesc dintr-o clasă de bază și sunt gestionate prin următorul model de eveniment:

  • activare - declanșat o dată, când ecranul este creat
  • actualizare - apelat periodic pentru a actualiza ecranul
  • dezactivați - sunat o dată, înainte ca ecranul să fie închis
  • onUserEvent - apelat atunci când senzorul de gest este declanșat. Permite să răspundă și să suprascrie și gestionarea implicită a evenimentelor, de ex. anulați glisarea pentru a schimba ecranul

Fiecare ecran își declară capacitățile oferind următoarele informații:

  • getRefreshPeriod - frecvența cu care ecranul are nevoie de reîmprospătare
  • getRefreshWithScreenOff - dacă ecranul vrea să fie reîmprospătat chiar și atunci când iluminarea din spate este oprită. de exemplu. pentru diagrame
  • getScreenName - numele ecranului
  • isFullScreen - preia controlul deplin al afișajului sau permiteți bara de sus cu data / ora / locația / indicatorul bateriei / indicatorul wifi

Cadrul este capabil să instanțieze și să aloceze ecranele printr-o fabrică de clase declarative. Alocarea dinamică economisește RAM și face dispozitivul ușor de extins. Cadrul general de aplicare este, de asemenea, reutilizabil pentru alte proiecte.

Ecranele implementate în prezent în Atmoscan sunt:

  • Valorile senzorilor
  • Diagrama contorului Geiger / semilog
  • Starea sistemului
  • Jurnal de erori
  • Stație meteorologică
  • Plane Spotter
  • Înființat
  • Baterie descarcata

Ecranele de configurare permit setarea acreditărilor Wifi, canalelor MQTT, serverului Syslog.

NOU în v2.0: toate cheile de servicii web sunt acum configurabile prin portalul de configurare. Singura valoare care este încă codificată este parola OTA (majusculă ATMOSCAN).

NOTĂ 1: Prima programare trebuie făcută cu un cablu USB-Serial conectat la conectorul de programare. Deoarece portul serial este ocupat de un senzor, depanarea și programarea în acest fel nu sunt practice după asamblare, deoarece ar necesita detașarea senzorului. Prin urmare, software-ul acceptă depanarea SYSLOG și actualizările OTA.

NOTĂ 2: Binarul ATMOSCAN depășește 700 KB și ArduinoOTA necesită ca spațiul programului să fie de cel puțin două ori dimensiunea imaginii, ceea ce exclude opțiunea „4M (3M SPIFFS)”. Cu toate acestea, opțiunea standard „4M (1M SPIFFS)” este, de asemenea, nepotrivită, deoarece partiția SPIFFS ar fi insuficientă pentru resursele grafice legate de stația meteo, spotterul plan și pentru fișierul de confing. Prin urmare, a fost creată o configurație personalizată „4M (2M SPIFFS)” pentru a rezolva problema. Explicație aici.

Documentația și codul sursă complet sunt disponibile aici.

CREDITUL INCLUDE CODUL ȘI BIBLIOTECILE DIN

  • Adafruit
  • Arcao
  • Bblanchon
  • Bodmer
  • ClosedCube
  • Gmag11
  • Knolleary
  • Lucadentella
  • Semințe
  • Squix78
  • Tzapu
  • Vrăjitor97

INTEGRĂ SERVICIILE WEB DE LA

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

Pasul 6: Faceți-o mai bună

Fa-l mai bun!
Fa-l mai bun!

Rezultatul nu este deloc rău! Software-ul arată bine și este fiabil, în timp ce ar putea fi extins cu noi caracteristici și poate fi curățat puțin pentru a face ca cadrul aplicației să fie cu adevărat reutilizabil pentru alte proiecte. Calibrarea unor senzori nu este grozavă, dar ar fi nevoie de echipamente de laborator de testare. Timpul este prețios și nu prea am, așa că progresul a fost lent. Când am terminat, a devenit disponibil un sprijin decent pentru ESP32. Dacă l-aș începe acum, l-aș folosi și aș integra senzori externi prin bluetooth.

Oricine?

NOTĂ: Am încă o mână de PCB-uri, așa că, dacă cineva este interesat, acestea sunt disponibile la prețul nominal / poștal.

Pasul 7: Întrebări și răspunsuri

Întrebări și răspunsuri
Întrebări și răspunsuri
Întrebări și răspunsuri
Întrebări și răspunsuri

În primul rând, MULȚUMIM pentru comentariile tale copleșitor de pozitive. Sincer, nu mă așteptam la atât de mult interes.

Am primit o serie de întrebări fie prin comentarii, fie prin mesaje private, așa că m-am gândit să adun răspunsurile aici. Dacă ar veni mai multe, voi adăuga.

Am găsit în spatele unui sertar cele 8 PCB disponibile - și sunt în drum spre Belgia, Germania, India, SUA, Canada, Marea Britanie, Australia. Uau, 3 continente! Uimitor.

Ce trebuie să pun în pagina de configurare ATMOSCAN?

Pagina de configurare Atmoscan necesită următorii parametri:

  • SSID și parola rețelei WiFi la care doriți să se conecteze
  • Serverul MQTT pe care îl utilizați. De exemplu, folosesc mqtt.thingspeak.com
  • Șir de conexiune pentru subiectele MQTT utilizate. De exemplu, subiectele Thingspeak MQTT sunt în format: canale / CHANNEL-ID / publish / WRITE-API (EXEMPLU: canale / 123456 / publish / 567890)
  • Server Syslog: adresa IP a serverului syslog pe care îl utilizați pentru înregistrare
  • Cheie Google pentru API-ul Maps Static. Obțineți o cheie de la https://console.cloud.google.com/apis/dashboard. Creați un proiect; API-ul pe care îl folosește Atmoscan este https://maps.googleapis.com/maps/api/staticmap. Creați o cheie pentru acest API pe proiectul google pe care tocmai l-ați creat, utilizați-l aici
  • Meteo Cheia subterană. Creați un cont pe www.wunderground.com, accesați WEATHER API (link în partea de jos a paginii de pornire, accesați SETĂRI CHEIE, generați o cheie, utilizați-o aici
  • Cont Geonames. Creați un cont pe https://www.geonames.org/ permiteți-i să utilizeze serviciile web gratuite și puneți numele de utilizator aici
  • Tasta TimeZoneDB. Creați un cont pe https://timezonedb.com/, creați o cheie, puneți-o aici

Cum configurez Thingspeak?

Ai nevoie de 3 canale Thingspeak. Câmpurile sunt utilizate după cum urmează:

CHANNEL 1 câmpuri

  1. TEMPERATURA
  2. UMIDITATE
  3. PRESIUNE
  4. PM01
  5. PM2.5
  6. PM10
  7. CPM
  8. RADIATIA

CANAL 2 câmpuri

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

CHANNEL 3 câmpuri (canal de sistem)

  1. TIMP DE ACTIVARE ÎN MINUTE
  2. HEAP GRATUIT ÎN BITTE
  3. WIFI RSSI (SEMNALIZARE ÎN DBM)
  4. VOLTAJUL BATERIEI
  5. SOC LINEAR (STAREA DE ÎNCĂRCARE A BATERIEI% - calcul liniar, proporțional cu tensiunea)
  6. SOC NATIV (STAREA DE ÎNCĂRCARE A BATERIEI% - după cum este raportat de ecartament. După cum se citește din ecartament. NOTĂ: ecartamentul spune 0% când ajunge la 3,6v în timp ce bateriile pot fi descărcate puțin mai departe, să spunem peste 3v. Limita inferioară, la care ATMOSCAN se dezactivează, este un #define în fișierul globaldefinitions.h)
  7. TEMPERATURA SISTEMULUI (de la bme280, montat direct pe placa)
  8. UMIDITATEA SISTEMULUI (de la bme280, montat direct pe placa)

PCB-ul este foarte compact. Cum lipesc dispozitivele SMD, în special IC MAX8903A?

În primul rând, vă sugerez să vă întrebați dacă doriți să intrați în SMD sau dacă este o singură dată - Dacă acesta din urmă, poate cereți cineva să o facă pentru dvs. Dacă doriți să luați provocarea SMD, investiți puțin și obțineți instrumentele adecvate (lipire, flux, alcool izopropilic fier mic, pistol fierbinte, pensete, o cameră USB ieftină, un suport PCB). În zilele noastre acestea sunt lucruri ieftine. Urmăriți apoi un videoclip YouTube - există o jumătate de milion - și petreceți ceva timp cu un PCB vechi pe care îl puteți sacrifica și dezlipi / curăța / lipi unele componente. Nu v-ați crede cât de instructiv este acest lucru, să aflați la ce să vă așteptați, să corectați temperatura etc. Vorbind din experiență … Am început SMD schimbând conectorul afișajului pe un iPod touch și l-am ucis pe primul!

Într-adevăr, PCB-ul Atmoscan este compact și IC nu este unul ușor. Din nou, nu vă recomand să faceți acest lucru ca prima dvs. lipire SMD. QFN nu este un pachet prietenos, chiar dacă am lipit un număr până acum. Nu ești niciodată sigur că ai înțeles bine …

Pe Atmoscan l-am lipit mai întâi, apoi componentele sale înconjurătoare, astfel încât să pot testa că porțiunea de încărcare a plăcii funcționează, apoi am finalizat restul. Din imaginile atașate ar trebui să puteți deduce orientarea componentelor. Am folosit biblioteci de componente din domeniul public și orientarea nu este foarte evidentă în serigrafie.

Modul meu: am pus mai întâi niște lipire pe tampoanele cu fierul de călcat. Apoi, o mulțime de flux (specific SMD) și am poziționat cu atenție CI cu pensete. Apoi, încălziți totul la aproximativ 200 / 220C (sub punctul de topire) pentru a evita tensiunile datorate încălzirii inegale. Apoi am crescut temperatura la 290C sau cam așa și în jurul IC. Dacă puneți un pic de lipit pe un tampon din apropiere, veți vedea când temperatura este la punctul de topire, deoarece va străluci.

După aceea l-am curățat cu alcool izopropilic și l-am inspectat cu atenție cu o cameră USB ieftină. Problemele tipice sunt alinierea și cantitatea de lipit, deoarece este posibil ca unii pini să nu fie conectați. În unele cazuri, a trebuit să mă întorc la el cu un fier de lipit mic pentru a adăuga mai multe lipiri la niște știfturi, deoarece acest IC are un tampon termic dedesubt care trebuie lipit și el. Acest lucru face un pic dificil să ghiciți cantitatea de lipire și s-ar putea întâmpla ca o cantitate prea mare de lipire dedesubt să o ridice, astfel încât pinii să nu atingă PCB.

Acestea fiind spuse, nu vreau să te sperii. Am finalizat 3 plăci și nu am ucis niciodată aceste IC-uri … Odată ce a trebuit chiar să o îndepărtez, să curăț și să repornesc de la zero, dar a funcționat până la urmă. Din nou, nu este foarte ușor, dar realizabil.

De unde ați cumpărat componentele?

Mai ales pe eBay și Aliexpress. Cu toate acestea, cele de marcă sunt originale (Seeed, Pololu, Sparkfun).

Urmează câteva legături INDICATIVE. Notă: uitați-vă în jur, s-ar putea să găsiți oferte și mai ieftine …

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…

Prima programare Placa Atmoscan include un circuit de programare care este în conformitate cu NodeMCU. Conexiunea serial este utilizată în mod normal pentru prima programare. După aceea, programarea OTA prin wifi este opțiunea preferată, deoarece se poate face cu unitatea complet asamblată. Nu uitați că portul serial este utilizat în mod normal de senzorul de particule!

Pentru a programa placa cu serial, un adaptor USB-serial (de ex. FTDI232 sau similar) trebuie conectat la conectorul J7 (lângă butonul de resetare) urmând pinout-ul din schemă. Programul poate fi încărcat fără senzori conectați, cu excepția faptului că linia de întrerupere a senzorului geiger ar trebui să fie conectată la GND, altfel placa nu va porni (pentru a face acest lucru, conectați pinii 1 și 3 în conectorul RAD). Cel mai simplu mod de a testa placa fără a folosi schița principală - deci fără complexitatea senzorilor - este să încărcați ACEST program simplu prin cablu serial. Se creează un punct de acces wifi care permite intermitent în continuare cu programul principal.

IMPORTANT: Nu uitați să utilizați configurația SPIFFS 4M / 2M conform instrucțiunilor, altfel programul principal nu se va potrivi. Placa trebuie inițializată prin programare serială cu acea configurație, altfel s-ar putea să aveți probleme cu OTA ulterior.

Din păcate, inițializarea unor senzori se blochează dacă senzorii nu sunt prezenți (depinde de furnizorul bibliotecii). Un exemplu este biblioteca de senzori multigas. Pentru a vă asigura că Atmoscan pornește corect cu firmware-ul complet, puteți dezactiva procesul aferent, consultați punctul Q&A aferent. O modalitate simplă de a dezactiva TOȚI senzorii pentru testare este de a comenta linia #define ENABLE_SENSORS din fișierul GlobalDefinitions.h.

Când placa pornește schița principală pentru prima dată, ar trebui să recunoască faptul că nu este configurată și ar trebui să deschidă un hotspot wifi, la care să vă puteți conecta și configura. Printre setări, există un server syslog care ajută foarte mult la depanare. De asemenea, puteți crește nivelul de înregistrare necomentând #define DEBUG_SYSLOG în fișierul GlobalDefinitions.h. Vă rugăm să rețineți că în același fișier există și un #define DEBUG_SERIAL care a fost utilizat în timpul depanării inițiale. Dacă nu este comentat, rezultă _unii_ jurnal rezidual, dar minim. Un element ToDo a fost întotdeauna să facă înregistrarea uniformă și selectabilă, dar nu am avut niciodată timp să o curăț.

Ați modificat bibliotecile pe care le-ați folosit, este nevoie de configurație? (spre deosebire de descărcare și compilare)

Bună întrebare, am uitat să menționez acest punct. Într-adevăr, sunt necesare câteva moduri / configurări:

  • Biblioteca https://github.com/Seeed-Studio/Mutichannel_Gas_Sensor - instrucțiuni de depanare în serie. Trebuie comentat, deoarece portul serial este utilizat pentru un senzor!
  • Biblioteca https://github.com/Bodmer/TFT_eSPI - necesită un fișier de configurare în care sunt specificate atribuirea pinului și frecvența SPI
  • Biblioteca https://github.com/lucadentella/ArduinoLib_MAX1704… - Privind comentariile și cererile de extragere, am observat că există o remediere a erorilor care nu a fost niciodată îmbinată

Din câte îmi amintesc, ar trebui să fie. Spuneți-mi dacă apar probleme.

NOTĂ: Vă rugăm să consultați comentariile din cel mai recent cod sursă - conține linkuri către toate bibliotecile necesare și este actualizat

De ce citesc unii senzori roșii și alții verzi în videoclip / imagini?

Culoarea indică tendința. Începe alb și dacă urcarea este roșie, dacă coborârea este verde.

Cum te descurci cu deriva senzorilor în timp? Cât de buni sunt acești senzori? Ce pot vedea cu acești senzori?

Sincer, acesta nu este un kit de măsurare științific. Pentru calibrare aș avea nevoie de echipamente pe care nu le am la dispoziție. Acesta este într-adevăr un proiect pentru animale de companie. Am încercat mai mulți senzori. Particulele, CO2, temperatura, umiditatea, presiunea, Geiger sunt destul de bune în opinia mea. Pe NO2 am rezerve privind calibrarea și designul general, dar nu sunt multe disponibile. În general, sunt senzori de masă.

Cu toate acestea, combinația este suficient de bună pentru a arăta lucruri la care nu te-ai aștepta.

Cu Atmoscan în sufragerie și bucătărie la o cameră distanță, detectează vârfuri uriașe de particule atunci când de ex. chestii de prăjit. Se simte NO2 din traficul de dimineață chiar și cu ferestrele închise.

A fost cu adevărat necesar un contor Geiger? Arată ceva util?

Din fericire nu am avut incidente nucleare și războiul nu vine încă … Totuși, există centrale nucleare nu atât de departe și guvernul distribuie pastile de iod pentru copii, care să fie păstrate în sertar în caz de incidente … așa că am devenit suspect. Până acum trebuie să spun că citirile sunt exact în concordanță cu radiația de fond așteptată (0,12 uSv / h)

Care este costul total al dispozitivului?

Aveam deja multe componente acasă și linkurile de mai sus îți dau o idee. Sincer, dacă cumpărați un NetAtmo gata sau similar, economisiți bani. Nu poți învinge o companie chineză care face lucruri la scară largă! Cu toate acestea, dacă vă place să faceți poate împreună cu copiii dvs., merită. Partea bună este că am testat deja (și am aruncat) o serie de senzori pentru dvs. …

Ce zici de PCB-uri? Poți să-mi vinzi unul?

La început aveam 10 dintre ele realizate de dirtypcbs.com și fișierele mele au funcționat foarte bine. De bună calitate și suficient de ieftin, 25USD / 20Euro pentru 10 PCB-uri. Am folosit două și sunt încântat să le trimit pe cele reziduale contra cost (2 Euro + expediere, în funcție de locație și preferințele de expediere). Mă tem că va trebui să le aleg pe primele care îmi trimit un mesaj privat.

Puteți face un kit sau o campanie de kickstarter?

Măgulitor, dar sincer nu am crezut niciodată că este suficient de inovator … și, în plus, FĂRĂ TIMP !!

Cu toate acestea, dacă cineva preia ideea, ar fi necesară o a doua iterație. Există câteva margini ascuțite în design care ar merita corectate, dar din nou nu am avut niciodată suficient timp pentru V2.

Pe hardware: Pot adăuga / elimina un senzor, ecranul etc. pentru a extinde capacitățile / a reduce consumul de energie?

Afișajul este conectat fără a utiliza MISO, prin urmare CPU nu citește niciodată de pe afișaj. Prin urmare, nu puteți conecta furnicul de afișare, ar funcționa foarte bine. Acestea fiind spuse, afișajul este aprins doar pentru o perioadă de timp după ce a fost detectat ultimul gest, astfel încât nu are efect asupra consumului de energie.

Senzorii sunt în schimb foame de energie și totul folosește cu ușurință 400 / 500mA. Nu uitați de ventilator și de faptul că senzorul de particule are și un ventilator încorporat. ESP, de asemenea, nu trece în modul de repaus, din cauza lipsei pons GPIO. Cu toate acestea, asta ar fi economisit probabil 20mA …

Software-ul este modular și puteți adăuga / elimina cu ușurință procese și ecrane, astfel încât să puteți adăuga senzori sau să îl aprindeți, eliminând unele, dacă doriți. Singura limitare este numărul de pini GPIO. Cu toate acestea, senzorii pot fi adăugați cu ușurință dacă I2C sau, alternativ, un expansor I2C ar putea fi folosit pentru a adăuga GPIO-uri …

Pentru a dezactiva un senzor, de exemplu pentru a testa o construcție parțială, cel mai bun mod în opinia mea ar fi să nu porniți procesul aferent. Acest lucru poate fi realizat comentând apelul enable () aferent în funcția void startProcesses () din fișierul.ino principal. Dacă nu doriți să modificați structural sistemul, nu aș elimina complet procesele, deoarece ecranul și procesele MQTT le vor interoga. În acest fel, ar trebui să returneze zero. Vă rugăm să rețineți că intrarea de întrerupere pentru placa Geiger va fi trasă în jos dacă nu este utilizată, altfel placa nu va porni.

Care sunt îmbunătățirile pe care le-ați fi făcut dacă ați avea timp pentru un V2.0?

Nu într-o ordine specială..

  • PCB ar putea evita cuprul din spatele antenei ESP8266. Am uitat-o total și face ca diagrama de radiații să fie neizotropă
  • În opinia mea, încărcătorul este subdimensionat pentru o baterie atât de mare / bateria este prea mare pentru încărcător. Există alte circuite integrate și aș încerca altul.
  • Există indicatoare de baterie mai bune.
  • Aș adăuga un senzor de ozon
  • Aș folosi un ESP32 pentru mai multe GPIO-uri și senzori Bluetooth din unitatea principală.
  • Dacă aș avea mai multe GPIO fie cu ESP32, fie cu un expansor I2C, aș folosi unul pentru a controla ventilatorul și altul pentru a opri unitatea din software. Acum, când bateria este descărcată, singurul lucru pe care îl poate face pentru a afișa un ecran cu baterie descărcată. Acesta este, de fapt, cel mai mare dezavantaj al designului, deoarece situația bateriei slabe nu este tratată cu grație.

Pe software

Mi-a luat mai mult decât hardware-ul … Cred că conține o serie de concepte bune, din păcate, nu sunt complet implementate. Mai exact, cred că ar trebui curățat, potențial extins și din acesta ar putea fi derivat cu ușurință un cadru generic pentru aplicațiile ESP8266. Nu este timp. Cineva relua provocarea?

Puteți adăuga control vocal?

Ar trebui să fie fezabil. Există o serie de biblioteci gata făcute pentru a controla un ESP8266 cu Alexa și nu văd de ce integrarea ar trebui să fie o problemă. Întrebarea interesantă este ce vrei să faci cu el, funcționalitate. Nu dețin un Amazon Echo, așa că nu am încercat niciodată.

Cum ați făcut tăieturile cu laser?

Desenele sunt realizate cu SketchUp. Programul este frumos, dar îi lipsesc serios capacitățile de export. Cu toate acestea, versiunea de încercare de 30 de zile vă ajută, deoarece are funcționalități suplimentare. L-am importat apoi în Inkscape pentru procesare finală.

Puteți porni / opri senzorii pentru a economisi energie, prin intermediul MOSFET-urilor?

O idee frumoasă în principiu, dar majoritatea acestor senzori trebuie alimentați tot timpul, deoarece au timp de încălzire. În plus … am rămas fără GPIO-uri în ESP8266. A trebuit chiar să folosesc GPIO10 care oficial nu este funcțional, dar funcționează foarte bine pe ESP12E.

De ce abilități aș avea nevoie?

Pentru a-l construi de la zero, ai avea nevoie de niște fundaluri de design electronic. Nu prea mult, în zilele noastre, cu internetul, nu este nevoie să citiți fișele tehnice linie cu linie ca la începuturile mele … Dacă utilizați rezultatul experimentării mele, aveți nevoie de niște abilități de lipit SMD, abilități mecanice și o anumită răbdare.

Este primul tău proiect?

Este primul meu instructabil, dar nu primul meu proiect. Am jucat mult în trecut, dar nu prea am timp în zilele noastre. Mi-am reînviat abilitățile ruginite în timp ce încerc să învăț ceva util copiilor mei..! Am mai făcut câteva proiecte pe care aș putea să le public într-o zi..

Recomandat: