Innholdsfortegnelse:

AtmoScan: 7 trinn (med bilder)
AtmoScan: 7 trinn (med bilder)

Video: AtmoScan: 7 trinn (med bilder)

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

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

NYHETER

Gå til min GitHub for:

- Noen små maskinvareendringer forbedrer designet, inkludert muligheten til å slå av seg selv fra programvare, noe som avhjelper en av de største ulempene med designet - hvordan håndtere lavt batterinivå.

- Et PCB v2 -design er nå publisert sammen med en guide for enkelt å bruke endringen på tavlene V1.0.

- CAD -filer for komplett kabinett

Det nye kabinettet ser ut som bildet ovenfor … vel, uten gummibåndet

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

ATMOSCAN er en multisensor-enhet for å overvåke luftkvaliteten til innendørs. Selv om mange prosjekter har blitt publisert med lignende formål, er dette et komplett system i en kompakt, selvstendig pakke som oppsummerer dem alle. Den har en LCD -fargedisplay, den er klar over tid og sted, den er bevegelseskontrollert og den sender til ThingSpeak (eller andre) via MQTT, men kan ordentlig håndtere frakoblede operasjoner og tilkobling på nytt. Med det innebygde oppladbare batteriet varer det en hel dag når det er frakoblet strømmen.

Den bruker et multitasking -kooperativt rammeverk og reagerer veldig på brukerinndata mens prøvetaking av sensorer, håndtering av brukergrensesnitt, posting til MQTT. Faktisk klemmer den ganske mye ut av den lille ESP8266. Det gjør det ved å integrere en rekke åpen kildekode -biblioteker og utnytte internett -webtjenester.

Kreditter for biblioteker går til en rekke bidragsytere, se senere.

Musikk i video finner du HER

Trinn 1: Sensorer

Atmoscan måler en rekke variabler:

  • Temperatur
  • Luftfuktighet
  • Press
  • CO2
  • CO
  • NO2
  • VOC (flyktige organiske forbindelser, en luftkvalitetsindikator)
  • PM 01
  • PM25
  • PM10
  • Stråling

For å gjøre det integrerer det en rekke diskrete sensorer

  • BME280 (f.eks. Lenke)
  • PMS7003 (f.eks. Lenke)
  • MH-Z19 (f.eks. Link)
  • HDC1080 (f.eks. Lenke)
  • MiCS6814 (lenke)
  • MP503 (lenke)
  • LND-712 Geiger-rør (Link, jeg fant det i Europa her Link eller her Link) med høyspenningsmodul (Link)

Dataark er HER.

Trinn 2: Elektronikk

Elektronikk
Elektronikk
Elektronikk
Elektronikk
Elektronikk
Elektronikk

Atmoscan kan enkelt bygges med et NodeMCU eller annet ESP8266 -kort og noen lett tilgjengelige komponenter, for eksempel nivåskift og spenningsregulatorer, hvis du gir opp den integrerte batteriladeren.

Mens jeg prototype med separate komponenter, designet jeg for den endelige versjonen et spesifikt kort som integrerer alle funksjoner og gir fine kontakter for sensorer, lysdioder for status (blå = strømforsyning tilkoblet, rød = lading).

Eagle PCB -filer tilgjengelig HER.

Spesielt integrerer styret:

  • Ladekretser basert på MAX8903A (lenke)
  • Logikk med én knapp på/av
  • ESP12E -modul
  • Programmeringslogikk
  • Nivåskifter
  • Driver for LCD -bakgrunnsbelysning
  • 3.3V Step-Up/Step-Down Spenningsregulator basert på Pololu S7V8F3 (lenke)
  • 5V Step-Up Voltage Regulator basert på Pololu U1V10F5 (lenke)
  • LiPo drivstoffmåler basert på SparkFun TOL10617 (lenke)

Skjermen er en 2,8 TFT 320x240 basert på en ILI9341 -brikke (Link).

Gestsensoren er basert på PAJ7620U2 -brikken (Link), mye bedre enn den billige APDS9960 som genererer kontinuerlige avbrudd og ikke kan fungere gjennom plexiglas.

Sensorene er ganske sultne, så for å garantere minst 24 timers autonomi lagde jeg en pakke med 3 x 5000 mAh LiPo 105575 batterier (Link). Faktisk kunne 2 ha vært nok. MAX8903 -laderen sliter med å lade den resulterende pakken på 15 000 mAh.

MERKNADER - SOM SETT PÅ BILDENE:

  • Koblingens posisjoner er vist
  • SD -kortsporet må avloddes fra displayet hvis du vil at det skal passe inn i kabinettet
  • Du må lage et lite hakk i kretskortet for ikke å forstyrre viften (hakket er på moten etter iPhone X). Korrigert i PCB V2

Koblinger forkortelser på PCB er som følger:

  • PRS: Barometrisk trykksensor (basert på BME280) MERK: monteres direkte på kretskortet
  • VOC: Grove - Luftkvalitetssensor v1.3 (basert på MP503)
  • TMP: Digital sensor for høy luftfuktighet og temperatur med høy nøyaktighet (basert på HDC1080)
  • PMS: PMS7003 Digital partikkelkonsentrasjonssensor
  • GAS: Grove - Flerkanals gassensor (basert på MiCS6814)
  • GES: Grove - Gesture sensor (basert på PAJ7620U2)
  • RAD: Geiger tube (via høyspenning Geiger Probe Driver strømforsyningsmodul 400V / 500V med TTL digitalisert pulsutgang)
  • CO2: MH-Z19 infrarød CO2-gassføler
  • U1V10F: 5V Step-Up Voltage Regulator basert på Pololu
  • U1V10F5 S7V8V3: 3.3V Step-Up/Step-Down Spenningsregulator basert på Pololu S7V8F3
  • TOL10617: Sparkfun LiPo drivstoffmåler
  • LCD: ILI9341 -skjerm

Trinn 3: Vedlegg

Innhegning
Innhegning
Innhegning
Innhegning
Innhegning
Innhegning

Kapslingen er avledet fra en 10 x 10 x 10 cm plexiglas terningbeholder som jeg kjøpte på ebay og var ment for en helt annen bruk. Den hadde fine ventilasjonsåpninger som var akkurat det som trengs. Volumet var i prinsippet tilstrekkelig til å pakke hele settet, bortsett fra at det ikke var lett … noen tidlige forsøk basert på kartongmockups mislyktes stort, så jeg ga opp og kastet bort noen timer med en 3D CAD og jeg hadde de interne støttene laserskåret. Det indre rommet er delt i rom slik at temperatursensoren er så langt unna som mulig fra interne varmekilder. Mens den eksterne kabinettet er laget av 3 mm materiale, er toppen laget av 2+1 mm ark. Dette trikset tillot å ha gestsensoren dekket med bare 1 mm akryl, og dette er tilstrekkelig til at det fungerer.

Noen endringer måtte gjøres med håndverktøy på det originale kabinettet, for eksempel vifte, bryter og USB -hull. Resultatet var likevel anstendig!

CAD -filer er HER.

Trinn 4: Mekanisk montering

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

Pakken er veldig tett, men takket være 3D cad -designen hadde jeg få overraskelser da jeg monterte den.

Luftsirkulasjon (fra topp til bunn) sikres av en liten vifte. Etter å ha kjøpt et rimelig antall på Aliexpress / eBay, innså jeg at støyen fra billige vifter var uutholdelig for en innendørs enhet. Jeg endte opp med å kjøpe en ganske dyr, sakte svingende Papst 255M (Link), og jeg matet den med mindre enn 5V via et par dioder. Resultatet er ganske bra og er stille nok til å være ubemerket (det er til og med kone-godkjent, den vanskeligste sertifiseringen).

Trinn 5: Programvare

Programvare
Programvare
Programvare
Programvare
Programvare
Programvare
Programvare
Programvare

Programvarearkitekturen er basert på et objektorientert rammeverk som kjører flere (kooperative) prosesser som håndterer brukergrensesnitt, sensorer og MQTT. Det er plassering og tidsbevisst, men kan håndtere frakobling / tilkobling til WiFI.

Rammeverket er åpent og kan håndtere et hvilket som helst antall skjermer, så lenge koden og ressursene de har i Flash -minnet. Applikasjonsrammen håndterer bevegelsene og sender den videre til skjermene, for videre håndtering eller kansellering om nødvendig. Bevegelser som administreres av rammen er:

  • Sveip til venstre / høyre - Endre skjerm
  • (Finger) Virvel med klokken - Vri skjermen
  • (Finger) Virvel mot klokken - Start installasjonsskjermen
  • (Hånd) Fra langt til nær - Slå av skjermen

Skjermene arver fra en basisklasse og administreres via følgende hendelsesmodell:

  • aktivere - avfyres en gang når skjermen er opprettet
  • oppdatering - ringes med jevne mellomrom for å oppdatere skjermen
  • deaktivere - ringes en gang, før skjermen slettes
  • onUserEvent - kalles når gest -sensor utløses. Tillater å svare og også overstyre standard hendelseshåndtering, f.eks. avbryt sveip for å endre skjerm

Hver skjerm erklærer sine evner ved å gi følgende informasjon:

  • getRefreshPeriod - hvor ofte skjermen trenger oppdatering
  • getRefreshWithScreenOff - hvis skjermen ønsker å bli oppdatert, selv når bakgrunnsbelysning er slått av. f.eks. for diagrammer
  • getScreenName - navnet på skjermen
  • isFullScreen - ta full kontroll over skjermen, eller tillat den øverste linjen med dato/klokkeslett/plassering/batterimåler/wifi -måler

Rammeverket er i stand til å instantiere og distribuere skjermene via en deklarativ klassefabrikk. Den dynamiske fordelingen sparer RAM og gjør enheten lett utvidbar. Den generelle applikasjonsrammen er også gjenbrukbar for andre prosjekter.

Skjermbilder som for tiden er implementert i Atmoscan er:

  • Sensorer verdier
  • Geiger meter / semilog diagram
  • System status
  • Feil logg
  • Værstasjon
  • Plane Spotter
  • Oppsett
  • Lite batteri

Oppsettskjermbildene tillater innstilling av Wifi -legitimasjon, MQTT -kanaler, Syslog -server.

NYTT i v2.0: alle webtjenestetaster er nå konfigurerbare via konfigurasjonsportalen. Den eneste verdien som fremdeles er hardkodet er OTA -passordet (store ATMOSCAN).

MERKNAD 1: Første programmering må gjøres med en USB-seriell kabel koblet til programmeringskontakten. Siden den serielle porten er opptatt av en sensor, er feilsøking og programmering på den måten upraktisk etter montering, da det ville kreve at sensoren ble koblet fra. Derfor støtter programvaren SYSLOG -feilsøking og OTA -oppdateringer.

MERKNAD 2: Binær ATMOSCAN er over 700Kb og ArduinoOTA krever at programområdet er minst dobbelt så stort som bildestørrelsen, noe som utelukker alternativet "4M (3M SPIFFS)". Standard "4M (1M SPIFFS)" -alternativ er imidlertid også uegnet, ettersom SPIFFS -partisjonen ikke vil være tilstrekkelig for de grafiske ressursene knyttet til værstasjon, flyspotter og for confing -filen. Derfor er det opprettet en tilpasset konfigurasjon "4M (2M SPIFFS)" for å løse problemet. Forklaring her.

Dokumentasjon og full kildekode er tilgjengelig her.

KREDITER INKLUDERT KODER OG BIBLIOTEKER FRA

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

INTEGRERER WEBTJENESTER FRA

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

Trinn 6: Gjør det bedre

Gjør det bedre!
Gjør det bedre!

Resultatet er ikke dårlig i det hele tatt! Programvare ser bra ut og er pålitelig, mens den kan utvides med nye funksjoner og kanskje ryddes opp litt for å gjøre applikasjonsrammen virkelig gjenbrukbar for andre prosjekter. Kalibrering av noen sensorer er ikke bra, men testlaboratorium vil være nødvendig. Tiden er dyrebar og jeg har ikke mye, så fremgangen gikk sakte. Da jeg var ferdig, ble anstendig støtte for ESP32 tilgjengelig. Hvis jeg startet det nå, ville jeg brukt det og integrert eksterne sensorer via bluetooth.

Hvem som helst?

MERK: Jeg har fremdeles en håndfull PCB, så hvis noen er interessert, er de tilgjengelige til nominell / porto pris.

Trinn 7: Spørsmål og svar

Spørsmål og svar
Spørsmål og svar
Spørsmål og svar
Spørsmål og svar

Først og fremst TAKK for de overveldende positive kommentarene dine. Jeg hadde ærlig talt ikke forventet så mye interesse.

Jeg mottok en rekke spørsmål enten via kommentarer eller private meldinger, så jeg tenkte å samle svarene her. Skulle det komme flere, vil jeg legge til.

Jeg fant på baksiden av en skuff de 8 tilgjengelige PCB -ene - og de er på vei til Belgia, Tyskland, India, USA, Canada, Storbritannia, Australia. Wow, 3 kontinenter! Fantastisk.

Hva skal jeg legge på ATMOSCAN -konfigurasjonssiden?

Atmoscan -konfigurasjonssiden krever følgende parametere:

  • SSID og passord for WiFi -nettverket du vil koble det til
  • MQTT -serveren du bruker. For eksempel bruker jeg mqtt.thingspeak.com
  • Tilkoblingsstreng for MQTT -emner som brukes. For eksempel er Thingspeak MQTT-emner i formatet: kanalen/CHANNEL-ID/publish/WRITE-API (EKSEMPEL: channel/123456/publish/567890)
  • Syslog -server: IP -adressen til syslog -serveren du bruker til logging
  • Google -nøkkel for Maps Static API. Få en nøkkel fra https://console.cloud.google.com/apis/dashboard. Lag et prosjekt; API som Atmoscan bruker er https://maps.googleapis.com/maps/api/staticmap. Lag en nøkkel for denne API -en på Google -prosjektet du nettopp har opprettet, bruk den her
  • Vær underjordisk nøkkel. Opprett en konto på www.wunderground.com, gå til WEATHER API (lenke nederst på hjemmesiden, gå til NØKKELINNSTILLINGER, generer en nøkkel, bruk den her
  • Geonames -konto. Opprett en konto på https://www.geonames.org/, så kan du bruke gratis webtjenester og sette brukernavnet her
  • TimeZoneDB -nøkkel. Opprett en konto påhttps://timezonedb.com/, opprett en nøkkel, legg den her

Hvordan konfigurerer jeg Thingspeak?

Du trenger 3 Thingspeak -kanaler. Feltene brukes som følger:

KANAL 1 felt

  1. TEMPERATUR
  2. LUFTFUKTIGHET
  3. PRESS
  4. PM01
  5. PM2.5
  6. PM10
  7. CPM
  8. STRÅLING

KANAL 2 felt

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

KANAL 3 felt (systemkanal)

  1. OPTID I MINUTTER
  2. GRATIS HØP I BYTES
  3. WIFI RSSI (SIGNAL I DBM)
  4. BATTERISPENNING
  5. LINEAR SOC (BATTERI STATEN FOR CHARGE % - lineær beregning, proporsjonal med spenning)
  6. NATIVE SOC (BATTERY STATE OF CHARGE % - som rapportert av måler. Som lest fra måleren. MERK: Måleren sier 0 % når den når 3,6v mens batteriene kan lades ut litt lenger, la oss si over 3v. Den nedre grensen, der ATMOSCAN slår seg av, er en #define i globaldefinitions.h -filen)
  7. SYSTEMTEMPERATUR (fra bme280, montert direkte på brettet)
  8. SYSTEMFUKTIGHET (fra bme280, montert direkte på brettet)

PCB er veldig kompakt. Hvordan lodder jeg SMD -enhetene, spesielt MAX8903A IC?

Først foreslår jeg at du spør deg selv om du vil gå inn i SMD eller om det er en engangs- Hvis sistnevnte, kanskje be noen om å gjøre det for deg. Hvis du vil ta SMD -utfordringen, invester litt og skaff deg de riktige verktøyene (loddetinn, fluss, isopropylalkohol, lite jern, varm pistol, pinsett, et billig USB -kamera, en PCB -holder). I dag er dette billige ting. Se deretter på en YouTube-video-det er en halv million-og bruk litt tid med en gammel PCB som du kan ofre og avlodde / rengjøre / lodde noen komponenter. Du ville ikke tro hvor lærerikt dette er, for å lære hva du kan forvente, få riktig temperatur osv. Snakker av erfaring … Jeg begynte SMD med å endre skjermkontakten i en iPod touch, og jeg drepte den første!

Atmoscan -kretskortet er faktisk kompakt og at IC ikke er lett. Igjen, jeg anbefaler ikke at du gjør dette som din første SMD -lodding. QFN er ikke en vennlig pakke, selv om jeg nå har loddet et tall. Du er aldri sikker på at du har gjort det riktig …

På Atmoscan loddet jeg det først, deretter komponentene rundt det, slik at jeg kunne teste at ladedelen av brettet fungerte, deretter fullførte jeg resten. Fra bildene vedlagt bør du kunne utlede orienteringen til komponentene. Jeg brukte komponentbiblioteker i offentlig domene, og retningen er ikke veldig tydelig på silketrykket.

Min måte: Jeg la først litt loddetinn på putene med strykejernet. Så mye fluks (SMD -spesifikk) og jeg plasserte IC -en nøye med pinsett. Oppvarmet deretter det hele til rundt 200/220C (under smeltepunktet) for å unngå spenninger på grunn av ujevn oppvarming. Deretter økte jeg temperaturen til 290C eller så videre og rundt IC. Hvis du legger litt loddetinn på en nærliggende pute, vil du se når temperaturen er ved smeltepunktet, da den vil skinne.

Etter det rengjorde jeg den med isopropylalkohol og inspiserte den nøye med et billig USB -kamera. Typiske problemer er justering og mengde loddetinn, da noen pinner kanskje ikke er koblet til. I noen tilfeller måtte jeg gå tilbake til det med et lite loddejern for å legge litt mer loddetinn til noen pinner, da denne IC har en termisk pute under som også må loddes. Dette gjør det litt vanskelig å gjette mengden loddetinn, og det kan skje at for mye loddetinn under kan heve det slik at pinnene ikke berører kretskortet.

Når det er sagt, vil jeg ikke skremme deg. Jeg fullførte 3 tavler og jeg drepte aldri disse IC -ene … Når jeg til og med måtte fjerne den, rydde opp og starte på nytt fra bunnen av, men det fungerte til slutt. Igjen, ikke superenkelt, men gjennomførbart.

Hvor kjøpte du komponentene?

Mest på eBay og Aliexpress. Imidlertid er merkene originale (Seeed, Pololu, Sparkfun).

Noen INDIKATIVE lenker følger. Merk: Se deg rundt, du kan finne enda 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 inneholder en programmeringskrets som er i tråd med NodeMCU. Seriell tilkobling brukes vanligvis for den første programmeringen. Etter det er OTA -programmering via wifi det foretrukne alternativet, da det kan gjøres med enheten ferdig montert. Ikke glem at serieporten normalt brukes av partikkelsensoren!

For å programmere kortet med seriell må en USB-seriell adapter (f.eks. FTDI232 eller lignende) kobles til J7-kontakten (ved siden av tilbakestillingsknappen) etter pinout i skjemaet. Program kan lastes opp uten at sensorer er tilkoblet, bortsett fra at avbruddslinjen til geigersensoren skal være koblet til GND, ellers starter ikke kortet (for å gjøre det, koble pinnene 1 og 3 inn i RAD -kontakten). Den enkleste måten å teste brettet på uten å bruke hovedskissen - derav uten kompleksiteten til sensorene - er å laste opp DETTE enkle programmet via seriekabel. Det oppretter et wifi -tilgangspunkt som tillater ytterligere blinking med hovedprogrammet.

VIKTIG: Ikke glem å bruke 4M/2M SPIFFS -konfigurasjonen i henhold til instruksjonene, ellers passer ikke hovedprogrammet. Brettet må initialiseres via seriell programmering med den konfigurasjonen, ellers kan du få problemer med OTA senere.

Dessverre blokkerer noen sensorer initialisering hvis sensorer ikke er tilstede (avhenger av bibliotekets leverandør). Et eksempel er multigas -sensorbiblioteket. For å være sikker på at Atmoscan starter opp med full fastvare, kan du deaktivere den relaterte prosessen, se det relaterte spørsmål og svar -punktet. En enkel måte å deaktivere ALLE sensorer for testing er å kommentere linjen #define ENABLE_SENSORS i GlobalDefinitions.h -filen.

Når brettet starter hovedskissen for første gang, bør det innse at det ikke er konfigurert og bør åpne et wifi -hotspot, som du kan koble til og sette opp. Blant innstillingene er det en syslog -server som i stor grad hjelper med feilsøking. Du kan også øke loggingsnivået ved å ikke kommentere #define DEBUG_SYSLOG i GlobalDefinitions.h -filen. Vær oppmerksom på at i den samme filen er det også en #define DEBUG_SERIAL som ble brukt under den første feilsøkingen. Hvis den ikke er kommentert, sender den ut _ noen_ resterende logging, men minimal. Et ToDo -element skulle alltid gjøre logging ensartet og valgbar, men jeg hadde aldri tid til å rydde opp.

Har du endret bibliotekene du brukte, er det noen konfigurasjon som trengs? (i motsetning til nedlasting og kompilering)

Bra spørsmål, jeg glemte å nevne det punktet. Det er faktisk noen få mods / konfigurasjoner som trengs:

  • Bibliotek https://github.com/Seeed-Studio/Mutichannel_Gas_Sensor - serielle feilsøkingserklæringer. Må kommenteres, ettersom serieporten brukes til en sensor!
  • Bibliotek https://github.com/Bodmer/TFT_eSPI - krever en konfigurasjonsfil der pin -tildelingen og SPI -frekvensen er spesifisert
  • Bibliotek https://github.com/lucadentella/ArduinoLib_MAX1704… - Når jeg så på kommentarene og trekk forespørslene, la jeg merke til at det er en feilrettelse som aldri ble slått sammen

Så vidt jeg husker burde det være det. Gi meg beskjed hvis det oppstår problemer.

MERK: Se kommentarer i den siste kildekoden - inneholder lenker til alle nødvendige biblioteker og holdes oppdatert

Hvorfor leser noen sensorer rødt og noe grønt i videoen/bildene?

Farge indikerer trend. Det begynner hvitt og hvis det å gå opp er rødt, hvis det er grønt å gå ned.

Hvordan håndterer du driften av sensorene over tid? Hvor gode er disse sensorene? Hva kan jeg se med disse sensorene?

Ærlig talt er dette ikke et vitenskapelig målesett. For å kalibrere trenger jeg utstyr som jeg ikke har tilgjengelig. Dette er virkelig et kjæledyrprosjekt. Jeg prøvde flere sensorer. Partikkelen, CO2, temperatur, fuktighet, trykk, Geiger er ganske bra etter min mening. På NO2 har jeg forbehold om kalibrering og overordnet design, men det er ikke mye tilgjengelig. Totalt sett er de vanlige sensorer.

Kombinasjonen er imidlertid god nok til å vise ting du ikke ville forvente.

Med Atmoscan i stua og kjøkkenet et rom unna, oppdager det enorme topper av partikler når f.eks. stekegreier. Det kjennes NO2 fra morgentrafikken selv med vinduene lukket.

Var en Geigerteller virkelig nødvendig? Viser det noe nyttig?

Heldigvis har vi ikke hatt kjernefysiske hendelser, og krig kommer ikke ennå … Likevel er det atomkraftverk ikke så langt unna, og regjeringen deler ut jodpiller for at barna skal oppbevares i skuffen i tilfelle hendelser … så jeg ble mistenksom. Så langt må jeg si at avlesningene er helt i tråd med den forventede bakgrunnsstrålingen (0,12 uSv/t)

Hva er den totale kostnaden for enheten?

Jeg hadde allerede mange komponenter hjemme, og koblingene ovenfor gir deg en ide. Ærlig talt, hvis du kjøper en ferdiglaget NetAtmo eller lignende, sparer du penger. Du kan ikke slå et kinesisk selskap som gjør ting i stor skala! Men hvis du liker å lage kanskje sammen med barna dine, er det verdt det. Den gode delen er at jeg allerede har testet (og kastet) en rekke sensorer for deg ….

Hva med PCB? Kan du selge meg en?

Jeg hadde opprinnelig 10 av dem laget av dirtypcbs.com, og filene mine fungerte helt fint. God kvalitet og billig nok, 25USD / 20Euro for 10 PCB. Jeg brukte to. Jeg er redd for at jeg må velge de første som sender meg en privat melding.

Kan du lage et sett eller en kickstarter -kampanje?

Smigrende, men ærlig talt trodde jeg aldri det var nyskapende nok … og dessuten, INGEN TID !!

Men hvis noen fanger opp ideen, vil en ny iterasjon være nødvendig. Det er noen skarpe kanter i designet som ville være verdt å korrigere, men igjen hadde jeg aldri nok tid til V2.

På maskinvare: Kan jeg legge til / fjerne en sensor, skjermen osv. For å utvide mulighetene / redusere strømforbruket?

Skjermen er tilkoblet uten å bruke MISO, derfor leser CPU -en aldri fra skjermen. Derfor kunne du bare ikke koble til skjermmuren, det ville fungere helt fint. Når det er sagt, er displayet bare på en stund etter at den siste gesten ble oppdaget, så det påvirker ikke strømforbruket.

Sensorene er i stedet strømsultne, og det hele bruker lett 400/500mA. Ikke glem viften og også det faktum at partikkelsensoren også har en innebygd vifte. ESP går heller ikke i hvilemodus på grunn av mangel på GPIO -pons. Imidlertid ville det ha spart 20mA …

Programvaren er modulær, og du kan enkelt legge til/fjerne prosesser og skjermer, slik at du kan legge til sensorer eller få det til å lyse på strømmen ved å fjerne noen, hvis du ønsker det. Den eneste begrensningen er antall GPIO -pinner. Imidlertid kan sensorer enkelt legges til hvis I2C, eller alternativt en I2C -utvider kan brukes til å legge til GPIO -er …

For å deaktivere en sensor, for eksempel for å teste en delvis konstruksjon, er den beste måten etter min mening ikke å starte den relaterte prosessen. Dette kan oppnås ved å kommentere det relaterte aktiverings () -anropet i void startProcesses () -funksjonen i hoved.ino -filen. Med mindre du ønsker å strukturelt endre systemet, ville jeg ikke fjerne prosessene helt, ettersom skjermen og MQTT -prosessene vil undersøke dem. På denne måten skulle de bare returnere null. Vær oppmerksom på at interrupt -inngangen for geigerbrettet skal trekkes ned hvis det ikke brukes, ellers vil ikke kortet starte.

Hva er forbedringene du ville ha gjort hvis du hadde tid til en V2.0?

Ikke i noen bestemt rekkefølge..

  • Kretskortet kan unngå kobber bak ESP8266 -antennen. Jeg glemte det helt, og det gjør strålediagrammet ikke-isotropt
  • Laderen er etter min mening underdimensjonert for et så stort batteri / batteriet er for stort til laderen. Det er andre ICer, og jeg ville prøve en annen.
  • Det er bedre batterimålere.
  • Jeg vil legge til en ozon sensor
  • Jeg ville brukt en ESP32 for flere GPIOer og Bluetooth -sensorer ut av hovedenheten.
  • Hvis jeg hadde flere GPIOer enten med ESP32 eller med en I2C -ekspander, ville jeg bruke en til å styre viften og en annen til å slå av enheten fra programvare. Når det er lavt batteri, er det eneste det kan gjøre for å vise skjermen med lavt batterinivå. Dette er faktisk den største ulempen ved designet, ettersom lav batterisituasjon ikke håndteres grasiøst.

På programvare

Det tok meg lengre tid enn maskinvaren … Jeg tror den inneholder en rekke gode konsepter, dessverre ikke fullt ut implementert. Spesielt mener jeg at det bør ryddes opp, potensielt utvides, og et enkelt rammeverk for ESP8266 -applikasjoner kan lett hentes fra det. Ingen tid. Noen som tar utfordringen?

Kan du legge til talekontroll?

Bør være gjennomførbart. Det er en rekke ferdige biblioteker for å kontrollere en ESP8266 med Alexa, og jeg skjønner ikke hvorfor integrasjonen burde være et problem. Det interessante spørsmålet er hva du vil gjøre med det, funksjonelt sett. Jeg eier ikke et Amazon Echo, så jeg har aldri prøvd.

Hvordan gjorde du laserskjæringen?

Tegningene er laget med SketchUp. Programmet er fint, men mangler alvorlig eksportmuligheter. Imidlertid hjelper 30 dagers prøveversjon ettersom den har tilleggsfunksjonalitet. Jeg importerte den deretter til Inkscape for sluttbehandling.

Kan du slå av/på sensorer for å spare strøm, via MOSFET -er?

En god idé i prinsippet, men de fleste av disse sensorene må drives hele tiden da de har en oppvarmingstid. Dessuten … Jeg går tom for GPIO -er i ESP8266. Jeg måtte til og med bruke GPIO10 som offisielt ikke er funksjonell, men fungerer fint på ESP12E.

Hvilke ferdigheter trenger jeg?

For å bygge den fra bunnen av trenger du litt elektronisk designbakgrunn. Egentlig ikke så mye, i dag med internett trenger du egentlig ikke å lese datablad linje for linje som i mine tidlige dager … Hvis du bruker resultatet av eksperimentet mitt, trenger du noen SMD -loddeferdigheter, mekaniske ferdigheter og litt tålmodighet.

Er dette ditt første prosjekt?

Det er mitt første instruerbare, men ikke mitt første prosjekt. Jeg grublet mye tidligere, men jeg har egentlig ikke så mye tid i dag. Jeg gjenoppsto mine rustne ferdigheter da jeg prøver å lære barna mine noe nyttig..! Jeg har laget noen flere prosjekter som jeg en dag kan publisere..

Anbefalt: