Turinys:

„AtmoScan“: 7 žingsniai (su nuotraukomis)
„AtmoScan“: 7 žingsniai (su nuotraukomis)

Video: „AtmoScan“: 7 žingsniai (su nuotraukomis)

Video: „AtmoScan“: 7 žingsniai (su nuotraukomis)
Video: AtmoScan Promo 2024, Rugsėjis
Anonim
Image
Image
Jutikliai
Jutikliai

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

ŽINIOS

Eikite į „GitHub“, kad gautumėte:

- Kai kurie nedideli techninės įrangos pakeitimai pagerina dizainą, įskaitant galimybę išjungti programinę įrangą, pašalinant vieną iš didžiausių dizaino trūkumų - kaip elgtis su išsikrovusia baterija.

- Dabar paskelbtas PCB v2 dizainas kartu su vadovu, kad būtų galima lengvai pritaikyti pakeitimus plokštėms V1.0.

- CAD failai, skirti visiškai uždengti

Naujas korpusas atrodo kaip aukščiau pateiktas paveikslėlis … na, be guminės juostelės

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

„ATMOSCAN“yra daugiafunkcinis prietaisas, skirtas stebėti patalpų oro kokybę. Nors buvo paskelbta daug panašių tikslų projektų, tai yra visa sistema kompaktiškame, savarankiškame pakete, kuris juos visus apibendrina. Jame yra spalvotas LCD ekranas, jis žino laiką ir vietą, jis yra valdomas gestais ir skelbiamas „ThingSpeak“(ar kituose) per MQTT, tačiau gali tinkamai valdyti atjungtas operacijas ir prijungimą. Su įterpta įkraunama baterija, ji atjungta nuo maitinimo šaltinio tarnauja visą dieną.

Jis naudoja daugiafunkcinę bendradarbiavimo sistemą ir labai reaguoja į vartotojo įvestį, kai ima jutiklius, tvarko vartotojo sąsają, skelbia MQTT. Tiesą sakant, jis šiek tiek išspaudžia iš mažos ESP8266. Tai daroma integruojant daugybę atviro kodo bibliotekų ir panaudojant interneto žiniatinklio paslaugas.

Kreditai bibliotekoms atitenka daugeliui bendraautorių, žr.

Muziką vaizdo įraše rasite ČIA

1 žingsnis: jutikliai

„Atmoscan“matuoja keletą kintamųjų:

  • Temperatūra
  • Drėgmė
  • Slėgis
  • CO2
  • CO
  • NO2
  • LOJ (lakieji organiniai junginiai, oro kokybės rodiklis)
  • PM 01
  • PM25
  • PM10
  • Spinduliuotė

Norėdami tai padaryti, jame yra keletas atskirų jutiklių

  • BME280 (pvz., Nuoroda)
  • PMS7003 (pvz., Nuoroda)
  • MH-Z19 (pvz., Nuoroda)
  • HDC1080 (pvz., Nuoroda)
  • MiCS6814 (nuoroda)
  • MP503 (nuoroda)
  • LND-712 „Geiger“vamzdis (nuoroda, aš jį radau Europoje čia nuoroda arba čia nuoroda) su aukštos įtampos moduliu (nuoroda)

Duomenų lapai yra ČIA.

2 žingsnis: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

„Atmoscan“galima lengvai sukurti naudojant „NodeMCU“arba bet kurią kitą ESP8266 plokštę ir kai kuriuos lengvai prieinamus komponentus, tokius kaip lygio perjungikliai ir įtampos reguliatoriai, jei atsisakysite integruoto akumuliatoriaus įkroviklio.

Nors sukūriau prototipą su atskirais komponentais, galutinei versijai sukūriau specialią plokštę, kurioje integruotos visos funkcijos ir numatytos tvarkingos jungtys jutikliams, šviesos diodai būsenai (mėlyna = prijungtas maitinimo šaltinis; raudona = įkrovimas).

Eagle PCB failus rasite ČIA.

Konkrečiai, lenta integruoja:

  • Įkrovimo grandinė, pagrįsta MAX8903A (nuoroda)
  • Vieno mygtuko įjungimo/išjungimo logika
  • ESP12E modulis
  • Programavimo logika
  • Lygio perjungiklis
  • LCD foninio apšvietimo tvarkyklė
  • 3.3V pakilimo/sumažinimo įtampos reguliatorius, pagrįstas „Pololu S7V8F3“(nuoroda)
  • 5V pakopos įtampos reguliatorius, pagrįstas „Pololu U1V10F5“(nuoroda)
  • „LiPo“degalų matuoklis, pagrįstas „SparkFun TOL10617“(nuoroda)

Ekranas yra 2,8 colio TFT 320x240, pagrįstas ILI9341 lustu (nuoroda).

Gestų jutiklis yra paremtas PAJ7620U2 mikroschema (nuoroda), kur kas geresnė už pigų APDS9960, kuris nepertraukiamai pertraukia ir negali dirbti per organinį stiklą.

Jutikliai yra gana alkani, todėl, norėdami užtikrinti bent 24 valandų autonomiją, aš padariau pakuotę su 3 x 5000 mAh LiPo 105575 baterijomis (nuoroda). Tiesą sakant, galėjo pakakti 2. MAX8903 įkroviklis stengiasi įkrauti gautą 15 000 mAh pakuotę.

PASTABOS - MATYTA PAVEIKSLUOSE:

  • Parodyta jungčių padėtis
  • Jei norite, kad SD kortelės lizdas tilptų į korpusą, jį reikia išimti iš ekrano
  • Norėdami netrukdyti ventiliatoriui, turite padaryti mažą įpjovą PCB (išpjova yra madinga po „iPhone X“). Ištaisyta PCB V2

PCB jungčių santrumpos yra tokios:

  • PRS: barometrinio slėgio jutiklis (remiantis BME280) PASTABA: montuojamas tiesiai ant PCB
  • LOJ: „Grove“- oro kokybės jutiklis v1.3 (pagrįstas MP503)
  • TMP: didelio tikslumo skaitmeninis drėgmės ir temperatūros jutiklis (pagrįstas HDC1080)
  • PMS: PMS7003 Skaitmeninis dalelių koncentracijos jutiklis
  • DUJOS: Grove - daugiakanalis dujų jutiklis (remiantis MiCS6814)
  • GES: Grove - gestų jutiklis, pagrįstas PAJ7620U2
  • RAD: Geigerio vamzdis (per aukštos įtampos Geiger zondo tvarkyklės maitinimo modulį 400V / 500V su TTL skaitmeniniu impulsiniu išėjimu)
  • CO2: MH-Z19 infraraudonųjų spindulių CO2 dujų jutiklis
  • U1V10F: 5V padidinimo įtampos reguliatorius, pagrįstas „Pololu“
  • U1V10F5 S7V8V3: 3,3 V pakilimo/sumažinimo įtampos reguliatorius, pagrįstas „Pololu S7V8F3“
  • TOL10617: „Sparkfun LiPo“degalų matuoklis
  • LCD: ILI9341 ekranas

3 žingsnis: gaubtas

Korpusas
Korpusas
Korpusas
Korpusas
Korpusas
Korpusas

Korpusas yra pagamintas iš plexiglas 10x10x10 cm kubo konteinerio, kurį nusipirkau ebay ir buvo skirtas visiškai kitam naudojimui. Jame buvo gražios ventiliacijos angos, kurios buvo būtent tai, ko reikia. Apimties iš esmės pakako visam rinkiniui supakuoti, išskyrus tai, kad tai nebuvo lengva … kai kurie ankstyvieji bandymai, pagrįsti kartoninėmis maketomis, buvo nesėkmingi, todėl pasidaviau ir praleidau kelias valandas su 3D CAD, o vidines atramas nukirpiau lazeriu. Vidinė erdvė padalinta į skyrius, kad temperatūros jutiklis būtų kuo toliau nuo vidinių šilumos šaltinių. Išorinis gaubtas pagamintas iš 3 mm medžiagos, o viršus - iš 2+1 mm lakštų. Šis triukas leido gestų jutikliui padengti tik 1 mm akrilą ir to pakanka, kad jis veiktų.

Kai kuriuos pakeitimus reikėjo atlikti naudojant rankinius įrankius originaliame korpuse, pvz., Ventiliatorių, jungiklį ir USB skyles. Vis dėlto rezultatas buvo padorus!

CAD failai yra ČIA.

4 žingsnis: mechaninis surinkimas

Mechaninis surinkimas
Mechaninis surinkimas
Mechaninis surinkimas
Mechaninis surinkimas
Mechaninis surinkimas
Mechaninis surinkimas

Pakuotė yra labai tanki, tačiau dėl „3D cad“dizaino surinkimo metu turėjau mažai staigmenų.

Oro cirkuliaciją (iš viršaus į apačią) užtikrina nedidelis ventiliatorius. Nusipirkęs nemažą skaičių „Aliexpress“/ „eBay“, supratau, kad pigių ventiliatorių triukšmas yra nepakeliamas patalpų įrenginiui. Galų gale nusipirkau gana brangų, lėtai besisukantį „Papst 255M“(„Link“) ir maitinau jį mažiau nei 5 V per porą diodų. Rezultatas yra gana geras ir pakankamai tylus, kad būtų nepastebėtas (tai netgi žmonos patvirtintas, sunkiausias sertifikatas).

5 žingsnis: programinė įranga

Programinė įranga
Programinė įranga
Programinė įranga
Programinė įranga
Programinė įranga
Programinė įranga
Programinė įranga
Programinė įranga

Programinės įrangos architektūra pagrįsta į objektą orientuota sistema, kuri vykdo kelis (bendradarbiavimo) procesus, valdančius vartotojo sąsają, jutiklius ir MQTT. Jis žino vietą ir laiką, tačiau gali atjungti / vėl prisijungti prie „WiFI“.

Sistema yra atvira ir gali valdyti bet kokį ekranų skaičių, jei jų kodas ir ištekliai telpa „Flash“atmintyje. Programos sistema tvarko gestus ir perduoda juos ekranams, kad prireikus juos būtų galima toliau tvarkyti arba atšaukti. Sistemos valdomi gestai yra šie:

  • Braukite kairėn / dešinėn - keisti ekraną
  • (Pirštas) sukimasis pagal laikrodžio rodyklę - pasukite ekraną
  • (Pirštas) Sukimasis prieš laikrodžio rodyklę - iškviesti sąrankos ekraną
  • (Ranka) Nuo toli iki uždarymo - išjunkite ekraną

Ekranai paveldimi iš bazinės klasės ir yra valdomi pagal šį įvykių modelį:

  • aktyvuoti - suaktyvinamas vieną kartą, kai sukuriamas ekranas
  • atnaujinimas - periodiškai vadinamas atnaujinti ekraną
  • išjungti - skambinama vieną kartą, prieš atleidžiant ekraną
  • onUserEvent - iškviečiamas, kai suaktyvinamas gesto jutiklis. Leidžia reaguoti ir taip pat nepaisyti numatyto įvykių tvarkymo, pvz. nutraukti braukimą, kad pakeistumėte ekraną

Kiekvienas ekranas deklaruoja savo galimybes pateikdamas šią informaciją:

  • getRefreshPeriod - kaip dažnai reikia atnaujinti ekraną
  • getRefreshWithScreenOff - jei ekranas nori būti atnaujintas net tada, kai foninis apšvietimas yra išjungtas. pvz. diagramoms
  • getScreenName - ekrano pavadinimas
  • isFullScreen - visiškai valdykite ekraną arba leiskite viršutinėje juostoje nurodyti datą/laiką/vietą/akumuliatoriaus matuoklį/„Wi -Fi“matuoklį

Sistema gali momentinius ekranus perkelti ir išdėstyti per deklaratyvios klasės gamyklą. Dinaminis paskirstymas taupo RAM ir leidžia prietaisą lengvai išplėsti. Bendra paraiškų sistema taip pat gali būti pakartotinai naudojama kitiems projektams.

Šiuo metu „Atmoscan“įdiegti ekranai yra šie:

  • Jutiklių vertės
  • Geigerio skaitiklio / semilogo diagrama
  • Sistemos būsena
  • Klaidų žurnalas
  • Meteorologinė stotis
  • Lėktuvo stebėtojas
  • Sąranka
  • Maža baterija

Sąrankos ekranuose galima nustatyti „Wifi“prisijungimo duomenis, MQTT kanalus, „Syslog“serverį.

2.0 NAUJIENA: dabar visus žiniatinklio paslaugų raktus galima konfigūruoti per konfigūracijos portalą. Vienintelė reikšmė, kuri vis dar yra koduota, yra OTA slaptažodis (didžiosios ATMOSCAN).

PASTABA 1: Pirmasis programavimas turi būti atliktas naudojant USB serijos kabelį, prijungtą prie programavimo jungties. Kadangi serijinį prievadą užima jutiklis, toks derinimas ir programavimas po surinkimo yra nepraktiškas, nes jį reikia atjungti. Todėl programinė įranga palaiko SYSLOG derinimą ir OTA atnaujinimus.

2 PASTABA: dvejetainis „ATMOSCAN“yra didesnis nei 700 KB, o „ArduinoOTA“reikalauja, kad programos erdvė būtų bent du kartus didesnė už vaizdo dydį, o tai atmeta parinktį „4M (3M SPIFFS)“. Tačiau standartinė „4M (1M SPIFFS)“parinktis taip pat netinka, nes SPIFFS skaidinio nepakaktų grafiniams ištekliams, susijusiems su orų stotimis, lėktuvų stebėtojais ir konfidencialiu failu. Todėl problemai išspręsti buvo sukurta pasirinktinė konfigūracija „4M (2M SPIFFS)“. Paaiškinimas čia.

Dokumentus ir visą šaltinio kodą rasite čia.

Į KREDITUS ĮSKAIČIUOTAS KODAS IR BIBLIOTEKOS

  • Adafruit
  • Arkao
  • Bblanchonas
  • Bodmeris
  • „ClosedCube“
  • Gmag11
  • Knolleary
  • Lucadentella
  • Matė
  • Squix78
  • Tzapu
  • 97

INTEGRUOJA WEB PASLAUGAS

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

6 žingsnis: pagerinkite

Padaryk tai geriau!
Padaryk tai geriau!

Rezultatas visai neblogas! Programinė įranga atrodo gerai ir yra patikima, nors ją būtų galima išplėsti naujomis funkcijomis ir galbūt šiek tiek išvalyti, kad programų sistemą tikrai būtų galima pakartotinai naudoti kitiems projektams. Kai kurių jutiklių kalibravimas nėra puikus, tačiau bandymų laboratorijos įranga būtų reikalinga. Laikas yra brangus ir aš neturiu daug, todėl pažanga buvo lėta. Kai baigiau, ESP32 buvo galima tinkamai palaikyti. Jei dabar pradėčiau, tai naudočiau ir integruotų išorinius jutiklius per „Bluetooth“.

Kas nors?

PASTABA: Aš vis dar turiu saują PCB, todėl jei kas nors domisi, juos galima įsigyti už nominalią / pašto kainą.

7 žingsnis: klausimai ir atsakymai

Klausimai ir atsakymai
Klausimai ir atsakymai
Klausimai ir atsakymai
Klausimai ir atsakymai

Visų pirma, AČIŪ už be galo teigiamus komentarus. Tiesą pasakius, nesitikėjau tokio susidomėjimo.

Gavau nemažai klausimų per komentarus arba asmenines žinutes, todėl sugalvojau atsakymus surinkti čia. Jei ateis daugiau, pridėsiu.

Stalviršio gale radau 8 turimas PCB - ir jos pakeliui į Belgiją, Vokietiją, Indiją, JAV, Kanadą, JK, Australiją. Oho, 3 žemynai! Nuostabu.

Ką turėčiau įdėti į ATMOSCAN konfigūracijos puslapį?

Atmoscan konfigūracijos puslapyje reikalingi šie parametrai:

  • „WiFi“tinklo, prie kurio norite prisijungti, SSID ir slaptažodis
  • Jūsų naudojamas MQTT serveris. Pavyzdžiui, naudoju mqtt.thingspeak.com
  • Naudota MQTT temų ryšio eilutė. Pavyzdžiui, „Thingspeak“MQTT temos yra tokio formato: kanalai/CHANNEL-ID/paskelbti/WRITE-API (PAVYZDYS: kanalai/123456/paskelbti/567890)
  • „Syslog“serveris: sistemos registravimo serverio, kurį naudojate registruoti, IP
  • Žemėlapių statinės API „Google“raktas. Gaukite raktą iš https://console.cloud.google.com/apis/dashboard. Sukurkite projektą; „Atmoscan“naudojama API yra https://maps.googleapis.com/maps/api/staticmap. Sukurkite šios API raktą ką tik sukurtame „Google“projekte, naudokite jį čia
  • Požeminis „Weather“raktas. Sukurkite paskyrą www.wunderground.com, eikite į „WEATHER“API (nuoroda pagrindinio puslapio apačioje, eikite į „KEY SETTINGS“, sugeneruokite raktą, naudokite jį čia
  • Geonames paskyra. Sukurkite paskyrą svetainėje https://www.geonames.org/, kad ji galėtų naudotis nemokamomis žiniatinklio paslaugomis, ir įveskite naudotojo vardą čia
  • „TimeZoneDB“raktas. Sukurkite paskyrą adresu https://timezonedb.com/, sukurkite raktą, padėkite jį čia

Kaip sukonfigūruoti „Thingspeak“?

Jums reikia 3 „Thingspeak“kanalų. Laukai naudojami taip:

1 KANALO laukai

  1. TEMPERATŪRA
  2. DRĖGMĖ
  3. SLĖGIS
  4. PM01
  5. PM2.5
  6. PM10
  7. MUT
  8. RADIACIJA

CHANNEL 2 laukai

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

3 KANALO laukai (sistemos kanalas)

  1. LAIKAS MINUTES
  2. NEMOKAMA PŪDA baitais
  3. WIFI RSSI (SIGNALAS DBM)
  4. BATERIJOS ĮTAMPA
  5. LINEAR SOC (BATERY BATER OF CHARGE % - tiesinis skaičiavimas, proporcingas įtampai)
  6. NATIVE SOC (BATERY BATER OF CHARGE % - kaip pranešė matuoklis. Kaip perskaityta iš matuoklio. PASTABA: matuoklis sako 0 %, kai pasiekia 3.6v, o baterijas galima iškrauti šiek tiek toliau, tarkime, virš 3v. Apatinė riba, kuriame ATMOSCAN išsijungia, yra #define globaldefinitions.h faile)
  7. SISTEMOS TEMPERATŪRA (iš „bme280“, sumontuota tiesiai prie plokštės)
  8. SISTEMOS DRĖGMĖ (iš „bme280“, sumontuota tiesiai prie plokštės)

PCB yra labai kompaktiškas. Kaip lituoti SMD įrenginius, ypač MAX8903A IC?

Pirmiausia siūlau paklausti savęs, ar norite patekti į SMD, ar tai yra vienkartinis atvejis. Jei pastaroji, galbūt paprašykite, kad kas nors tai padarytų už jus. Jei norite priimti SMD iššūkį, šiek tiek investuokite ir įsigykite tinkamų įrankių (lydmetalis, srautas, izopropilo alkoholio smulkintuvas, karštas pistoletas, pincetas, pigi USB kamera, PCB laikiklis). Šiais laikais tai pigus dalykas. Tada žiūrėkite „YouTube“vaizdo įrašą-jų yra pusė milijono-ir praleiskite šiek tiek laiko su sena PCB, kurią galite paaukoti ir kai kuriuos komponentus lituoti / valyti / lituoti. Nepatikėtumėte, koks tai pamokantis dalykas - sužinoti, ko tikėtis, nustatyti tinkamą temperatūrą ir tt. Kalbėdamas iš patirties … Aš pradėjau SMD keisti ekrano jungtį „iPod touch“ir nužudžiau pirmąjį!

Iš tikrųjų „Atmoscan“PCB yra kompaktiška ir ta IC nėra lengva. Vėlgi, aš nerekomenduoju to daryti kaip pirmojo SMD litavimo. QFN nėra draugiškas paketas, nors iki šiol lituojau numerį. Niekada nesi tikras, ar teisingai supratai…

„Atmoscan“pirmiausia jį lituodavau, tada - jį supančius komponentus, kad galėčiau patikrinti, ar plokštės įkrovimo dalis veikia, tada užbaigiau visus kitus. Iš pridėtų paveikslėlių turėtumėte sugebėti nustatyti komponentų orientaciją. Naudojau viešojo naudojimo komponentų bibliotekas, o šilkografijoje ši orientacija nėra labai akivaizdi.

Mano būdas: pirmiausia ant lygintuvų uždėjau šiek tiek lituoklio. Tada daug srauto (specifinis SMD) ir aš atsargiai išdėstiau IC pincetu. Tada pašildykite visą iki maždaug 200/220C (žemiau lydymosi temperatūros), kad išvengtumėte įtampos dėl netolygaus kaitinimo. Tada aš pakėliau temperatūrą iki 290C ar pan., Ir aplink IC. Jei uždėsite šiek tiek lituoklio ant netoliese esančio padėklo, pamatysite, kada temperatūra yra lydymosi temperatūra, nes ji blizgės.

Po to jį nuvaliau izopropilo alkoholiu ir atidžiai apžiūrėjau pigia USB kamera. Tipiškos problemos yra lydmetalis ir lydmetalio kiekis, nes kai kurie kaiščiai gali būti neprijungti. Kai kuriais atvejais turėjau grįžti prie jo su mažu lituokliu, kad į kai kuriuos kaiščius pridėčiau daugiau litavimo, nes šio IC apačioje yra terminis padėklas, kurį taip pat reikia lituoti. Dėl to šiek tiek sudėtinga atspėti lydmetalio kiekį ir gali atsitikti taip, kad per daug lydmetalio po juo gali pakilti, kad kaiščiai neliestų PCB.

Taip pasakęs, nenoriu tavęs gąsdinti. Aš baigiau 3 lentas ir niekada neužmušiau šių IC … Vieną kartą net turėjau ją pašalinti, išvalyti ir iš naujo paleisti nuo nulio, bet galų gale tai pavyko. Vėlgi, tai nėra labai lengva, bet įmanoma.

Kur pirkote komponentus?

Dažniausiai „eBay“ir „Aliexpress“. Tačiau firminiai yra originalūs (Seeed, Pololu, Sparkfun).

Toliau pateikiamos kelios nuorodos. Pastaba: apsidairykite aplink, galbūt rasite dar pigesnių pasiūlymų …

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

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

www.aliexpress.com/item/High-Accuality-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…

„Atmoscan“plokštėje yra programavimo grandinė, atitinkanti „NodeMCU“. Pirmam programavimui paprastai naudojamas serijinis ryšys. Po to pageidautina OTA programavimas per „Wi -Fi“, nes tai galima padaryti visiškai surinkus įrenginį. Nepamirškite, kad nuoseklųjį prievadą paprastai naudoja dalelių jutiklis!

Norėdami užprogramuoti plokštę serijiniu būdu, USB jungties adapteris (pvz., FTDI232 ar panašus) turi būti prijungtas prie J7 jungties (šalia atstatymo mygtuko), vadovaujantis schemoje esančiu kištuku. Programą galima įkelti neprijungus jutiklių, išskyrus tai, kad geigerio jutiklio pertraukimo linija turi būti prijungta prie GND, kitaip plokštė neįsijungs (norėdami tai padaryti, prijunkite 1 ir 3 kaiščius RAD jungtyje). Lengviausias būdas išbandyti plokštę nenaudojant pagrindinio eskizo, taigi ir be jutiklių sudėtingumo, yra įkelti ŠIĄ paprastą programą nuosekliu kabeliu. Tai sukuria „Wi -Fi“prieigos tašką, kuris leidžia toliau mirksėti naudojant pagrindinę programą.

SVARBU: Nepamirškite naudoti 4M/2M SPIFFS konfigūracijos pagal instrukcijas, kitaip pagrindinė programa netiks. Lentą reikia inicijuoti naudojant tos konfigūracijos serijinį programavimą, kitaip vėliau gali kilti problemų su OTA.

Deja, kai kurių jutiklių inicijavimas blokuojamas, jei nėra jutiklių (priklauso nuo bibliotekos teikėjo). Vienas iš pavyzdžių yra kelių dujų jutiklių biblioteka. Norėdami įsitikinti, kad „Atmoscan“tinkamai paleidžiama su visa programine įranga, galite išjungti susijusį procesą, žr. Susijusį klausimų ir atsakymų punktą. Paprastas būdas išjungti VISUS jutiklius bandymams yra pakomentuoti eilutę #define ENABLE_SENSORS faile GlobalDefinitions.h.

Kai lenta pirmą kartą paleidžia pagrindinį eskizą, ji turėtų atpažinti, kad ji nėra sukonfigūruota, ir turėtų atidaryti „Wi -Fi“viešosios interneto prieigos tašką, prie kurio galite prisijungti ir jį nustatyti. Tarp nustatymų yra syslog serveris, kuris labai padeda derinti. Taip pat galite padidinti registravimo lygį, nekomentuodami #define DEBUG_SYSLOG failo „GlobalDefinitions.h“. Atminkite, kad tame pačiame faile taip pat yra #define DEBUG_SERIAL, kuris buvo naudojamas pradinio derinimo metu. Jei nekomentuosite, išeis _kažkas_, bet minimalus registravimas. „ToDo“elementas visada turėjo būti vienodas ir pasirenkamas, tačiau niekada neturėjau laiko jo išvalyti.

Ar pakeitėte naudojamas bibliotekas, ar reikia kokios nors konfigūracijos? (o ne atsisiųsti ir kompiliuoti)

Geras klausimas, pamiršau paminėti tą punktą. Tiesą sakant, reikia kelių modifikacijų / konfigūracijų:

  • Biblioteka https://github.com/Seeed-Studio/Mutichannel_Gas_Sensor - serijos derinimo pareiškimai. Reikia pakomentuoti, nes serijinis prievadas naudojamas jutikliui!
  • Biblioteka https://github.com/Bodmer/TFT_eSPI - reikalingas konfigūracijos failas, kuriame nurodytas kaiščio priskyrimas ir SPI dažnis
  • Biblioteka https://github.com/lucadentella/ArduinoLib_MAX1704… - Žiūrėdamas į komentarus ir prašymus, pastebėjau, kad yra klaidų pataisymas, kuris niekada nebuvo sujungtas

Kiek pamenu, taip ir turėtų būti. Praneškite man, jei kyla kokių nors problemų.

PASTABA: skaitykite naujausio šaltinio kodo komentarus - jame yra nuorodų į visas reikalingas bibliotekas ir jis nuolat atnaujinamas

Kodėl kai kurie jutikliai vaizdo įraše/nuotraukose skaito raudoną, o kiti - žalią?

Spalva rodo tendenciją. Jis prasideda baltai, o jei kyla aukštyn - raudonas, jei leidžiasi žemyn - žalias.

Kaip elgtis su jutiklių dreifu laikui bėgant? Kokie yra šie jutikliai? Ką galiu pamatyti su šiais jutikliais?

Tiesą sakant, tai nėra mokslinis matavimo rinkinys. Kalibruoti man reikia įrangos, kurios neturiu. Tai tikrai naminių gyvūnėlių projektas. Išbandžiau kelis jutiklius. Mano nuomone, dalelės, CO2, temperatūra, drėgmė, slėgis, Geiger yra gana geros. Dėl NO2 turiu abejonių dėl kalibravimo ir bendro dizaino, tačiau nėra daug galimybių. Apskritai, jie yra pagrindiniai jutikliai.

Tačiau derinys yra pakankamai geras, kad parodytų tai, ko nesitikėtumėte.

„Atmoscan“gyvenamajame kambaryje, o virtuvė - už kambario, ji aptinka didžiulių dalelių smailių, kai pvz. kepimo daiktai. Jaučiamas rytinio eismo NO2 net ir uždarius langus.

Ar tikrai reikėjo „Geiger“skaitiklio? Ar tai parodo ką nors naudingo?

Laimei, mes neturėjome branduolinių incidentų, o karas dar nesibaigia … Vis dėlto, atominės elektrinės yra ne taip toli, o vyriausybė dalija jodo tabletes vaikams, kad jie būtų laikomi stalčiuje įvykių atveju … todėl man kilo įtarimas. Kol kas turiu pasakyti, kad rodmenys tiksliai atitinka numatomą foninę spinduliuotę (0,12 uSv/h)

Kokia bendra įrenginio kaina?

Aš jau turėjau daug komponentų namuose, o aukščiau pateiktos nuorodos suteikia jums idėją. Sąžiningai, jei perkate paruoštą „NetAtmo“ar pan., Sutaupote pinigų. Negalite nugalėti Kinijos kompanijos, kuri daro viską mastu! Tačiau jei jums patinka gaminti galbūt kartu su savo vaikais, tai verta. Gera dalis yra ta, kad aš jau išbandžiau (ir išmečiau) daugybę jutiklių …

Kaip apie PCB? Ar galite man parduoti vieną?

Iš pradžių turėjau 10 iš jų, kuriuos sukūrė „dirtypcbs.com“, ir mano failai puikiai pavyko. Kokybiška ir pakankamai pigi, 25 USD / 20 eurų už 10 PCB. Aš naudoju du ir mielai siunčiu likusius už pačią kainą (2 eurai + siunta, priklausomai nuo vietos ir pristatymo pageidavimų). Bijau, kad teks išsirinkti pirmuosius, kurie man atsiunčia privačią žinutę.

Ar galite sukurti rinkinį ar „Kickstarter“kampaniją?

Malonu, bet, tiesą sakant, niekada nemaniau, kad tai pakankamai novatoriška … ir be to, NĖRA LAIKO !!

Tačiau jei kas nors imtųsi idėjos, reikėtų antros iteracijos. Dizaine yra keletas aštrių briaunų, kurias būtų verta ištaisyti, bet vėlgi niekada neturėjau pakankamai laiko V2.

Aparatūra: Ar galiu pridėti / pašalinti jutiklį, ekraną ir pan., Kad išplėstų galimybes / sumažintų energijos suvartojimą?

Ekranas prijungtas nenaudojant MISO, todėl procesorius niekada neskaito iš ekrano. Todėl tiesiog negalite prijungti ekrano skruzdėlės, ji veiks puikiai. Tai pasakius, ekranas įjungiamas tik kurį laiką po paskutinio gesto aptikimo, todėl jis tikrai neturi įtakos energijos suvartojimui.

Jutikliai yra alkani, o visa tai lengvai naudoja 400/500mA. Nepamirškite ventiliatoriaus ir to, kad dalelių jutiklis taip pat turi įmontuotą ventiliatorių. ESP taip pat neperjungia miego režimo, nes trūksta GPIO pons. Tačiau tai galbūt sutaupytų 20 mA…

Programinė įranga yra modulinė ir jūs galite lengvai pridėti/pašalinti procesus ir ekranus, kad galėtumėte pridėti jutiklių arba palengvinti maitinimą, pašalindami kai kuriuos, jei norite. Vienintelis apribojimas yra GPIO kaiščių skaičius. Tačiau jutiklius galima lengvai pridėti, jei I2C, arba alternatyviai I2C plėtiklį galima naudoti GPIO pridėjimui …

Mano nuomone, geriausias būdas būtų nepradėti susijusio proceso, norint išjungti jutiklį, pavyzdžiui, išbandyti dalinį kūrimą. Tai galima padaryti pakomentuojant susijusį įgalinimo () iškvietimą pagrindinio.ino failo funkcijoje void startProcesses (). Jei nenorite struktūriškai modifikuoti sistemos, aš visiškai nepašalinčiau procesų, nes ekranas ir MQTT procesai juos apklaus. Tokiu būdu jie turėtų tiesiog grąžinti nulį. Atminkite, kad geigerio plokštės pertraukimo įvestis nenaudojama, priešingu atveju plokštė nebus paleista.

Kokius patobulinimus būtumėte atlikę, jei turėtumėte laiko V2.0?

Ne tam tikra tvarka..

  • PCB galėtų išvengti vario už ESP8266 antenos. Aš visiškai jį pamiršau ir spinduliuotės diagrama tampa neizotropinė
  • Mano nuomone, įkroviklis yra per mažas tokiai didelei baterijai / akumuliatorius yra per didelis įkrovikliui. Yra ir kitų IC ir aš bandyčiau kitą.
  • Yra geresni akumuliatoriaus matuokliai.
  • Pridėčiau ozono jutiklį
  • Norėčiau naudoti ESP32 daugiau GPIO ir „Bluetooth“jutiklių iš pagrindinio įrenginio.
  • Jei turėčiau daugiau GPIO su ESP32 arba su I2C plėtikliu, vieną naudočiau ventiliatoriui valdyti, o kitą - išjungti įrenginį iš programinės įrangos. Dabar, kai akumuliatorius išsikrovęs, vienintelis dalykas, kurį jis gali padaryti, kad būtų rodomas žemos baterijos ekranas. Tiesą sakant, tai yra didžiausias dizaino trūkumas, nes akumuliatoriaus įkrovos lygis nėra maloniai tvarkomas.

Apie programinę įrangą

Tai užtruko ilgiau nei aparatūra … Manau, kad joje yra daug gerų koncepcijų, deja, jos nėra visiškai įgyvendintos. Tiksliau, manau, kad ji turėtų būti išvalyta, galbūt išplėsta ir iš jos būtų galima lengvai gauti bendrą ESP8266 programų sistemą. Nėra laiko. Ar kas nors priima iššūkį?

Ar galite pridėti valdymą balsu?

Turėtų būti įmanoma. Yra daugybė paruoštų bibliotekų, skirtų valdyti „ESP8266“su „Alexa“, ir aš nesuprantu, kodėl integracija turėtų būti problema. Įdomus klausimas yra tai, ką norite su juo daryti, atsižvelgiant į funkcionalumą. Aš neturiu „Amazon Echo“, todėl niekada nebandžiau.

Kaip padarei lazerinius kirpimus?

Brėžiniai padaryti naudojant „SketchUp“. Programa yra graži, tačiau labai trūksta eksportavimo galimybių. Tačiau 30 dienų bandomoji versija padeda, nes ji turi papildomų funkcijų. Tada importavau jį į „Inkscape“galutiniam apdorojimui.

Ar galite įjungti/išjungti jutiklius, kad sutaupytumėte energijos per MOSFET?

Iš principo gera idėja, tačiau dauguma šių jutiklių turi būti nuolat maitinami, nes jie turi įšilimo laiką. Be to … ESP8266 baigiasi GPIO. Aš netgi turėjau naudoti GPIO10, kuris oficialiai nėra funkcionalus, tačiau puikiai veikia ESP12E.

Kokių įgūdžių man reikėtų?

Norėdami jį sukurti nuo nulio, jums reikės tam tikro elektronikos dizaino pagrindo. Tikrai nedaug, šiais laikais, naudojant internetą, jums tikrai nereikia skaityti duomenų lapų eilutėmis po eilutės, kaip mano ankstyvosiomis dienomis … Jei naudojate mano eksperimento rezultatus, jums reikia tam tikrų SMD litavimo įgūdžių, mechaninių įgūdžių ir šiek tiek kantrybės.

Ar tai jūsų pirmasis projektas?

Tai mano pirmasis pamokomas, bet ne pirmas projektas. Anksčiau daug sukrėsdavau, bet šiandien tikrai neturiu daug laiko. Aš prikėliau savo aprūdijusius įgūdžius, kai bandau išmokyti ko nors naudingo savo vaikams..! Sukūriau dar keletą projektų, kuriuos vieną dieną galėčiau paskelbti.

Rekomenduojamas: