Indholdsfortegnelse:

AtmoScan: 7 trin (med billeder)
AtmoScan: 7 trin (med billeder)

Video: AtmoScan: 7 trin (med billeder)

Video: AtmoScan: 7 trin (med billeder)
Video: Focus on Education 11/07/20 2024, September
Anonim
Image
Image
Sensorer
Sensorer

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

NYHEDER

Gå til min GitHub for:

- Nogle små hardwareændringer forbedrer designet, herunder muligheden for at slukke for sig selv fra software, hvilket afhjælper en af de største ulemper ved designet - hvordan man håndterer lavt batteriniveau.

- Et PCB v2 -design er nu udgivet sammen med en guide til let at anvende ændringen på tavler V1.0.

- CAD -filer til komplet kabinet

Det nye kabinet ligner billedet ovenfor … ja, uden gummibåndet

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

ATMOSCAN er en multisensor-enhed, der er beregnet til at overvåge indendørs luftkvalitet. Mens mange projekter er blevet offentliggjort med samme formål, er dette et komplet system i en kompakt, selvstændig pakke, der opsummerer dem alle. Det har et LCD -farvedisplay, det er tids- og placeringsbevidst, det er gestusstyret og det sender til ThingSpeak (eller andre) via MQTT, men kan korrekt håndtere afbrudte operationer og genforbindelse. Med sit indbyggede genopladelige batteri holder det en hel dag, når det afbrydes.

Det bruger en multitasking kooperativ ramme og er meget lydhør over for brugerinput, mens prøveudtagningssensorer, håndtering af brugergrænseflade, udstationering til MQTT. Faktisk klemmer den en del ud af den lille ESP8266. Det gør det ved at integrere en række open source -biblioteker og udnytte internet -webtjenester.

Kreditter til biblioteker går til en række bidragydere, se senere.

Musik i video kan findes HER

Trin 1: Sensorer

Atmoscan måler en række variabler:

  • Temperatur
  • Fugtighed
  • Tryk
  • CO2
  • CO
  • NO2
  • VOC (flygtige organiske forbindelser, en luftkvalitetsindikator)
  • PM 01
  • PM25
  • PM10
  • Stråling

For at gøre dette integrerer det en række diskrete sensorer

  • BME280 (f.eks. Link)
  • PMS7003 (f.eks. Link)
  • MH-Z19 (f.eks. Link)
  • HDC1080 (f.eks. Link)
  • MiCS6814 (link)
  • MP503 (link)
  • LND-712 Geiger-rør (Link, jeg fandt det i Europa her Link eller her Link) med højspændingsmodul (Link)

Dataark er HER.

Trin 2: Elektronik

Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik

Atmoscan kan let bygges med et NodeMCU eller ethvert andet ESP8266 -kort og nogle let tilgængelige komponenter, f.eks. Niveauskiftere og spændingsregulatorer, hvis du opgiver den integrerede batterioplader.

Mens jeg lavede en prototype med separate komponenter, designede jeg til den sidste version et specifikt kort, der integrerer alle funktioner og giver pæne stik til sensorer, lysdioder til status (blå = strømforsyning tilsluttet; rød = opladning).

Eagle PCB -filer tilgængelige HER.

Konkret integrerer tavlen:

  • Opladningskredsløb baseret på MAX8903A (Link)
  • Logik med én knap til/fra
  • ESP12E modul
  • Programmeringslogik
  • Niveauskifter
  • LCD baggrundsbelysning driver
  • 3.3V Step-Up/Step-Down Spændingsregulator baseret på Pololu S7V8F3 (Link)
  • 5V step-up spændingsregulator baseret på Pololu U1V10F5 (link)
  • LiPo brændstofmåler baseret på SparkFun TOL10617 (link)

Skærmen er en 2,8 TFT 320x240 baseret på en ILI9341 -chip (Link).

Gestusensoren er baseret på PAJ7620U2 -chippen (Link), langt bedre end den billige APDS9960, der genererer kontinuerlige afbrydelser og ikke kan fungere gennem plexiglas.

Sensorerne er temmelig strømsultne, så for at garantere mindst 24 timers autonomi lavede jeg en pakke med 3 x 5000mAh LiPo 105575 batterier (Link). Faktisk kunne 2 have været nok. MAX8903 -opladeren kæmper for at oplade den resulterende pakke på 15.000 mAh.

BEMÆRKNINGER - SOM SET PÅ BILLEDERNE:

  • Stikpositioner vises
  • SD -kortstikket skal afloddes fra displayet, hvis du vil have det til at passe ind i kabinettet
  • Du skal lave et lille hak i printkortet for ikke at forstyrre blæseren (hak er på mode efter iPhone X). Korrigeret i PCB V2

Stikforkortelser på PCB er som følger:

  • PRS: Barometrisk tryksensor (baseret på BME280) BEMÆRK: monteres direkte på printkortet
  • VOC: Grove - Luftkvalitetssensor v1.3 (baseret på MP503)
  • TMP: Digital sensor til høj luftfugtighed og temperatur med høj nøjagtighed (baseret på HDC1080)
  • PMS: PMS7003 Digital partikelkoncentrationssensor
  • GAS: Grove - Flerkanals gasføler (baseret på MiCS6814)
  • GES: Grove - Gesture sensor (baseret på PAJ7620U2)
  • RAD: Geiger rør (via højspændings Geiger sonde driver strømforsyningsmodul 400V / 500V med TTL digitaliseret pulsudgang)
  • CO2: MH-Z19 infrarød CO2-gassensor
  • U1V10F: 5V Step-Up Voltage Regulator baseret på Pololu
  • U1V10F5 S7V8V3: 3.3V Step-Up/Step-Down spændingsregulator baseret på Pololu S7V8F3
  • TOL10617: Sparkfun LiPo brændstofmåler
  • LCD: ILI9341 display

Trin 3: Kapsling

Kabinet
Kabinet
Kabinet
Kabinet
Kabinet
Kabinet

Kabinettet er afledt af en plexiglas 10x10x10 cm terningbeholder, som jeg købte på ebay og var beregnet til en helt anden brug. Det havde fine ventilationsåbninger, der var præcis, hvad der var nødvendigt. Lydstyrken var i princippet tilstrækkelig til at pakke hele sættet, bortset fra at det ikke var let … nogle tidlige forsøg baseret på pap -mockups mislykkedes voldsomt, så jeg opgav og spildte nogle timer med en 3D CAD, og jeg havde de interne understøtninger laserskåret. Det indre rum er opdelt i rum, så temperatursensoren er så langt væk som muligt fra interne varmekilder. Mens den eksterne kabinet er lavet af 3 mm materiale, er toppen lavet af 2+1 mm ark. Dette trick tillod at have gestusensoren dækket med kun 1 mm akryl, og dette er tilstrækkeligt til at få det til at fungere.

Nogle ændringer skulle udføres med håndværktøj på det originale kabinet, såsom ventilator, switch og USB -huller. Resultatet var ikke desto mindre anstændigt!

CAD -filer er HER.

Trin 4: Mekanisk samling

Mekanisk samling
Mekanisk samling
Mekanisk samling
Mekanisk samling
Mekanisk samling
Mekanisk samling

Pakken er meget tæt, men takket være 3D cad -designet havde jeg få overraskelser, da jeg samlede den.

Luftcirkulation (fra top til bund) sikres af en lille blæser. Efter at have købt et rimeligt antal på Aliexpress / eBay, indså jeg, at støjen fra billige fans var uudholdelig for en indendørs enhed. Jeg endte med at købe en ret dyr, langsom drejning af Papst 255M (Link), og jeg fodrede den med mindre end 5V via et par dioder. Resultatet er ret godt og er stille nok til at være ubemærket (det er endda kone-godkendt, den hårdeste certificering).

Trin 5: Software

Software
Software
Software
Software
Software
Software
Software
Software

Softwarearkitekturen er baseret på en objektorienteret ramme, der kører flere (kooperative) processer, der håndterer UI, sensorer og MQTT. Det er placering og tidsbevidst, men kan håndtere afbrydelse / genforbindelse til WiFI.

Rammerne er åbne og kan styre et vilkårligt antal skærme, så længe deres kode og ressourcer passer i Flash -hukommelse. Applikationsrammen håndterer bevægelserne og sender den videre til skærmene for yderligere håndtering eller annullering, hvis det er nødvendigt. Gestus, der administreres af rammen, er:

  • Stryg til venstre / højre - Skift skærm
  • (Finger) Swirl med uret - Drej skærmen
  • (Finger) Swirl mod uret - Aktiver opsætningsskærmen
  • (Hånd) Fra langt til tæt - Sluk skærmen

Skærme arver fra en basisklasse og administreres via følgende hændelsesmodel:

  • aktiver - affyret én gang, når skærmen oprettes
  • opdatering - kaldes periodisk for at opdatere skærmen
  • deaktiver - kaldes en gang, før skærmen slettes
  • onUserEvent - kaldes når gestusensor udløses. Giver mulighed for at reagere og også tilsidesætte standardhændelseshåndteringen, f.eks. afbryde stryg for at ændre skærm

Hver skærm erklærer sine muligheder ved at levere følgende oplysninger:

  • getRefreshPeriod - hvor ofte skærmen skal opdateres
  • getRefreshWithScreenOff - hvis skærmen ønsker at blive opdateret, selv når baggrundsbelysning er slukket. f.eks. for diagrammer
  • getScreenName - skærmens navn
  • isFullScreen - tag fuld kontrol over displayet, eller tillad den øverste bjælke med dato/tid/placering/batterimåler/wifi -måler

Rammerne er i stand til at instantiere og distribuere skærmene via en deklarativ klassefabrik. Den dynamiske tildeling sparer RAM og gør enheden let udvidelig. Den overordnede applikationsramme kan også genbruges til andre projekter.

Skærme, der i øjeblikket er implementeret i Atmoscan, er:

  • Sensorer værdier
  • Geiger måler / semilog diagram
  • Systemstatus
  • Fejllog
  • Vejrstation
  • Plane Spotter
  • Opsætning
  • Lavt batteri

Opsætningsskærmene tillader indstilling af Wifi -legitimationsoplysninger, MQTT -kanaler, Syslog -server.

NYT i v2.0: alle webtjenesternøgler kan nu konfigureres via konfigurationsportalen. Den eneste værdi, der stadig er hardcoded, er OTA -adgangskoden (store ATMOSCAN).

BEMÆRK 1: Første programmering skal udføres med et USB-serielt kabel tilsluttet programmeringsstikket. Da den serielle port er optaget af en sensor, er fejlretning og programmering på den måde upraktisk efter samling, da det ville kræve afmontering af sensoren. Derfor understøtter softwaren SYSLOG -fejlfinding og OTA -opdateringer.

BEMÆRK 2: Binær ATMOSCAN er over 700Kb, og ArduinoOTA kræver, at programpladsen er mindst det dobbelte af billedstørrelsen, hvilket udelukker muligheden "4M (3M SPIFFS)". Standardindstillingen "4M (1M SPIFFS)" er imidlertid også uegnet, da SPIFFS -partitionen ville være utilstrækkelig til de grafiske ressourcer relateret til vejrstation, flyspotter og til confing -filen. Derfor er der blevet oprettet en brugerdefineret konfiguration "4M (2M SPIFFS)" for at løse problemet. Forklaring her.

Dokumentation og fuld kildekode er tilgængelig her.

KREDITER INKLUDERER KODE & BIBLIOTEKER FRA

  • Adafruit
  • Arcao
  • Bblanchon
  • Bodmer
  • Lukket kube
  • Gmag11
  • Knolleary
  • Lucadentella
  • Set
  • Squix78
  • Tzapu
  • Troldmand97

INTEGRERER WEBTJENESTER FRA

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

Trin 6: Gør det bedre

Gør det bedre!
Gør det bedre!

Resultatet er slet ikke dårligt! Software ser godt ud og er pålidelig, mens den kan udvides med nye funktioner og måske ryddes lidt op for at gøre applikationsrammen virkelig genanvendelig til andre projekter. Kalibrering af nogle sensorer er ikke stor, men testlaboratoriumudstyr ville være påkrævet. Tiden er dyrebar, og jeg har ikke meget, så fremskridtet var langsom. Da jeg var færdig, blev anstændig support til ESP32 tilgængelig. Hvis jeg startede det nu, ville jeg bruge det og integrere eksterne sensorer via bluetooth.

Nogen som helst?

BEMÆRK: Jeg har stadig en håndfuld PCB'er, så hvis nogen er interesseret, kan de fås til nominel / porto pris.

Trin 7: Spørgsmål og svar

Spørgsmål og svar
Spørgsmål og svar
Spørgsmål og svar
Spørgsmål og svar

Først og fremmest TAK for dine overvældende positive kommentarer. Jeg havde ærligt talt ikke regnet med den store interesse.

Jeg modtog en række spørgsmål enten via kommentarer eller private beskeder, så jeg tænkte på at samle svarene her. Skulle der komme flere, tilføjer jeg.

Jeg fandt bag i en skuffe de 8 tilgængelige printkort - og de er på vej til Belgien, Tyskland, Indien, USA, Canada, Storbritannien, Australien. Wow, 3 kontinenter! Fantastiske.

Hvad skal jeg lægge på ATMOSCAN -konfigurationssiden?

Atmoscan -konfigurationssiden kræver følgende parametre:

  • SSID og adgangskode til det WiFi -netværk, du vil oprette forbindelse til
  • MQTT -server, du bruger. For eksempel bruger jeg mqtt.thingspeak.com
  • Forbindelsesstreng for de anvendte MQTT -emner. F.eks. Er Thingspeak MQTT-emner i formatet: kanaler/CHANNEL-ID/publish/WRITE-API (EKSEMPEL: channel/123456/publish/567890)
  • Syslog -server: IP -adressen på den syslog -server, du bruger til logning
  • Google -nøgle til Maps Static API. Få en nøgle fra https://console.cloud.google.com/apis/dashboard. Opret et projekt; Den API, Atmoscan bruger, er https://maps.googleapis.com/maps/api/staticmap. Opret en nøgle til denne API på det Google -projekt, du lige har oprettet, brug den her
  • Weather Underground -nøgle. Opret en konto på www.wunderground.com, gå til WEATHER API (link nederst på startsiden, gå til NØGLEINDSTILLINGER, generer en nøgle, brug den her
  • Geonames -konto. Opret en konto på https://www.geonames.org/, så den kan bruge de gratis webtjenester og sætte brugernavnet her
  • TimeZoneDB -nøgle. Opret en konto påhttps://timezonedb.com/, opret en nøgle, læg den her

Hvordan konfigurerer jeg Thingspeak?

Du skal bruge 3 Thingspeak -kanaler. Felter bruges som følger:

KANAL 1 felter

  1. TEMPERATUR
  2. FUGTIGHED
  3. TRYK
  4. PM01
  5. PM2,5
  6. PM10
  7. CPM
  8. STRÅLING

KANAL 2 felter

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

KANAL 3 felter (systemkanal)

  1. OPTID I MINUTTER
  2. GRATIS HØJ I BYTES
  3. WIFI RSSI (SIGNAL I DBM)
  4. BATTERISPÆNDING
  5. LINEAR SOC (BATTERI STATUS OF CHARGE % - lineær beregning, proportional med spænding)
  6. NATIVE SOC (BATTERI STATE OF CHARGE % - som rapporteret af måleren. Som læst fra måleren. BEMÆRK: måleren siger 0 %, når den når 3,6v, mens batterierne kan aflades lidt længere, lad os sige over 3v. Den nedre grænse, hvor ATMOSCAN slukker sig selv, er en #define i globaldefinitions.h -fil)
  7. SYSTEMTEMPERATUR (fra bme280, monteret direkte på brættet)
  8. SYSTEMFUGTIGHED (fra bme280, monteret direkte på brættet)

PCB er meget kompakt. Hvordan lodder jeg SMD -enhederne, især MAX8903A IC?

Først foreslår jeg, at du spørger dig selv, om du ønsker at komme ind på SMD, eller om det er en engangs- Hvis sidstnævnte, kan du måske bede nogen om at gøre det for dig. Hvis du vil tage SMD -udfordringen, skal du investere lidt og få de rigtige værktøjer (loddemiddel, flux, isopropylalkohol, lille jern, varm pistol, pincet, et billigt USB -kamera, en PCB -holder). I dag er det billige ting. Se derefter en YouTube-video-der er en halv million-og brug lidt tid med et gammelt printkort, som du kan ofre og af-lodde / rengøre / lodde nogle komponenter. Du ville ikke tro, hvor lærerigt dette er, at lære hvad du kan forvente, få den rigtige temperatur osv. Talende af erfaring … Jeg begyndte SMD at ændre skærmstikket i en iPod touch, og jeg dræbte den første!

Atmoscan -printkortet er faktisk kompakt, og den IC er ikke let. Igen anbefaler jeg ikke, at du gør dette som din første SMD -lodning. QFN er ikke en venlig pakke, selvom jeg lod lod et nummer nu. Du er aldrig sikker på, at du fik det rigtigt …

På Atmoscan lodde jeg det først, derefter dets omgivende komponenter, så jeg kunne teste, at opladningsdelen af brættet fungerede, derefter fuldførte jeg resten. Fra de vedhæftede billeder skulle du være i stand til at udlede orienteringen af komponenterne. Jeg brugte public domain -komponentbiblioteker, og orienteringen er ikke særlig tydelig på silketrykket.

Min måde: Jeg lagde først lidt loddemateriale på puderne med jernet. Derefter placerede en masse flux (SMD -specifik) og jeg omhyggeligt IC'en med en pincet. Opvarmes derefter det hele til omkring 200/220C (under smeltepunktet) for at undgå spændinger på grund af ujævn opvarmning. Derefter øgede jeg temperaturen til 290C eller deromkring og omkring IC'en. Hvis du lægger lidt loddetin på en nærliggende pude, vil du se, når temperaturen er ved smeltepunktet, da den vil skinne.

Derefter rensede jeg det med isopropylalkohol og inspicerede det omhyggeligt med et billigt USB -kamera. Typiske problemer er justering og mængde lodde, da nogle stifter muligvis ikke er forbundet. I nogle tilfælde var jeg nødt til at gå tilbage til det med et lille loddejern for at tilføje lidt mere loddetin til nogle stifter, da denne IC har en termisk pude nedenunder, der også skal loddes. Dette gør det lidt svært at gætte mængden af loddemetal, og det kan ske, at for meget loddemateriale nedenunder kan hæve det, så stifterne ikke berører printkortet.

Når det er sagt, vil jeg ikke skræmme dig. Jeg færdiggjorde 3 tavler, og jeg dræbte aldrig disse IC'er … Engang skulle jeg selv fjerne det, rydde op og genstarte fra bunden, men det virkede i sidste ende. Igen, ikke super let, men gennemførligt.

Hvor købte du komponenterne?

Mest på eBay og Aliexpress. De mærkevarer er dog originale (Seeed, Pololu, Sparkfun).

Nogle INDIKATIVE links følger. Bemærk: kig dig omkring, du finder måske endnu billigere tilbud …

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ørste programmering Atmoscan -kortet indeholder et programmeringskredsløb, der er i overensstemmelse med NodeMCU. Seriel forbindelse bruges normalt til den første programmering. Derefter er OTA -programmering via wifi den foretrukne mulighed, da det kan gøres med enheden færdigmonteret. Glem ikke, at den serielle port normalt bruges af partikelsensoren!

For at programmere kortet med seriel skal en USB-seriel adapter (f.eks. FTDI232 eller lignende) sluttes til J7-stikket (ved siden af nulstillingsknappen) efter pinout i skematisk. Program kan uploades uden sensorer tilsluttet, bortset fra at afbrydelseslinjen for geigersensoren skal tilsluttes GND, ellers starter kortet ikke (for at gøre dette skal du tilslutte ben 1 og 3 i RAD -stikket). Den nemmeste måde at teste tavlen på uden at bruge hovedskitsen - derfor uden sensorernes kompleksitet - er at uploade DETTE simple program via et serielt kabel. Det skaber et wifi -adgangspunkt, der tillader yderligere blink med hovedprogrammet.

VIGTIGT: Glem ikke at bruge 4M/2M SPIFFS -konfigurationen i henhold til instruktionerne, ellers passer hovedprogrammet ikke. Boardet skal initialiseres via seriel programmering med den konfiguration, ellers kan du få problemer med OTA senere.

Desværre blokerer nogle sensorer initialisering, hvis sensorer ikke er til stede (afhænger af bibliotekets udbyder). Et eksempel er multigas -sensorbiblioteket. For at sikre, at Atmoscan starter korrekt med den fulde firmware, kan du deaktivere den relaterede proces, se det relaterede spørgsmål og svar. En enkel måde at deaktivere ALLE sensorer til test er at kommentere linjen #define ENABLE_SENSORS i filen GlobalDefinitions.h.

Når brættet starter hovedskitsen for første gang, skal det erkende, at det ikke er konfigureret og skal åbne et wifi -hotspot, som du kan oprette forbindelse til og konfigurere det. Blandt indstillingerne er der en syslog -server, der hjælper med stor fejlfinding. Du kan også øge logningsniveauet ved ikke at kommentere #define DEBUG_SYSLOG i filen GlobalDefinitions.h. Bemærk, at der i den samme fil også er en #define DEBUG_SERIAL, der blev brugt under den første fejlfinding. Hvis den ikke er kommenteret, udsender den _ nogle_ resterende logning, men minimal. Et ToDo -element skulle altid gøre logning ensartet og valgbar, men jeg havde aldrig tid til at rydde op.

Har du ændret de biblioteker, du brugte, er der brug for en konfiguration? (i modsætning til download og kompilering)

Godt spørgsmål, jeg glemte at nævne det punkt. Der er faktisk brug for et par mods / konfigurationer:

  • Bibliotek https://github.com/Seeed-Studio/Mutichannel_Gas_Sensor - serielle fejlretningssætninger. Skal kommenteres, da den serielle port bruges til en sensor!
  • Bibliotek https://github.com/Bodmer/TFT_eSPI - kræver en konfigurationsfil, hvor pin -tildelingen og SPI -frekvensen er angivet
  • Bibliotek https://github.com/lucadentella/ArduinoLib_MAX1704… - Når jeg kiggede på kommentarerne og trak anmodninger, bemærkede jeg, at der er en fejlrettelse, der aldrig blev fusioneret

Så vidt jeg husker burde det være det. Lad mig vide, hvis der opstår problemer.

BEMÆRK: Se venligst kommentarer i den nyeste kildekode - indeholder links til alle nødvendige biblioteker og holdes opdateret

Hvorfor læser nogle sensorer rødt og nogle grønne i videoen/billederne?

Farve angiver trend. Det begynder hvidt, og hvis det er rødt at gå op, hvis det er grønt, er det at gå ned.

Hvordan håndterer du sensorernes drift over tid? Hvor gode er disse sensorer? Hvad kan jeg se med disse sensorer?

Ærligt talt er dette ikke et videnskabeligt målesæt. For at kalibrere ville jeg have brug for udstyr, som jeg ikke har til rådighed. Dette er virkelig et kæledyrsprojekt. Jeg prøvede flere sensorer. Partiklen, CO2, temperatur, fugtighed, tryk, Geiger er ret gode efter min mening. På NO2 har jeg forbehold for kalibrering og overordnet design, men der er ikke meget tilgængeligt. Samlet set er de mainstream sensorer.

Kombinationen er dog god nok til at vise ting, du ikke ville forvente.

Med Atmoscan i stuen og køkkenet et værelse væk, registrerer det enorme toppe af partikler, når f.eks. stege ting. Det mærker NO2 fra morgentrafikken, selv med vinduerne lukkede.

Var en Geiger -tæller virkelig nødvendig? Viser det noget nyttigt?

Heldigvis har vi ikke haft atomhændelser, og der kommer ikke krig endnu … Alligevel er der atomkraftværker ikke så langt væk, og regeringen uddeler jodpiller til børn, der skal opbevares i skuffen i tilfælde af hændelser … så jeg blev mistroisk. Indtil videre må jeg sige, at målingerne er helt i overensstemmelse med den forventede baggrundsstråling (0,12 uSv/t)

Hvad er enhedens samlede omkostninger?

Jeg havde allerede mange komponenter derhjemme, og ovenstående links giver dig en idé. Helt ærligt, hvis du køber en færdiglavet NetAtmo eller lignende, sparer du penge. Du kan ikke slå et kinesisk firma, der gør ting i stor skala! Men hvis du nyder at lave måske sammen med dine børn, er det det værd. Den gode del er, at jeg allerede har testet (og kasseret) et antal sensorer til dig ….

Hvad med PCB'er? Kan du sælge mig en?

Jeg havde oprindeligt 10 af dem lavet af dirtypcbs.com, og mine filer fungerede fint. God kvalitet og billig nok, 25USD / 20Euro til 10 PCB'er. Jeg brugte to, og jeg er glad for at sende de resterende for den nøgne pris (2 Euro + forsendelse, afhængigt af placering og forsendelsespræferencer). Jeg er bange for, at jeg bliver nødt til at vælge de første, der sender mig en privat besked.

Kan du lave et kit eller en kickstarter -kampagne?

Smigrende, men ærligt talt troede jeg aldrig, at det var innovativt nok … og desuden INGEN TID !!

Men hvis nogen opfanger ideen, ville en anden iteration være nødvendig. Der er nogle skarpe kanter i designet, der ville være værd at rette op på, men igen havde jeg aldrig tid nok til V2.

På hardware: Kan jeg tilføje / fjerne en sensor, skærmen osv. For at udvide mulighederne / reducere strømforbruget?

Skærmen er forbundet uden at bruge MISO, derfor læser CPU'en aldrig fra displayet. Derfor kunne du bare ikke tilslutte displaymyren, det ville fungere fint. Når det er sagt, er displayet kun tændt i nogen tid, efter at den sidste gestus blev registreret, så det påvirker ikke strømforbruget.

Sensorerne er i stedet strømsultne, og det hele bruger let 400/500mA. Glem ikke blæseren og også det faktum, at partikelsensoren også har en indbygget ventilator. ESP går heller ikke i dvaletilstand på grund af mangel på GPIO -pons. Det ville dog måske have sparet 20mA …

Softwaren er modulær, og du kan nemt tilføje/fjerne processer og skærme, så du kan tilføje sensorer eller få det til at tænde ved at fjerne nogle, hvis du ønsker det. Den eneste begrænsning er antallet af GPIO -ben. Imidlertid kan sensorer let tilføjes, hvis I2C, eller alternativt en I2C -ekspander kan bruges til at tilføje GPIO'er …

For at deaktivere en sensor, for eksempel for at teste en delvis build, ville den bedste måde efter min mening ikke være at starte den relaterede proces. Dette kan opnås ved at kommentere det relaterede enable () -opkald i funktionen void startProcesses () i hoved -ino -filen. Medmindre du vil strukturelt ændre systemet, ville jeg ikke fjerne processerne helt, da skærmen og MQTT -processerne vil afstemme dem. På denne måde skulle de bare returnere nul. Bemærk, at afbrydelsesindgangen til geigerbrættet trækkes ned, hvis den ikke bruges, ellers starter tavlen ikke.

Hvad er de forbedringer, du ville have foretaget, hvis du havde tid til en V2.0?

Ikke i nogen bestemt rækkefølge..

  • PCB'et kunne undgå kobber bag ESP8266 -antennen. Jeg glemte det totalt, og det gør strålingsdiagrammet ikke-isotropt
  • Efter min mening er opladeren for lille til et så stort batteri / batteriet er for stort til opladeren. Der er andre IC'er, og jeg ville prøve en anden.
  • Der er bedre batterimålere.
  • Jeg vil tilføje en ozonsensor
  • Jeg ville bruge en ESP32 til flere GPIO'er og Bluetooth -sensorer ud af hovedenheden.
  • Hvis jeg havde flere GPIO'er enten med ESP32 eller med en I2C -ekspander, ville jeg bruge en til at styre blæseren og en anden til at slukke enheden fra software. Når det er lavt batteri, er det det eneste, det kan gøre for at vise en skærm med lavt batteriniveau. Dette er faktisk den største ulempe ved designet, da lav batterispænding ikke håndteres yndefuldt.

På software

Det tog mig længere tid end hardware… Jeg tror, det indeholder en række gode koncepter, desværre ikke fuldt ud implementeret. Jeg mener specifikt, at det skal ryddes op, potentielt udvides, og en generisk ramme for ESP8266 -applikationer kan let udledes af det. Ingen tid. Nogen der tager udfordringen op?

Kan du tilføje stemmestyring?

Bør være muligt. Der er en række færdige biblioteker til at styre en ESP8266 med Alexa, og jeg kan ikke se, hvorfor integrationen skulle være et problem. Det interessante spørgsmål er, hvad du vil gøre med det, funktionalitetsmæssigt. Jeg ejer ikke et Amazon Echo, så jeg har aldrig prøvet.

Hvordan lavede du laserskæringer?

Tegningerne er lavet med SketchUp. Programmet er rart, men mangler seriøst eksportmuligheder. Prøveversionen på 30 dage hjælper dog, da den har yderligere funktionalitet. Jeg importerede det derefter i Inkscape til endelig behandling.

Kan du tænde/slukke sensorer for at spare strøm via MOSFET'er?

God idé i princippet, men de fleste af disse sensorer skal strømforsynes hele tiden, da de har en opvarmningstid. Udover … jeg løber tør for GPIO'er i ESP8266. Jeg var endda nødt til at bruge GPIO10, der officielt ikke er funktionel, men fungerer fint på ESP12E.

Hvilke færdigheder ville jeg have brug for?

For at bygge det fra bunden har du brug for noget elektronisk designbaggrund. Egentlig ikke meget, i dag med internet behøver du ikke rigtig at læse datablade linje for linje som i mine tidlige dage … Hvis du bruger resultatet af mit eksperiment, har du brug for nogle SMD -lodningsevner, mekaniske færdigheder og lidt tålmodighed.

Er dette dit første projekt?

Det er mit første instruerbare, men ikke mit første projekt. Jeg pjattede meget tidligere, men jeg har virkelig ikke meget tid i dag. Jeg genopstod mine rustne færdigheder, da jeg prøver at lære noget nyttigt til mine børn..! Jeg lavede et par flere projekter, som jeg måske en dag vil udgive..

Anbefalede: