Innehållsförteckning:

AtmoScan: 7 steg (med bilder)
AtmoScan: 7 steg (med bilder)

Video: AtmoScan: 7 steg (med bilder)

Video: AtmoScan: 7 steg (med bilder)
Video: Jennifer Lopez x Dolby Atmos : Can`t Get Enough 2024, November
Anonim
Image
Image
Sensorer
Sensorer

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

NYHETER

Gå till min GitHub för:

- Vissa små hårdvaruförändringar förbättrar designen, inklusive möjligheten att stänga av sig själv från programvara, vilket avhjälper en av designens största nackdelar - hur man hanterar låg batterinivå.

- En PCB v2 -design publiceras nu tillsammans med en guide för att enkelt tillämpa ändringen på kort V1.0.

- CAD -filer för komplett kapsling

Det nya höljet ser ut som bilden ovan … ja, utan gummiband

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

ATMOSCAN är en multisensor-enhet som syftar till att övervaka luftkvaliteten inomhus. Medan många projekt har publicerats med liknande syfte är detta ett komplett system i ett kompakt, fristående paket som sammanfattar dem alla. Den har en LCD -färgdisplay, det är tids- och platsmedvetet, det är gestkontrollerat och det postar till ThingSpeak (eller andra) via MQTT, men kan hantera avbrutna operationer och återanslutning korrekt. Med sitt inbyggda uppladdningsbara batteri håller den en hel dag när den är frånkopplad från strömmen.

Den använder en multitasking kooperativ ram och är mycket lyhörd för användarens input medan provtagningssensorer, hanterar UI, postar till MQTT. Faktum är att den klämmer ganska mycket ur den lilla ESP8266. Det gör det genom att integrera ett antal bibliotek med öppen källkod och utnyttja internetwebbtjänster.

Krediter till bibliotek går till ett antal bidragsgivare, se senare.

Musik i video hittar du HÄR

Steg 1: Sensorer

Atmoscan mäter ett antal variabler:

  • Temperatur
  • Fuktighet
  • Tryck
  • CO2
  • CO
  • NO2
  • VOC (flyktiga organiska föreningar, en luftkvalitetsindikator)
  • PM 01
  • PM25
  • PM10
  • Strålning

För att göra det integreras ett antal diskreta sensorer

  • BME280 (t.ex. Länk)
  • PMS7003 (t.ex. Länk)
  • MH-Z19 (t.ex. Länk)
  • HDC1080 (t.ex. Länk)
  • MiCS6814 (länk)
  • MP503 (länk)
  • LND-712 Geiger-rör (länk, jag hittade det i Europa här Länk eller här länk) med högspänningsmodul (länk)

Datablad finns HÄR.

Steg 2: Elektronik

Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik

Atmoscan kan enkelt byggas med en NodeMCU eller något annat ESP8266 -kort och några lättillgängliga komponenter, till exempel nivåväxlare och spänningsregulatorer, om du ger upp den integrerade batteriladdaren.

Medan jag prototypade med separata komponenter, konstruerade jag för den slutliga versionen ett specifikt kort som integrerar alla funktioner och ger snygga kontakter för sensorer, lysdioder för status (Blå = strömförsörjning ansluten; Röd = laddning).

Eagle PCB -filer tillgängliga HÄR.

Specifikt integrerar styrelsen:

  • Laddningskretsar baserade på MAX8903A (länk)
  • En knapp på/av-logik
  • ESP12E -modul
  • Programmeringslogik
  • Nivåreglage
  • LCD -bakgrundsbelysningsdrivrutin
  • 3.3V Step-Up/Step-Down Spänningsregulator baserad på Pololu S7V8F3 (länk)
  • 5V Step-Up Spänningsregulator baserad på Pololu U1V10F5 (länk)
  • LiPo bränslemätare baserad på SparkFun TOL10617 (länk)

Displayen är en 2,8 TFT 320x240 baserad på ett ILI9341 -chip (Link).

Gestsensorn är baserad på PAJ7620U2 -chipet (Link), mycket bättre än den billiga APDS9960 som genererar kontinuerliga avbrott och inte kan fungera genom plexiglas.

Sensorerna är ganska energisugna, så för att garantera minst 24 timmars autonomi gjorde jag ett paket med 3 x 5000 mAh LiPo 105575 batterier (länk). Faktum är att 2 kunde ha varit tillräckligt. MAX8903 -laddaren kämpar för att ladda det resulterande paketet på 15 000 mAh.

ANMÄRKNINGAR - SOM SES PÅ BILDERNA:

  • Kontaktdonens positioner visas
  • SD -kortplatsen måste avlödas från displayen om du vill att den ska passa i höljet
  • Du måste göra ett litet hack i kretskortet för att inte störa fläkten (hack är på modet efter iPhone X). Korrigerad i PCB V2

Anslutningsförkortningar på kretskort är följande:

  • PRS: Barometrisk trycksensor (baserad på BME280) OBS: monteras direkt på kretskortet
  • VOC: Grove - Luftkvalitetssensor v1.3 (baserat på MP503)
  • TMP: Digital sensor för hög luftfuktighet och temperatur med hög noggrannhet (baserat på HDC1080)
  • PMS: PMS7003 Digital partikelkoncentrationssensor
  • GAS: Grove - flerkanalig gassensor (baserad på MiCS6814)
  • GES: Grove - Gest -sensor (baserad på PAJ7620U2)
  • RAD: Geiger -rör (via högspännings Geiger -sondrivrutins strömförsörjningsmodul 400V / 500V med TTL digitaliserad pulsutgång)
  • CO2: MH-Z19 infraröd CO2-gassensor
  • U1V10F: 5V Step-Up Spänningsregulator baserad på Pololu
  • U1V10F5 S7V8V3: 3.3V Step-Up/Step-Down Spänningsregulator baserad på Pololu S7V8F3
  • TOL10617: Sparkfun LiPo bränslemätare
  • LCD: ILI9341 display

Steg 3: Kapsling

Inhägnad
Inhägnad
Inhägnad
Inhägnad
Inhägnad
Inhägnad

Höljet härrör från en plexiglas 10x10x10 cm kubbehållare som jag köpte på ebay och var avsedd för en helt annan användning. Den hade fina ventilationsöppningar som var precis vad som behövdes. Volymen var i princip tillräcklig för att packa hela uppsättningen, förutom att det inte var lätt … några tidiga försök baserade på kartongmockup misslyckades jävligt så jag gav upp och slösade bort några timmar med en 3D CAD och jag fick de inre stöden laserskurna. Det inre utrymmet är uppdelat i fack så att temperatursensorn är så långt bort som möjligt från inre värmekällor. Medan det yttre höljet är tillverkat av 3 mm material, är toppen gjord av 2+1 mm ark. Detta trick tillät att ha gestsensorn täckt med endast 1 mm akryl och detta är tillräckligt för att få det att fungera.

Vissa ändringar måste göras med handverktyg på det ursprungliga höljet, såsom fläkt, omkopplare och USB -hål. Resultatet blev ändå hyfsat!

CAD -filer finns HÄR.

Steg 4: Mekanisk montering

Mekanisk montering
Mekanisk montering
Mekanisk montering
Mekanisk montering
Mekanisk montering
Mekanisk montering

Paketet är mycket tätt men tack vare 3D -cad -designen hade jag få överraskningar när jag monterade det.

Luftcirkulationen (uppifrån och ner) säkerställs av en liten fläkt. Efter att ha köpt ett rimligt antal på Aliexpress / eBay insåg jag att bullret från billiga fans var outhärdligt för en inomhusenhet. Det slutade med att jag köpte en ganska dyr, långsam Papst 255M (Link) och jag matade den med mindre än 5V via ett par dioder. Resultatet är ganska bra och tyst nog för att vara obemärkt (det är till och med fru-godkänd, den svåraste certifieringen).

Steg 5: Programvara

programvara
programvara
programvara
programvara
programvara
programvara
programvara
programvara

Programvaruarkitekturen är baserad på ett objektorienterat ramverk som kör flera (kooperativa) processer som hanterar användargränssnitt, sensorer och MQTT. Det är plats- och tidsmedvetet men kan hantera frånkoppling / återanslutning till WiFI.

Ramverket är öppet och kan hantera valfritt antal skärmar, så länge deras kod och resurser ryms i Flash -minne. Applikationsramen hanterar gesterna och skickar det vidare till skärmarna för vidare hantering eller avbokning vid behov. Gester som hanteras av ramverket är:

  • Svep åt vänster / höger - Ändra skärm
  • (Finger) Snurra medurs - Vrid skärmen
  • (Finger) Snurra moturs - Aktivera installationsskärmen
  • (Hand) Från långt till nära - Stäng av displayen

Skärmar ärver från en basklass och hanteras via följande händelsemodell:

  • aktivera - avfyras en gång när skärmen skapas
  • uppdatering - kallas regelbundet för att uppdatera skärmen
  • inaktivera - ringde en gång innan skärmen stängs
  • onUserEvent - kallas när gestsensorn utlöses. Tillåter att svara och även åsidosätta standardhändelsehanteringen, t.ex. avbryt svep för att ändra skärm

Varje skärm deklarerar sina möjligheter genom att tillhandahålla följande information:

  • getRefreshPeriod - hur ofta skärmen behöver uppdateras
  • getRefreshWithScreenOff - om skärmen vill uppdateras även när bakgrundsbelysningen är avstängd. t.ex. för diagram
  • getScreenName - namn på skärmen
  • isFullScreen - ta full kontroll över displayen eller tillåt den övre fältet med datum/tid/plats/batterimätare/wifi -mätare

Ramverket kan instantiera och fördela skärmarna via en deklarativ klassfabrik. Den dynamiska fördelningen sparar RAM -minne och gör enheten lätt utbyggbar. Den övergripande applikationsramen kan också återanvändas för andra projekt.

Skärmar som för närvarande implementeras i Atmoscan är:

  • Sensors värden
  • Geigermätare / semilog -diagram
  • System status
  • Felloggen
  • Väderstation
  • Plane Spotter
  • Uppstart
  • Låg batterinivå

Installationsskärmarna tillåter inställning av Wifi -uppgifter, MQTT -kanaler, Syslog -server.

NYHET i v2.0: alla webbtjänstnycklar kan nu konfigureras via konfigurationsportalen. Det enda värdet som fortfarande är hårdkodat är OTA -lösenordet (stor bokstav ATMOSCAN).

OBS 1: Första programmeringen måste göras med en USB-seriell kabel ansluten till programmeringskontakten. Eftersom serieporten är upptagen av en sensor är felsökning och programmering på det sättet opraktiskt efter montering eftersom det skulle kräva att sensorn lossas. Därför stöder programvaran SYSLOG -felsökning och OTA -uppdateringar.

OBS 2: Binär ATMOSCAN är över 700Kb och ArduinoOTA kräver att programutrymmet är minst dubbelt så stort som bildstorleken, vilket utesluter alternativet "4M (3M SPIFFS)". Standardalternativet "4M (1M SPIFFS)" är emellertid också olämpligt eftersom SPIFFS -partitionen skulle vara otillräcklig för de grafiska resurserna relaterade till väderstation, plan spotter och för confing -filen. Därför har en anpassad konfiguration "4M (2M SPIFFS)" skapats för att lösa problemet. Förklaring här.

Dokumentation och fullständig källkod finns här.

KREDITER INKLUDERAR KOD & BIBLIOTEK FRÅN

  • Adafruit
  • Arcao
  • Bblanchon
  • Bodmer
  • ClosedCube
  • Gmag11
  • Knolleary
  • Lucadentella
  • Sett
  • Squix78
  • Tzapu
  • Trollkarl97

INTEGRERAR WEBBTJÄNSTER FRÅN

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

Steg 6: Gör det bättre

Gör det bättre!
Gör det bättre!

Resultatet är inte alls dåligt! Programvaran ser bra ut och är pålitlig, medan den kan utökas med nya funktioner och kanske städas upp lite för att göra applikationsramen verkligt återanvändbar för andra projekt. Kalibrering av vissa sensorer är inte bra, men testlabbutrustning skulle behövas. Tiden är dyrbar och jag har inte mycket, så utvecklingen gick långsamt. När jag var klar blev anständigt stöd för ESP32 tillgängligt. Om jag startade det nu skulle jag använda det och integrera externa sensorer via bluetooth.

Någon?

OBS: Jag har fortfarande en handfull PCB så om någon är intresserad är de tillgängliga till nominellt / porto pris.

Steg 7: Frågor och svar

Frågor
Frågor
Frågor
Frågor

Först och främst TACK för dina överväldigande positiva kommentarer. Jag förväntade mig ärligt talat inte så mycket intresse.

Jag fick ett antal frågor antingen via kommentarer eller privata meddelanden, så jag tänkte samla svaren här. Skulle fler komma kommer jag att tillägga.

Jag hittade på baksidan av en låda de 8 tillgängliga kretskorten - och de är på väg till Belgien, Tyskland, Indien, USA, Kanada, Storbritannien, Australien. Wow, 3 kontinenter! Fantastisk.

Vad ska jag lägga på ATMOSCAN -konfigurationssidan?

Atmoscan -konfigurationssidan kräver följande parametrar:

  • SSID och lösenord för det WiFi -nätverk du vill ansluta till
  • MQTT -server du använder. Till exempel använder jag mqtt.thingspeak.com
  • Anslutningssträng för MQTT -ämnen som används. Till exempel är Thingspeak MQTT-ämnen i formatet: kanaler/CHANNEL-ID/publish/WRITE-API (EXAMPLE: channels/123456/publish/567890)
  • Syslog -server: IP -adressen för syslog -servern som du använder för loggning
  • Google -nyckel för Maps Static API. Skaffa en nyckel från https://console.cloud.google.com/apis/dashboard. Skapa ett projekt; API: et som Atmoscan använder är https://maps.googleapis.com/maps/api/staticmap. Skapa en nyckel för detta API för Google -projektet du just skapade, använd den här
  • Väder Underjordisk nyckel. Skapa ett konto på www.wunderground.com, gå till WEATHER API (länk längst ner på hemsidan, gå till NYCKELINSTÄLLNINGAR, skapa en nyckel, använd den här
  • Geonames -konto. Skapa ett konto på https://www.geonames.org/ gör det möjligt att använda gratis webbtjänster och ange användarnamnet här
  • TimeZoneDB -tangent. Skapa ett konto påhttps://timezonedb.com/, skapa en nyckel, lägg den här

Hur konfigurerar jag Thingspeak?

Du behöver 3 Thingspeak -kanaler. Fält används enligt följande:

KANAL 1 fält

  1. TEMPERATUR
  2. FUKTIGHET
  3. TRYCK
  4. PM01
  5. PM2.5
  6. PM10
  7. CPM
  8. STRÅLNING

KANAL 2 fält

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

KANAL 3 fält (systemkanal)

  1. UTTID I MINUTER
  2. GRATIS HÖP I BYTES
  3. WIFI RSSI (SIGNAL I DBM)
  4. BATTERIVOLT
  5. LINEAR SOC (BATTERISTATUS FÖR LADDNING % - linjär beräkning, proportionell mot spänning)
  6. NATIVE SOC (BATTERISTATUS FÖR AVLADDNING % - som rapporterad av mätare. Läst från mätaren. OBS: mätaren säger 0 % när den når 3,6v medan batterierna kan laddas ur lite längre, låt oss säga över 3v. Den nedre gränsen, där ATMOSCAN stänger av sig, är en #define i globaldefinitions.h -fil)
  7. SYSTEMTEMPERATUR (från bme280, monterad direkt på kortet)
  8. SYSTEMFUKTIGHET (från bme280, monterad direkt på brädet)

Kretskortet är mycket kompakt. Hur löd jag SMD -enheterna, särskilt MAX8903A IC?

Först föreslår jag att du frågar dig själv om du vill gå in i SMD eller om det är en engångs- Om den senare kanske be någon att göra det åt dig. Om du vill ta SMD -utmaningen investerar du lite och får de rätta verktygen (lödmedel, flussmedel, isopropylalkohol, litet järn, het pistol, pincett, en billig USB -kamera, en kretskortshållare). Numera är det billiga grejer. Titta sedan på en YouTube-video-det finns en halv miljon-och spendera lite tid med ett gammalt kretskort som du kan offra och avlödda / rengöra / löd vissa komponenter. Du skulle inte tro hur lärorikt det här är, att lära dig vad du kan förvänta dig, få rätt temperatur etc. Talar av erfarenhet … Jag började SMD byta displaykontakt i en iPod touch och jag dödade den första!

Atmoscan -kretskortet är faktiskt kompakt och att IC inte är lätt. Återigen rekommenderar jag dig inte att göra detta som din första SMD -lödning. QFN är inte ett vänligt paket trots att jag nu har lödt ett nummer. Du är aldrig säker på att du har rätt …

På Atmoscan lödde jag det först, sedan dess omgivande komponenter så att jag kunde testa att laddningsdelen av brädet fungerade, sedan slutförde jag resten. Av de bifogade bilderna bör du kunna utläsa komponenternas orientering. Jag använde komponentbibliotek för allmän egendom och orienteringen är inte särskilt tydlig i silkscreen.

Mitt sätt: Jag satte först lite löd på dynorna med strykjärnet. Sedan mycket fluss (SMD -specifikt) och jag placerade IC: n noggrant med en pincett. Värm sedan upp det hela till cirka 200/220C (under smältpunkten) för att undvika spänningar på grund av ojämn uppvärmning. Sedan höjde jag temperaturen till 290C eller så och runt IC. Om du lägger lite löd på en närliggande dyna ser du när temperaturen är vid smältpunkten, eftersom den kommer att lysa.

Därefter rengjorde jag den med isopropylalkohol och inspekterade den noggrant med en billig USB -kamera. Typiska problem är inriktning och mängd löd, eftersom vissa stift kanske inte är anslutna. I vissa fall var jag tvungen att gå tillbaka till den med en liten lödkolv för att lägga till lite mer löd till några stift, eftersom denna IC har en termisk kudde under som också måste lödas. Detta gör det lite knepigt att gissa mängden löd och det kan hända att för mycket löd under kan höja det så att tapparna inte vidrör kretskortet.

Med detta sagt vill jag inte skrämma dig. Jag slutförde tre brädor och jag dödade aldrig dessa IC: er … När jag ens var tvungen att ta bort det, städa upp och starta om från början men det fungerade till slut. Återigen, inte superenkelt men genomförbart.

Var köpte du komponenterna?

Mestadels på eBay och Aliexpress. De märkta är dock original (Seeed, Pololu, Sparkfun).

Några INDIKATIVA länkar följer. Obs: se dig omkring, du kanske hittar ännu billigare erbjudanden …

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…

Första programmeringen Atmoscan -kortet innehåller en programmeringskrets som är i linje med NodeMCU. Seriell anslutning används normalt för den första programmeringen. Därefter är OTA -programmering via wifi det föredragna alternativet, eftersom det kan göras med enheten färdigmonterad. Glöm inte att serieporten normalt används av partikelsensorn!

För att programmera kortet med seriell måste en USB-seriell adapter (t.ex. FTDI232 eller liknande) anslutas till J7-kontakten (bredvid återställningsknappen) efter pinout i schemat. Program kan laddas upp utan sensorer anslutna, förutom att avbrottsledningen för geigersensorn ska vara ansluten till GND, annars startar inte kortet (för att göra det, anslut stiften 1 och 3 i RAD -kontakten). Det enklaste sättet att testa kortet utan att använda huvudskissen - alltså utan sensornas komplexitet - är att ladda upp DETTA enkla program via seriekabel. Det skapar en wifi -åtkomstpunkt som tillåter ytterligare blinkning med huvudprogrammet.

VIKTIGT: Glöm inte att använda 4M/2M SPIFFS -konfigurationen enligt instruktionerna, annars passar inte huvudprogrammet. Kortet måste initieras via seriell programmering med den konfigurationen, annars kan du få problem med OTA senare.

Tyvärr blockerar vissa sensorer initialisering om sensorer inte finns (beror på biblioteksleverantören). Ett exempel är multigas sensorbiblioteket. För att säkerställa att Atmoscan startar korrekt med den fullständiga firmware kan du inaktivera den relaterade processen, se den relaterade frågeställningen. Ett enkelt sätt att inaktivera ALLA sensorer för testning är att kommentera raden #define ENABLE_SENSORS i filen GlobalDefinitions.h.

När styrelsen startar huvudskissen för första gången bör den inse att den inte är konfigurerad och bör öppna en wifi -hotspot, som du kan ansluta till och ställa in. Bland inställningarna finns en syslog -server som i hög grad hjälper till med felsökning. Du kan också öka loggningsnivån genom att inte kommentera #define DEBUG_SYSLOG i filen GlobalDefinitions.h. Observera att i samma fil finns också en #define DEBUG_SERIAL som användes under den första felsökningen. Om det inte är kommenterat kommer det ut _some_ restloggning, men minimal. Ett ToDo -objekt var alltid att göra loggning enhetlig och valbar men jag hade aldrig tid att städa upp den.

Har du ändrat de bibliotek du använde, behövs det någon konfiguration? (i motsats till nedladdning och kompilering)

Bra fråga, jag glömde nämna den punkten. Det behövs verkligen några mods / konfigurationer:

  • Bibliotek https://github.com/Seeed-Studio/Mutichannel_Gas_Sensor - seriella felsökningsuttalanden. Måste kommenteras, eftersom serieporten används för en sensor!
  • Bibliotek https://github.com/Bodmer/TFT_eSPI - kräver en konfigurationsfil där stifttilldelningen och SPI -frekvensen anges
  • Bibliotek https://github.com/lucadentella/ArduinoLib_MAX1704… - När jag tittade på kommentarerna och dragförfrågningar märkte jag att det finns en buggfix som aldrig slogs samman

Såvitt jag minns borde det vara så. Låt mig veta om det uppstår problem.

OBS: Se kommentarer i den senaste källkoden - innehåller länkar till alla nödvändiga bibliotek och hålls uppdaterad

Varför läser vissa sensorer rött och några gröna i videon/bilderna?

Färg indikerar trend. Det börjar vitt och om det går upp är rött, om det går ner är grönt.

Hur hanterar du sensorernas drift över tid? Hur bra är dessa sensorer? Vad kan jag se med dessa sensorer?

Ärligt talat är detta inte ett vetenskapligt mätpaket. För att kalibrera skulle jag behöva utrustning som jag inte har tillgänglig. Detta är verkligen ett husdjursprojekt. Jag testade flera sensorer. Partikeln, CO2, temperatur, luftfuktighet, tryck, Geiger är ganska bra enligt min mening. På NO2 har jag reservationer för kalibrering och övergripande design, men det finns inte mycket tillgängligt. Sammantaget är de vanliga sensorer.

Kombinationen är dock tillräckligt bra för att visa saker du inte förväntar dig.

Med Atmoscan i vardagsrummet och köket ett rum borta, detekterar det enorma toppar av partiklar när t.ex. stekprylar. Det känns NO2 från morgontrafiken även med fönstren stängda.

Var en Geigerdisk verkligen nödvändig? Visar det något användbart?

Lyckligtvis har vi inte haft kärnkraftsincidenter och krig kommer inte ännu … Ändå finns det kärnkraftverk inte så långt bort och regeringen delar ut jodpiller för att barn ska förvaras i lådan vid incidenter … så jag blev misstänksam. Hittills måste jag säga att avläsningarna är exakt i linje med den förväntade bakgrundsstrålningen (0,12 uSv/h)

Vad är den totala kostnaden för enheten?

Jag hade redan många komponenter hemma och länkarna ovan ger dig en uppfattning. Ärligt talat, om du köper en färdig NetAtmo eller liknande sparar du pengar. Du kan inte slå ett kinesiskt företag som gör saker i stor skala! Men om du tycker om att göra kanske tillsammans med dina barn är det värt det. Den goda delen är att jag redan testat (och kasserat) ett antal sensorer för dig ….

Vad sägs om PCB? Kan du sälja en till mig?

Jag hade ursprungligen 10 av dem gjorda av dirtypcbs.com och mina filer fungerade bra. God kvalitet och tillräckligt billig, 25USD / 20Euro för 10 PCB. Jag använde två och jag skickar gärna de resterande för ren kostnad (2 Euro + leverans, beroende på plats och leveranspreferenser). Jag är rädd att jag måste välja de första som skickar mig ett privat meddelande.

Kan du göra ett kit eller en kickstarter -kampanj?

Smickrande, men ärligt talat trodde jag aldrig att det var tillräckligt innovativt … och dessutom INGEN TID !!

Men om någon tar upp idén skulle en andra iteration behövas. Det finns några vassa kanter i designen som skulle vara värda att korrigera, men igen hade jag aldrig tillräckligt med tid för V2.

På hårdvara: Kan jag lägga till / ta bort en sensor, skärmen etc för att utöka kapaciteten / minska strömförbrukningen?

Displayen är ansluten utan att använda MISO, därför läser CPU: n aldrig från displayen. Därför kan du bara inte ansluta bildskärmsmyran, det skulle fungera bra. Med detta sagt är displayen bara på en stund efter att den senaste gesten upptäcktes så att det inte påverkar strömförbrukningen.

Sensorerna är istället energihungriga och det hela använder lätt 400/500mA. Glöm inte fläkten och även det faktum att partikelsensorn också har en inbyggd fläkt. ESP går inte heller i viloläge på grund av brist på GPIO -pons. Det skulle dock ha sparat 20mA …

Programvaran är modulär och du kan enkelt lägga till/ta bort processer och skärmar så att du kan lägga till sensorer eller tända strömmen genom att ta bort några, om du vill. Den enda begränsningen är antalet GPIO -stift. Sensorer kan dock enkelt läggas till om I2C, eller alternativt en I2C -expander kan användas för att lägga till GPIO: er …

För att inaktivera en sensor, till exempel för att testa en partiell byggnad, skulle det bästa sättet enligt mig vara att inte starta den relaterade processen. Detta kan uppnås genom att kommentera det relaterade aktiverings () -anropet i void startProcesses () -funktionen i huvud -ino -filen. Om du inte vill strukturellt ändra systemet skulle jag inte ta bort processerna helt och hållet eftersom skärmen och MQTT -processerna kommer att undersöka dem. På detta sätt ska de bara returnera noll. Observera att avbrottsingången för Geiger -kortet ska dras ned om den inte används, annars startar inte kortet.

Vilka förbättringar skulle du ha gjort om du hade tid för en V2.0?

Inte i någon särskild ordning..

  • Kretskortet kan undvika koppar bakom ESP8266 -antennen. Jag glömde det helt och det gör strålningsdiagrammet icke-isotropiskt
  • Laddaren enligt mig är underdimensionerad för ett så stort batteri / batteriet är för stort för laddaren. Det finns andra IC: er och jag skulle prova en annan.
  • Det finns bättre batterimätare.
  • Jag skulle lägga till en ozonsensor
  • Jag skulle använda en ESP32 för fler GPIO och Bluetooth -sensorer från huvudenheten.
  • Om jag hade fler GPIO antingen med ESP32 eller med en I2C expander skulle jag använda en för att styra fläkten och en annan för att stänga av enheten från programvara. Nu när det är lågt batteri är det enda det kan göra för att visa en skärm med låg batterinivå. Detta är faktiskt den största nackdelen med designen, eftersom låg batterispänning inte hanteras graciöst.

På programvara

Det tog mig längre tid än hårdvaran … Jag tror att den innehåller ett antal bra koncept, tyvärr inte helt implementerat. Specifikt tror jag att det bör rensas upp, eventuellt utökas och en generisk ram för ESP8266 -applikationer kan enkelt härledas från det. Ingen tid. Någon som tar sig an utmaningen?

Kan du lägga till röststyrning?

Borde vara genomförbart. Det finns ett antal färdiga bibliotek för att styra en ESP8266 med Alexa och jag förstår inte varför integrationen borde vara ett problem. Den intressanta frågan är vad du vill göra med det, funktionsmässigt. Jag äger inte ett Amazon Echo så jag har aldrig försökt.

Hur gjorde du laserskärningarna?

Ritningarna är gjorda med SketchUp. Programmet är trevligt men saknar allvarligt exportmöjligheter. 30 -dagars testversion hjälper dock eftersom den har ytterligare funktioner. Jag importerade den sedan till Inkscape för slutbehandling.

Kan du slå på/av sensorer för att spara ström via MOSFET?

Bra idé i princip, men de flesta av dessa sensorer måste drivas hela tiden eftersom de har en uppvärmningstid. Dessutom … Jag har slut på GPIO i ESP8266. Jag var till och med tvungen att använda GPIO10 som officiellt inte fungerar, men fungerar bra på ESP12E.

Vilka färdigheter skulle jag behöva?

För att bygga det från grunden behöver du lite elektronisk designbakgrund. Inte mycket egentligen, nuförtiden med internet behöver du inte riktigt läsa datablad rad för rad som i mina tidiga dagar … Om du använder resultatet av mitt experiment behöver du lite SMD -lödningskunskaper, mekaniska färdigheter och lite tålamod.

Är detta ditt första projekt?

Det är mitt första instruerbara men inte mitt första projekt. Jag pysslade mycket tidigare men jag har verkligen inte mycket tid nuförtiden. Jag återupplivade mina rostiga färdigheter när jag försöker lära ut något nyttigt för mina barn..! Jag gjorde några fler projekt som jag kanske kan publicera en dag..

Rekommenderad: