Inhoudsopgave:

AtmoScan: 7 stappen (met afbeeldingen)
AtmoScan: 7 stappen (met afbeeldingen)

Video: AtmoScan: 7 stappen (met afbeeldingen)

Video: AtmoScan: 7 stappen (met afbeeldingen)
Video: Jennifer Lopez x Dolby Atmos : Can`t Get Enough 2024, September
Anonim
Image
Image
Sensoren
Sensoren

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

NIEUWS

Ga naar mijn GitHub voor:

- Enkele kleine hardwarewijzigingen verbeteren het ontwerp, inclusief de mogelijkheid om zichzelf uit te schakelen van software, waardoor een van de grootste nadelen van het ontwerp wordt verholpen: hoe om te gaan met een bijna lege batterij.

- Er is nu een PCB v2-ontwerp gepubliceerd samen met een handleiding om de wijziging eenvoudig toe te passen op boards V1.0.

- CAD-bestanden voor complete behuizing

De nieuwe behuizing ziet eruit als de afbeelding hierboven … nou ja, zonder de rubberen band

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

ATMOSCAN is een apparaat met meerdere sensoren gericht op het bewaken van de luchtkwaliteit binnenshuis. Hoewel er veel projecten zijn gepubliceerd met een vergelijkbaar doel, is dit een compleet systeem in een compact, op zichzelf staand pakket dat ze allemaal samenvat. Het heeft een LCD-kleurendisplay, het is tijd- en locatiebewust, het is gebarengestuurd en het plaatst berichten op ThingSpeak (of anderen) via MQTT, maar kan losgekoppelde bewerkingen en opnieuw verbinden goed aan. Met zijn ingebouwde oplaadbare batterij gaat hij een hele dag mee als hij is losgekoppeld van de stroom.

Het maakt gebruik van een multitasking-samenwerkingskader en reageert zeer goed op gebruikersinvoer tijdens het samplen van sensoren, het afhandelen van de gebruikersinterface en het posten op MQTT. In feite knijpt het nogal wat uit de kleine ESP8266. Het doet dit door een aantal open source-bibliotheken te integreren en gebruik te maken van internetwebservices.

Credits voor bibliotheken gaan naar een aantal medewerkers, zie verderop.

Muziek in video vind je HIER

Stap 1: Sensoren

Atmoscan meet een aantal variabelen:

  • Temperatuur
  • Vochtigheid
  • Druk
  • CO2
  • CO
  • NO2
  • VOS (Vluchtige organische stoffen, een indicator voor luchtkwaliteit)
  • PM 01
  • PM25
  • PM10
  • straling

Om dit te doen integreert het een aantal discrete sensoren

  • BME280 (bijv. Link)
  • PMS7003 (bijv. Link)
  • MH-Z19 (bijv. Link)
  • HDC1080 (bijv. Link)
  • MiCS6814 (Link)
  • MP503 (Link)
  • LND-712 Geigerbuis (Link, ik vond hem in Europa hier Link of hier Link) met hoogspanningsmodule (Link)

Gegevensbladen zijn HIER.

Stap 2: Elektronica

Elektronica
Elektronica
Elektronica
Elektronica
Elektronica
Elektronica

Atmoscan kan eenvoudig worden gebouwd met een NodeMCU of een ander ESP8266-bord en enkele gemakkelijk verkrijgbare componenten, zoals niveauverschuivers en spanningsregelaars, als u de geïntegreerde batterijlader opgeeft.

Terwijl ik een prototype maakte met afzonderlijke componenten, ontwierp ik voor de definitieve versie een specifiek bord dat alle functies integreert en nette connectoren biedt voor sensoren, LED's voor status (blauw = voeding aangesloten; rood = opladen).

Eagle PCB-bestanden HIER beschikbaar.

Concreet integreert het bord:

  • Laadcircuit gebaseerd op MAX8903A (Link)
  • Aan/uit-logica met één knop
  • ESP12E-module
  • Programmeerlogica
  • Niveauverschuiver
  • Driver voor LCD-achtergrondverlichting
  • 3.3V step-up/step-down spanningsregelaar gebaseerd op Pololu S7V8F3 (Link)
  • 5V Step-Up Spanningsregelaar gebaseerd op Pololu U1V10F5 (Link)
  • LiPo-brandstofmeter gebaseerd op SparkFun TOL10617 (Link)

Het display is een 2,8 TFT 320x240 gebaseerd op een ILI9341-chip (Link).

De bewegingssensor is gebaseerd op de PAJ7620U2-chip (Link), veel beter dan de goedkope APDS9960 die continue interrupts genereert en niet door plexiglas kan werken.

De sensoren zijn nogal energieverslindend, dus om minimaal 24 uur autonomie te garanderen heb ik een pakket gemaakt met 3 x 5000mAh LiPo 105575-batterijen (Link). Sterker nog, 2 had genoeg kunnen zijn. De MAX8903-oplader heeft moeite om het resulterende pakket van 15.000 mAh op te laden.

OPMERKINGEN - ZOALS TE ZIEN IN DE FOTO'S:

  • Connectorposities worden getoond
  • De SD-kaartsleuf moet van het scherm worden losgemaakt als u wilt dat deze in de behuizing past
  • Je moet een kleine inkeping in de print maken om de ventilator niet te storen (inkeping is in de mode na iPhone X). Gecorrigeerd in PCB V2

De afkortingen van connectoren op PCB zijn als volgt:

  • PRS: Luchtdruksensor (gebaseerd op BME280) OPMERKING: direct op de print te monteren
  • VOC: Grove - Luchtkwaliteitssensor v1.3 (gebaseerd op MP503)
  • TMP: Digitale vochtigheids- en temperatuursensor met hoge nauwkeurigheid (gebaseerd op HDC1080)
  • PMS: PMS7003 Digitale deeltjesconcentratiesensor
  • GAS: Grove - meerkanaals gassensor (gebaseerd op MiCS6814)
  • GES: Grove – Bewegingssensor (gebaseerd op PAJ7620U2)
  • RAD: Geigerbuis (via Hoogspannings Geiger Probe Driver Voedingsmodule 400V / 500V met TTL Gedigitaliseerde Pulsuitgang)
  • CO2: MH-Z19 infrarood CO2-gassensor
  • U1V10F: 5V step-up spanningsregelaar op basis van Pololu
  • U1V10F5 S7V8V3: 3.3V step-up/step-down spanningsregelaar gebaseerd op Pololu S7V8F3
  • TOL10617: Sparkfun LiPo-brandstofmeter
  • LCD: ILI9341-display

Stap 3: Behuizing

Behuizing
Behuizing
Behuizing
Behuizing
Behuizing
Behuizing

De behuizing is afgeleid van een kubuscontainer van 10x10x10 cm van plexiglas die ik op ebay heb gekocht en bedoeld was voor een heel ander gebruik. Het had mooie ventilatiesleuven die precies waren wat nodig was. Het volume was in principe voldoende om de hele set in te pakken, behalve dat het niet gemakkelijk was… sommige vroege pogingen op basis van kartonnen mockups mislukten jammerlijk, dus ik gaf het op en verspilde enkele uren met een 3D CAD en ik liet de interne steunen lasersnijden. De interne ruimte is verdeeld in compartimenten zodat de temperatuursensor zo ver mogelijk verwijderd is van interne warmtebronnen. Terwijl de externe behuizing is gemaakt van 3 mm materiaal, is de bovenkant gemaakt van 2 + 1 mm-platen. Met deze truc kon de bewegingssensor worden bedekt met slechts 1 mm acryl en dit is voldoende om het te laten werken.

Sommige aanpassingen moesten worden gedaan met handgereedschap op de originele behuizing, zoals de ventilator, schakelaar en USB-gaten. Het resultaat was desalniettemin behoorlijk!

CAD-bestanden zijn HIER.

Stap 4: Mechanische montage

Mechanische montage
Mechanische montage
Mechanische montage
Mechanische montage
Mechanische montage
Mechanische montage

Het pakket is erg compact, maar dankzij het 3D CAD-ontwerp had ik weinig verrassingen bij het monteren.

Luchtcirculatie (van boven naar beneden) wordt verzorgd door een kleine ventilator. Nadat ik een behoorlijk aantal op AliExpress / eBay had gekocht, realiseerde ik me dat het geluid van goedkope fans ondraaglijk was voor een binnenapparaat. Ik kocht uiteindelijk een vrij dure, langzaam draaiende Papst 255M (Link) en ik voedde hem met minder dan 5V via een paar diodes. Het resultaat is redelijk goed en stil genoeg om onopgemerkt te blijven (het is zelfs door de vrouw goedgekeurd, de moeilijkste certificering).

Stap 5: Software

Software
Software
Software
Software
Software
Software
Software
Software

De software-architectuur is gebaseerd op een Object Oriented framework dat meerdere (coöperatieve) processen uitvoert die omgaan met UI, sensoren en MQTT. Het is locatie- en tijdbewust, maar kan het loskoppelen / opnieuw verbinden met wifi aan.

Het framework is open en kan een willekeurig aantal schermen beheren, zolang hun code en bronnen maar in Flash-geheugen passen. Het applicatieframework handelt de gebaren af en geeft deze door aan de schermen, voor verdere afhandeling of annulering indien nodig. Gebaren die door het framework worden beheerd, zijn:

  • Veeg naar links / rechts - Scherm wijzigen
  • (Vinger) Draaien met de klok mee - Scherm draaien
  • (Vinger) Draaien tegen de klok in - Invoke setup-scherm
  • (Hand) Van ver naar dichtbij - Display uitschakelen

Schermen erven van een basisklasse en worden beheerd via het volgende gebeurtenismodel:

  • activeren - eenmaal geactiveerd, wanneer het scherm wordt gemaakt
  • update - wordt regelmatig gebeld om het scherm bij te werken
  • deactiveren - eenmaal gebeld, voordat het scherm wordt gesloten
  • onUserEvent - wordt aangeroepen wanneer de bewegingssensor wordt geactiveerd. Maakt het mogelijk om te reageren en ook de standaardafhandeling van gebeurtenissen te negeren, b.v. afbreken veeg om van scherm te veranderen

Elk scherm verklaart zijn mogelijkheden door de volgende informatie te verstrekken:

  • getRefreshPeriod - hoe vaak moet het scherm worden vernieuwd
  • getRefreshWithScreenOff - als het scherm wil worden vernieuwd, zelfs als de achtergrondverlichting is uitgeschakeld. bijv. voor grafieken
  • getScreenName - naam van het scherm
  • isFullScreen - neem de volledige controle over het display, of laat de bovenste balk met datum/tijd/locatie/batterijmeter/wifi-meter toe

Het raamwerk is in staat om de schermen te instantiëren en ongedaan te maken via een declaratieve klassenfabriek. De dynamische toewijzing bespaart RAM en maakt het apparaat eenvoudig uitbreidbaar. Het algemene applicatieraamwerk is ook herbruikbaar voor andere projecten.

Schermen die momenteel in Atmoscan zijn geïmplementeerd, zijn:

  • Sensoren waarden
  • Geigermeter / semilog-grafiek
  • Systeem status
  • Foutenlogboek
  • Weerstation
  • Vliegtuigspotter
  • Opstelling
  • Lage batterij

Op de Setup-schermen kunnen wifi-inloggegevens, MQTT-kanalen, Syslog-server worden ingesteld.

NIEUW in v2.0: alle webservicesleutels zijn nu configureerbaar via het configuratieportaal. De enige waarde die nog hard gecodeerd is, is het OTA-wachtwoord (ATMOSCAN in hoofdletters).

OPMERKING 1: De eerste programmering moet worden uitgevoerd met een USB-seriële kabel die is aangesloten op de programmeerconnector. Omdat de seriële poort wordt ingenomen door een sensor, is het op die manier debuggen en programmeren onpraktisch na montage, omdat de sensor daarvoor moet worden losgekoppeld. Daarom ondersteunt de software SYSLOG-foutopsporing en OTA-updates.

OPMERKING 2: Het ATMOSCAN-binaire bestand is meer dan 700Kb en ArduinoOTA vereist dat de programmaruimte minimaal twee keer zo groot is als de afbeeldingsgrootte, wat de optie "4M (3M SPIFFS)" uitsluit. De standaard "4M (1M SPIFFS)"-optie is echter ook ongeschikt omdat de SPIFFS-partitie onvoldoende zou zijn voor de grafische bronnen met betrekking tot het weerstation, de vliegtuigspotter en voor het configuratiebestand. Daarom is er een aangepaste configuratie "4M (2M SPIFFS)" gemaakt om het probleem op te lossen. Uitleg hier.

Documentatie en volledige broncode zijn hier beschikbaar.

CREDITSINCLUSIEF CODE & BIBLIOTHEKEN VAN

  • Adafruit
  • Arcao
  • Bblanchon
  • Bodmer
  • GeslotenCube
  • Gmag11
  • Knolleary
  • Lucadentella
  • Seed
  • Squix78
  • Tzapu
  • Tovenaar97

INTEGREERT WEBSERVICES VAN

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

Stap 6: Maak het beter

Maak het beter!
Maak het beter!

Resultaat is helemaal niet slecht! Software ziet er goed uit en is betrouwbaar, terwijl het zou kunnen worden uitgebreid met nieuwe functies en misschien een beetje opgeschoond om het applicatieframework echt herbruikbaar te maken voor andere projecten. Kalibratie van sommige sensoren is niet geweldig, maar testlaboratoriumapparatuur zou nodig zijn. Tijd is kostbaar en ik heb niet veel, dus de vooruitgang was traag. Tegen de tijd dat ik klaar was, kwam er behoorlijke ondersteuning voor de ESP32 beschikbaar. Als ik er nu aan zou beginnen, zou ik het gebruiken en externe sensoren integreren via bluetooth.

Iedereen?

OPMERKING: ik heb nog een handvol PCB's, dus als iemand geïnteresseerd is, zijn ze beschikbaar tegen nominale / verzendkosten.

Stap 7: Vragen en antwoorden

Vragen
Vragen
Vragen
Vragen

Allereerst BEDANKT voor uw overweldigend positieve opmerkingen. Zoveel interesse had ik eerlijk gezegd niet verwacht.

Ik kreeg een aantal vragen via opmerkingen of privéberichten, dus ik dacht eraan om de antwoorden hier te verzamelen. Als er meer komen, zal ik toevoegen.

Ik vond achter in een la de 8 beschikbare PCB's - en ze zijn onderweg naar België, Duitsland, India, VS, Canada, VK, Australië. Wauw, 3 continenten! Verbazingwekkend.

Wat moet ik op de ATMOSCAN-configuratiepagina zetten?

De configuratiepagina van Atmoscan vereist de volgende parameters:

  • SSID en wachtwoord van het WiFi-netwerk waarmee u verbinding wilt maken
  • MQTT-server die u gebruikt. Ik gebruik bijvoorbeeld mqtt.thingspeak.com
  • Verbindingsreeks voor gebruikte MQTT-onderwerpen. Thingspeak MQTT-onderwerpen hebben bijvoorbeeld de volgende indeling: channels/CHANNEL-ID/publish/WRITE-API (VOORBEELD: channels/123456/publish/567890)
  • Syslog-server: het IP-adres van de syslog-server die u gebruikt voor het loggen
  • Google-sleutel voor Maps Static API. Haal een sleutel op via https://console.cloud.google.com/apis/dashboard. Maak een project; De API die Atmoscan gebruikt is https://maps.googleapis.com/maps/api/staticmap. Maak een sleutel voor deze API op het Google-project dat u zojuist hebt gemaakt, gebruik het hier
  • Weer Underground sleutel. Maak een account aan op www.wunderground.com, ga naar WEATHER API (link onderaan de homepage, ga naar SLEUTELINSTELLINGEN, genereer een sleutel, gebruik deze hier
  • Geonames-account. Maak een account aan op https://www.geonames.org/ activeer het om de gratis webservices te gebruiken en plaats de gebruikersnaam hier
  • TimeZoneDB-sleutel. Maak een account aan op https://timezonedb.com/, maak een sleutel aan, plaats deze hier

Hoe configureer ik Thingspeak?

Je hebt 3 Thingspeak-kanalen nodig. Velden worden als volgt gebruikt:

KANAAL 1-velden

  1. TEMPERATUUR
  2. VOCHTIGHEID
  3. DRUK
  4. PM01
  5. PM2.5
  6. PM10
  7. CPM
  8. STRALING

KANAAL 2 velden

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

CHANNEL 3 velden (Systeemkanaal)

  1. UPTIME IN MINUTEN
  2. GRATIS HEAP IN BYTES
  3. WIFI RSSI (SIGNAAL IN DBM)
  4. BATTERIJ VOLTAGE
  5. LINEAIRE SOC (LAADSTAAT VAN DE BATTERIJ % - lineaire berekening, evenredig aan de spanning)
  6. NATIVE SOC (BATTERY STATE OF CHARGE % - zoals gerapporteerd door meter. zoals afgelezen van de meter. OPMERKING: de meter geeft 0% aan bij het bereiken van 3.6v, terwijl de batterijen iets verder kunnen worden ontladen, laten we zeggen boven 3v. De ondergrens, waarbij ATMOSCAN zichzelf uitschakelt, is een #define in globaldefinitions.h-bestand)
  7. SYSTEEMTEMPERATUUR (van de bme280, rechtstreeks op het bord gemonteerd)
  8. SYSTEEMVOCHTIGHEID (van de bme280, rechtstreeks op het bord gemonteerd)

De printplaat is zeer compact. Hoe soldeer ik de SMD-apparaten, vooral de MAX8903A IC?

Ten eerste stel ik voor dat je jezelf afvraagt of je SMD wilt gaan gebruiken of dat het eenmalig is. Als het laatste het geval is, vraag dan misschien iemand om het voor je te doen. Als je de SMD-uitdaging wilt aangaan, investeer dan een beetje en koop het juiste gereedschap (soldeer, vloeimiddel, isopropylalcohol, klein ijzer, heet pistool, pincet, een goedkope USB-camera, een PCB-houder). Tegenwoordig is dat goedkoop spul. Bekijk dan een YouTube-video – het zijn er een half miljoen – en besteed wat tijd aan een oude PCB die je kunt opofferen en los wat componenten los/schoon/soldeer. Je zou niet geloven hoe leerzaam dit is, om te leren wat je kunt verwachten, de juiste temperatuur te krijgen enz. Uit ervaring gesproken … Ik begon SMD met het veranderen van de display-connector in een iPod touch en ik doodde de eerste!

De Atmoscan PCB is inderdaad compact en dat IC is geen gemakkelijke. Nogmaals, ik raad je niet aan om dit te doen als je eerste SMD-solderen. De QFN is geen vriendelijk pakket, ook al heb ik inmiddels een nummer gesoldeerd. Je weet nooit zeker of je het goed hebt gedaan…

Op Atmoscan heb ik het eerst gesoldeerd, daarna de omliggende componenten, zodat ik kon testen of het oplaadgedeelte van het bord werkte, en daarna heb ik de rest voltooid. Uit de bijgevoegde foto's zou u de oriëntatie van de componenten moeten kunnen afleiden. Ik heb componentbibliotheken uit het publieke domein gebruikt en de oriëntatie is niet erg duidelijk in de zeefdruk.

Mijn manier: ik doe eerst wat soldeer op de pads met het strijkijzer. Daarna veel flux (SMD-specifiek) en ik heb het IC zorgvuldig gepositioneerd met een pincet. Verwarm vervolgens het geheel tot ongeveer 200/220C (onder het smeltpunt) om spanningen door ongelijkmatige verwarming te voorkomen. Daarna verhoogde ik de temperatuur naar 290C of zo op en rond de IC. Als je een beetje soldeer op een nabijgelegen pad doet, zul je zien wanneer de temperatuur op het smeltpunt is, omdat het zal glanzen.

Daarna maakte ik hem schoon met isopropylalcohol en inspecteerde hem zorgvuldig met een goedkope USB-cam. Typische problemen zijn uitlijning en hoeveelheid soldeer, omdat sommige pinnen mogelijk niet zijn aangesloten. In sommige gevallen moest ik er met een kleine soldeerbout naar teruggaan om wat meer soldeer aan sommige pinnen toe te voegen, omdat dit IC een thermische pad eronder heeft die ook moet worden gesoldeerd. Dit maakt het een beetje lastig om de hoeveelheid soldeer te raden en het kan gebeuren dat te veel soldeer eronder het zou kunnen verhogen zodat de pinnen de print niet raken.

Dat gezegd hebbende, wil ik je niet bang maken. Ik heb 3 borden voltooid en ik heb deze IC's nooit gedood … Een keer moest ik het zelfs verwijderen, opschonen en helemaal opnieuw opstarten, maar uiteindelijk werkte het. Nogmaals, niet super makkelijk maar wel te doen.

Waar heb je de componenten gekocht?

Meestal op eBay en Aliexpress. De merkproducten zijn echter origineel (Seeed, Pololu, Sparkfun).

Enkele INDICATIEVE links volgen. Let op: kijk eens rond, misschien vind je nog goedkopere deals…

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…

Eerste programmering Het Atmoscan-bord bevat een programmeercircuit dat in lijn is met de NodeMCU. Voor de eerste programmering wordt normaal gesproken een seriële verbinding gebruikt. Daarna heeft OTA-programmering via wifi de voorkeur, omdat dit kan met de unit volledig gemonteerd. Vergeet niet dat de seriële poort normaal gesproken wordt gebruikt door de deeltjessensor!

Om het bord met serieel te programmeren, moet een USB-Seriële adapter (bijv. FTDI232 of iets dergelijks) worden aangesloten op de J7-connector (naast de resetknop) volgens de pinout in het schema. Het programma kan worden geüpload zonder aangesloten sensoren, behalve dat de onderbrekingslijn van de geigersensor moet worden aangesloten op GND, anders start het bord niet op (sluit hiervoor pinnen 1 en 3 in de RAD-connector aan). De eenvoudigste manier om het bord te testen zonder de hoofdschets te gebruiken - dus zonder de complexiteit van de sensoren - is om DIT eenvoudige programma via een seriële kabel te uploaden. Het creëert een wifi-toegangspunt dat verder flitsen met het hoofdprogramma mogelijk maakt.

BELANGRIJK: vergeet niet om de 4M/2M SPIFFS-configuratie te gebruiken volgens de instructies, anders past het hoofdprogramma niet. Het bord moet worden geïnitialiseerd via seriële programmering met die configuratie, anders kunt u later problemen krijgen met OTA.

Helaas blokkeert de initialisatie van sommige sensoren als er geen sensoren aanwezig zijn (afhankelijk van de provider van de bibliotheek). Een voorbeeld is de bibliotheek met multigassensoren. Om ervoor te zorgen dat Atmoscan correct opstart met de volledige firmware, kunt u het gerelateerde proces uitschakelen, zie het gerelateerde vraag-en-antwoordpunt. Een eenvoudige manier om ALLE sensoren voor testen uit te schakelen, is door commentaar te geven op de regel #define ENABLE_SENSORS in het bestand GlobalDefinitions.h.

Wanneer het bord de hoofdschets voor de eerste keer opstart, moet het herkennen dat het niet is geconfigureerd en een wifi-hotspot openen, waarmee u verbinding kunt maken en het kunt instellen. Onder de instellingen is er een syslog-server die enorm helpt bij het debuggen. U kunt het logboekniveau ook verhogen door de #define DEBUG_SYSLOG in het GlobalDefinitions.h-bestand te verwijderen. Houd er rekening mee dat er in hetzelfde bestand ook een #define DEBUG_SERIAL is die werd gebruikt tijdens de eerste foutopsporing. Als er geen commentaar wordt gegeven, wordt er _sommige_ resterende logboekregistratie uitgevoerd, maar minimaal. Een ToDo-item was altijd om het loggen uniform en selecteerbaar te maken, maar ik had nooit de tijd om het op te ruimen.

Heb je de gebruikte bibliotheken aangepast, is er een configuratie nodig? (in tegenstelling tot downloaden en compileren)

Goede vraag, dat was ik vergeten te vermelden. Er zijn inderdaad een paar mods / configs nodig:

  • Bibliotheek https://github.com/Seeed-Studio/Mutichannel_Gas_Sensor - seriële debug-instructies. Moet worden uitgecommentarieerd, omdat de seriële poort wordt gebruikt voor een sensor!
  • Bibliotheek https://github.com/Bodmer/TFT_eSPI - vereist een configuratiebestand waarin de pintoewijzing en de SPI-frequentie zijn gespecificeerd
  • Bibliotheek https://github.com/lucadentella/ArduinoLib_MAX1704… - Als ik naar de opmerkingen en pull-verzoeken kijk, zie ik dat er een bugfix is die nooit is samengevoegd

Voor zover ik me herinner zou dat het moeten zijn. Laat het me weten als er zich problemen voordoen.

OPMERKING: Raadpleeg de opmerkingen in de nieuwste broncode - bevat links naar alle benodigde bibliotheken en wordt up-to-date gehouden

Waarom zijn sommige sensoren rood en sommige groen in de video/foto's?

Kleur geeft trend aan. Het begint wit en als het omhoog gaat is het rood, als het omlaag gaat is het groen.

Hoe ga je om met drift van de sensoren in de tijd? Hoe goed zijn deze sensoren? Wat kan ik zien met deze sensoren?

Eerlijk gezegd is dit geen wetenschappelijke meetkit. Om te kalibreren heb ik apparatuur nodig die ik niet tot mijn beschikking heb. Dit is echt een dierenproject. Ik heb verschillende sensoren geprobeerd. Het deeltje, CO2, temperatuur, vochtigheid, druk, Geiger zijn naar mijn mening redelijk goed. Bij de NO2 heb ik mijn bedenkingen bij de kalibratie en het algehele ontwerp, maar er is niet veel beschikbaar. Over het algemeen zijn het mainstream-sensoren.

De combinatie is echter goed genoeg om dingen te laten zien die je niet zou verwachten.

Met de Atmoscan in de woonkamer en de keuken een kamer verder, detecteert hij enorme deeltjespieken wanneer b.v. frituur spul. Het voelt de NO2 van het ochtendverkeer, zelfs met de ramen dicht.

Was een geigerteller echt nodig? Laat het iets bruikbaars zien?

Gelukkig hebben we geen nucleaire incidenten gehad en komt er nog geen oorlog… Toch zijn er kerncentrales niet zo ver weg en de overheid deelt jodiumpillen uit voor kinderen die in de la moeten worden bewaard in geval van incidenten… dus ik kreeg argwaan. Tot nu toe moet ik zeggen dat de metingen precies in lijn zijn met de verwachte achtergrondstraling (0,12 uSv/h)

Wat zijn de totale kosten van het apparaat?

Ik had al veel onderdelen in huis en bovenstaande links geven je een idee. Eerlijk gezegd, als je een kant-en-klare NetAtmo of iets dergelijks koopt, bespaar je geld. Je kunt een Chinees bedrijf niet verslaan dat dingen op grote schaal doet! Als je het echter leuk vindt om samen met je kinderen te maken, is het de moeite waard. Het mooie is dat ik al een aantal sensoren voor je heb getest (en weggegooid).

Hoe zit het met PCB's? Kun je me er een verkopen?

Ik had er oorspronkelijk 10 gemaakt door dirtypcbs.com en mijn bestanden werkten prima. Goede kwaliteit en goedkoop genoeg, 25USD / 20Euro voor 10 PCB's. Ik heb er twee gebruikt en ik stuur de resterende graag op voor de blote kosten (2 euro + verzending, afhankelijk van locatie en verzendvoorkeuren). Ik ben bang dat ik de eersten zal moeten kiezen die mij een privébericht sturen.

Kun je een kit of een kickstarter-campagne maken?

Vleiend, maar eerlijk gezegd vond ik het nooit innovatief genoeg… en bovendien GEEN TIJD!!

Mocht iemand het idee echter oppikken, dan is een tweede iteratie nodig. Er zijn enkele scherpe randen in het ontwerp die de moeite waard zijn om te corrigeren, maar nogmaals, ik had nooit genoeg tijd voor V2.

Op hardware: kan ik een sensor, het scherm enz. toevoegen/verwijderen om de mogelijkheden uit te breiden/het stroomverbruik te verminderen?

Het scherm is aangesloten zonder MISO te gebruiken, daarom leest de CPU nooit van het scherm. Daarom kon je het scherm gewoon niet aansluiten en het zou prima werken. Dit gezegd hebbende, is het scherm pas enige tijd aan nadat het laatste gebaar is gedetecteerd, dus het heeft niet echt invloed op het stroomverbruik.

De sensoren zijn in plaats daarvan energieverslindend en het hele ding gebruikt gemakkelijk 400/500mA. Vergeet de ventilator niet en ook het feit dat de deeltjessensor ook een ingebouwde ventilator heeft. Ook gaat de ESP niet in slaapstand, door gebrek aan GPIO-pons. Maar dat zou misschien 20mA hebben bespaard…

De software is modulair en je kunt eenvoudig processen en schermen toevoegen/verwijderen, zodat je sensoren kunt toevoegen of licht kunt maken door er enkele te verwijderen, als je dat wilt. De enige beperking is het aantal GPIO-pinnen. Sensoren kunnen echter eenvoudig worden toegevoegd als I2C, of als alternatief kan een I2C-expander worden gebruikt om GPIO's toe te voegen …

Om een sensor uit te schakelen, bijvoorbeeld om een gedeeltelijke build te testen, zou naar mijn mening de beste manier zijn om het gerelateerde proces niet te starten. Dit kan worden bereikt door commentaar te geven op de gerelateerde enable()-aanroep in de void startProcesses()-functie in het hoofd-.ino-bestand. Tenzij je het systeem structureel wilt wijzigen, zou ik de processen niet helemaal verwijderen, omdat het scherm en de MQTT-processen ze zullen pollen. Op deze manier zouden ze gewoon nul moeten retourneren. Houd er rekening mee dat de interrupt-ingang voor het geiger-bord naar beneden zal worden getrokken als het niet wordt gebruikt, anders zal het bord niet opstarten.

Wat zijn de verbeteringen die je zou hebben aangebracht als je de tijd had gehad voor een V2.0?

Niet in een bepaalde volgorde..

  • De PCB kon koper achter de ESP8266-antenne vermijden. Ik ben het helemaal vergeten en het maakt het stralingsdiagram niet-isotroop
  • De oplader is naar mijn mening ondermaats voor zo'n grote accu / de accu is te groot voor de oplader. Er zijn andere IC's en ik zou een andere proberen.
  • Er zijn betere batterijmeters.
  • Ik zou een ozonsensor toevoegen
  • Ik zou een ESP32 gebruiken voor meer GPIO's en Bluetooth-sensoren uit de hoofdeenheid.
  • Als ik meer GPIO's had met de ESP32 of met een I2C-uitbreiding, zou ik er een gebruiken om de ventilator te bedienen en een andere om het apparaat uit te schakelen via software. Als de batterij bijna leeg is, is het enige dat het kan doen om een scherm voor een bijna lege batterij weer te geven. Dit is in feite het grootste nadeel van het ontwerp, aangezien een bijna lege batterij niet netjes wordt afgehandeld.

Op software

Het kostte me meer tijd dan de hardware… Ik denk dat het een aantal goede concepten bevat, helaas niet volledig geïmplementeerd. In het bijzonder geloof ik dat het moet worden opgeschoond, mogelijk moet worden uitgebreid en dat er gemakkelijk een generiek raamwerk voor ESP8266-toepassingen van kan worden afgeleid. Geen tijd. Gaat iemand de uitdaging aan?

Kun je spraakbesturing toevoegen?

Moet haalbaar zijn. Er zijn een aantal kant-en-klare bibliotheken om een ESP8266 met Alexa te bedienen en ik zie niet in waarom de integratie een probleem zou moeten zijn. De interessante vraag is wat je er qua functionaliteit mee wilt doen. Ik heb geen Amazon Echo, dus ik heb het nooit geprobeerd.

Hoe heb je de lasercuts gemaakt?

De tekeningen zijn gemaakt met SketchUp. Het programma is leuk, maar mist serieus exportmogelijkheden. De proefversie van 30 dagen helpt echter omdat deze extra functionaliteit heeft. Ik heb het vervolgens geïmporteerd in Inkscape voor de uiteindelijke verwerking.

Kun je sensoren in-/uitschakelen om energie te besparen, via MOSFET's?

In principe een leuk idee, maar de meeste van deze sensoren moeten de hele tijd worden gevoed omdat ze een opwarmtijd hebben. Trouwens… ik heb geen GPIO's meer in de ESP8266. Ik moest zelfs GPIO10 gebruiken die officieel niet functioneel is, maar wel prima werkt op de ESP12E.

Welke vaardigheden zou ik nodig hebben?

Om het helemaal opnieuw te bouwen, heb je wat elektronica-ontwerpachtergrond nodig. Niet echt veel, tegenwoordig hoef je met internet niet echt datasheets regel voor regel te lezen zoals in mijn vroege dagen … Als je de uitkomst van mijn experimenten gebruikt, heb je wat SMD-soldeervaardigheden, mechanische vaardigheden en wat geduld nodig.

Is dit je eerste project?

Het is mijn eerste instructable, maar niet mijn eerste project. Ik heb in het verleden veel gesleuteld, maar ik heb tegenwoordig echt niet veel tijd. Ik heb mijn roestige vaardigheden weer tot leven gewekt terwijl ik mijn kinderen iets nuttigs probeer te leren..! Ik heb nog een paar projecten gemaakt die ik ooit zou kunnen publiceren..

Aanbevolen: