{"id":8594,"date":"2026-03-16T12:17:19","date_gmt":"2026-03-16T11:17:19","guid":{"rendered":"https:\/\/willem.aandewiel.nl\/?p=8594"},"modified":"2026-03-29T15:46:44","modified_gmt":"2026-03-29T13:46:44","slug":"draagbare-fijnstofmeter-op-batterijen","status":"publish","type":"post","link":"https:\/\/willem.aandewiel.nl\/index.php\/2026\/03\/16\/draagbare-fijnstofmeter-op-batterijen\/","title":{"rendered":"Draagbare Fijnstofmeter op batterijen"},"content":{"rendered":"\n<p>226 keer bekeken \/ views<\/p>\n\n\n\n<p class=\"has-text-align-center has-light-gray-background-color has-background\">Dit project is gesponsord door <a href=\"https:\/\/www.pcbway.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"280\" height=\"98\" class=\"wp-image-8607\" style=\"width: 120px; vertical-align: middle;\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/inline-PCBWay.png\" alt=\"\"><\/a><\/p>\n\n\n\n<p>In een <a href=\"https:\/\/willem.aandewiel.nl\/index.php\/2026\/01\/28\/fijnstof-meten-voor-makers-esp32-pms5003\/\" target=\"_blank\" rel=\"noreferrer noopener\">eerdere post<\/a> beschrijf ik de ontwikkeling van een aerosolsensor die meet hoeveel fijnstof er in de lucht zit en deze waarden doorgeeft aan een MQTT-broker. De gemeten waarden kunnen vervolgens bijvoorbeeld worden gebruikt om de ventilator van de centrale afzuiginstallatie aan te sturen.<\/p>\n\n\n\n<p class=\"has-light-gray-background-color has-background\"><a href=\"https:\/\/willem.aandewiel.nl\/index.php\/2026\/03\/16\/portable-fine-dust-meter-on-batteries\/\">Here<\/a> you can find an <a href=\"https:\/\/willem.aandewiel.nl\/index.php\/2026\/03\/16\/portable-fine-dust-meter-on-batteries\/\">English translation<\/a> of this project.<\/p>\n\n\n\n<p>Het is verrassend om te ontdekken hoeveel variatie er kan zitten in de hoeveelheid fijnstof, afhankelijk van bijvoorbeeld verkeer, houtkachels, ventilatie of gewoon waar je je bevindt. Dat bracht me op het idee om een klein, draagbaar apparaat te bouwen waarmee ik lokaal metingen kan doen.<\/p>\n\n\n\n<p>In plaats van de PMS5003-sensor die ik in mijn vorige ontwerp heb gebruikt, wil ik nu de SPS30-sensor gebruiken (beide sensoren zijn van Sensirion).<\/p>\n\n\n\n<p>Om echt draagbaar te zijn moet het ontwerp aan een aantal criteria voldoen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Omdat het draagbaar is moet het met een batterij of accu gevoed worden;<\/li>\n\n\n\n<li>Het stroomverbruik moet in rust (als het dus niet gebruikt wordt) zo laag mogelijk zijn om de accu niet te zwaar te belasten;<\/li>\n\n\n\n<li>De gemeten gegevens moeten op een display getoond worden.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Ontwerp keuzes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In plaats van een ingewikkeld PCB-ontwerp wil ik zoveel mogelijk gebruikmaken van standaardmodules.<\/li>\n\n\n\n<li>Als accu wil ik een 18650 Li-ion cel gebruiken. Deze zijn makkelijk te verkrijgen, hebben een grote capaciteit en zijn niet al te groot.\n<ul class=\"wp-block-list\">\n<li>Als centrale processor wil ik een ESP32-bordje gebruiken. Deze hebben voldoende geheugen en processing power voor de sensor.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>In eerste instantie dacht ik aan het gebruik van deep sleep als het apparaat niet in gebruik is. Maar de meeste ESP32-bordjes hebben, door bijvoorbeeld de LDO, ook in deep sleep nog steeds een stroomverbruik van enkele tientallen milliamp\u00e8res. Daarom ben ik op zoek gegaan naar een manier om de hele unit los te koppelen van de accu en alleen aan te koppelen als het apparaat in gebruik is (en dus daadwerkelijk aan het meten is).<br><br>De oplossing is een zogenaamd soft latch-circuit. Hiermee wordt, door middel van een (p-channel) MOSFET, de stroom tussen de accu, de ESP32, de sensor en het e-Paper-display volledig verbroken. Het stroomverbruik in de \u201cuit\u201d-stand is daarbij slechts een paar \u00b5A.<br><\/li>\n\n\n\n<li>Om de meetgegevens weer te geven wil ik een display gebruiken, maar de meeste displays tonen alleen data als er spanning op staat. Om zo min mogelijk stroom te gebruiken wil ik dat het apparaat uitgaat zodra hij klaar is met meten. Dan kun je dus niet meer lezen wat hij heeft gemeten. De uitkomst is een e-Paper display. Bij dit soort displays blijven de getoonde gegevens zichtbaar, ook als de stroom wordt uitgeschakeld.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/ePaper_Data-1024x768.jpg\" alt=\"\" class=\"wp-image-8644\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/ePaper_Data-1024x768.jpg 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/ePaper_Data-300x225.jpg 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/ePaper_Data-768x576.jpg 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/ePaper_Data.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Het resultaat is een handheld fijnstofmeter op basis van een ESP32 en een Sensirion SPS30-sensor met e-Paper-display. Het apparaat is bedoeld om even snel ergens een meting te doen: buiten op straat, in huis, bij een open raam of bijvoorbeeld in een werkplaats. Omdat het apparaat op een accu werkt is het echt een draagbaar, \u201chandheld\u201d apparaat.<\/p>\n\n\n\n<div class=\"wp-block-envira-envira-gallery\"><div id=\"envira-gallery-wrap-8670\" class=\"envira-gallery-wrap envira-gallery-theme-base envira-lightbox-theme-base\" itemscope itemtype=\"https:\/\/schema.org\/ImageGallery\"><div data-row-height=\"\" data-gallery-theme=\"\" id=\"envira-gallery-8670\" class=\"envira-gallery-public  envira-gallery-2-columns envira-clear enviratope envira-gallery-css-animations\" data-envira-columns=\"2\"><div id=\"envira-gallery-item-8645\" class=\"envira-gallery-item enviratope-item envira-gallery-item-1 envira-lazy-load\" style=\"padding-left: 5px; padding-bottom: 10px; padding-right: 5px;\"  itemscope itemtype=\"https:\/\/schema.org\/ImageObject\"><div class=\"envira-gallery-item-inner\"><div class=\"envira-gallery-position-overlay  envira-gallery-top-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-top-right\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-right\"><\/div><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HH_Construction-1024x768.jpg\" class=\"envira-gallery-8670 envira-gallery-link\" rel=\"enviragallery8670\" title=\"HH_Construction-1024x768\" data-envira-caption=\"HH_Construction-1024x768\" data-envira-retina=\"\" data-thumbnail=\"\"  itemprop=\"contentUrl\"><div class=\"envira-lazy\" data-test-width=\"640\" data-test-height=\"480\" style=\"padding-bottom:75%;\"><img decoding=\"async\" id=\"envira-gallery-image-8645\" class=\"envira-gallery-image envira-gallery-image-1\" data-envira-index=\"1\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HH_Construction-1024x768.jpg\" data-envira-src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HH_Construction-1024x768.jpg\" data-envira-gallery-id=\"8670\" data-envira-item-id=\"8645\" data-envira-caption=\"HH_Construction-1024x768\" alt=\"\" title=\"HH_Construction-1024x768\"  itemprop=\"thumbnailUrl\" data-envira-srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HH_Construction-1024x768.jpg 400w,https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HH_Construction-1024x768.jpg 2x\" srcset=\"data:image\/gif;base64,R0lGODlhAQABAIAAAP\/\/\/\/\/\/\/yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" \/><\/div><\/a><\/div><\/div><div id=\"envira-gallery-item-8669\" class=\"envira-gallery-item enviratope-item envira-gallery-item-2 envira-lazy-load\" style=\"padding-left: 5px; padding-bottom: 10px; padding-right: 5px;\"  itemscope itemtype=\"https:\/\/schema.org\/ImageObject\"><div class=\"envira-gallery-item-inner\"><div class=\"envira-gallery-position-overlay  envira-gallery-top-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-top-right\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-right\"><\/div><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHSensor.jpg\" class=\"envira-gallery-8670 envira-gallery-link\" rel=\"enviragallery8670\" title=\"HHSensor\" data-envira-caption=\"HHSensor\" data-envira-retina=\"\" data-thumbnail=\"\"  itemprop=\"contentUrl\"><div class=\"envira-lazy\" data-test-width=\"640\" data-test-height=\"480\" style=\"padding-bottom:75%;\"><img decoding=\"async\" id=\"envira-gallery-image-8669\" class=\"envira-gallery-image envira-gallery-image-2\" data-envira-index=\"2\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHSensor-540x1024.jpg\" data-envira-src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHSensor-540x1024.jpg\" data-envira-gallery-id=\"8670\" data-envira-item-id=\"8669\" data-envira-caption=\"HHSensor\" alt=\"\" title=\"HHSensor\"  itemprop=\"thumbnailUrl\" data-envira-srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHSensor-540x1024.jpg 400w,https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHSensor-540x1024.jpg 2x\" srcset=\"data:image\/gif;base64,R0lGODlhAQABAIAAAP\/\/\/\/\/\/\/yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" \/><\/div><\/a><\/div><\/div><\/div><\/div><noscript><img decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HH_Construction.jpg\" alt=\"\" \/><img decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHSensor.jpg\" alt=\"\" \/><\/noscript><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">De SPS30-sensor<\/h2>\n\n\n\n<p>De SPS30-sensor meet de massaconcentratie van fijnstof in verschillende fracties: PM1.0, PM2.5 en PM10. Dat zijn respectievelijk de concentraties van deeltjes kleiner dan 1 \u00b5m, 2,5 \u00b5m en 10 \u00b5m.<\/p>\n\n\n\n<p>De sensor gebruikt een laser en een ventilator om de lucht door een meetkamer te trekken en de deeltjes te tellen. Dat levert vrij betrouwbare waarden op.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Het basisontwerp<\/h2>\n\n\n\n<p>Zoals geschreven wil ik zoveel mogelijk gebruik maken van standaardmodules. In dit geval:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>een module waarmee de 18650-cel opgeladen kan worden<\/li>\n\n\n\n<li>een soft latch-circuit<\/li>\n\n\n\n<li>een step-up convertermodule die de door de 18650 geleverde spanning (~2,5 V \u2013 4,2 V) omzet in een stabiele 5 volt<\/li>\n\n\n\n<li>een ESP32-bordje als MPU<\/li>\n\n\n\n<li>een 1.54\u201d e-Paper van Waveshare<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHSensor.drawio.png\"><img loading=\"lazy\" decoding=\"async\" width=\"852\" height=\"356\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHSensor.drawio.png\" alt=\"\" class=\"wp-image-8685\" style=\"width:570px;height:auto\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHSensor.drawio.png 852w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHSensor.drawio-300x125.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHSensor.drawio-768x321.png 768w\" sizes=\"auto, (max-width: 852px) 100vw, 852px\" \/><\/a><\/figure>\n<\/div>\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Laadmodule<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/laadModule-TP4056.png\"><img loading=\"lazy\" decoding=\"async\" width=\"454\" height=\"746\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/laadModule-TP4056.png\" alt=\"\" class=\"wp-image-8605\" style=\"width:150px;height:auto\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/laadModule-TP4056.png 454w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/laadModule-TP4056-183x300.png 183w\" sizes=\"auto, (max-width: 454px) 100vw, 454px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>De laadmodule is er een die overal te koop is (ik heb er een paar voor een paar euro per stuk bij Amazon gekocht).<\/p>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">DC-DC step-up module<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/DC-DC-BoostConvertor.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"714\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/DC-DC-BoostConvertor-1024x714.png\" alt=\"\" class=\"wp-image-8604\" style=\"width:326px;height:auto\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/DC-DC-BoostConvertor-1024x714.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/DC-DC-BoostConvertor-300x209.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/DC-DC-BoostConvertor-768x535.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/DC-DC-BoostConvertor.png 1188w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-large is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/instellenUitgangsSpanning.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/instellenUitgangsSpanning-1024x585.png\" alt=\"\" class=\"wp-image-8603\" style=\"width:277px;height:auto\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/instellenUitgangsSpanning-1024x585.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/instellenUitgangsSpanning-300x171.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/instellenUitgangsSpanning-768x438.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/instellenUitgangsSpanning.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Ook deze heb ik voor een paar euro bij Amazon gekocht.<\/p>\n\n\n\n<p>Let wel op: de module kan verschillende spanningen afgeven (5 V, 8 V, 9 V en 12 V). Om een uitgangsspanning van 5 volt te krijgen moeten de twee 0-ohm weerstanden (naast A en B) worden verwijderd.<br><strong>Niet vergeten!<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">SPS30 (of PMS5003) fijnstofsensor<\/h2>\n\n\n\n<p>De SPS30 fijnstof (particulate matter) sensor is van Sensirion.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/SPS30-and-PMS5003.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"387\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/SPS30-and-PMS5003-1024x387.png\" alt=\"\" class=\"wp-image-8620\" style=\"width:519px;height:auto\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/SPS30-and-PMS5003-1024x387.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/SPS30-and-PMS5003-300x114.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/SPS30-and-PMS5003-768x291.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/SPS30-and-PMS5003.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">links de SPS30, rechts de PMS5003<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Waveshare 1.54\u201d e-Paper<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/1.5422-e-Paper.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"708\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/1.5422-e-Paper-1024x708.png\" alt=\"\" class=\"wp-image-8600\" style=\"width:283px;height:auto\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/1.5422-e-Paper-1024x708.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/1.5422-e-Paper-300x208.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/1.5422-e-Paper-768x531.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/1.5422-e-Paper.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">ESP32 DevKit 30-pin<\/h2>\n\n\n\n<p>Er zijn letterlijk tientallen verschillende ESP32-bordjes te koop. Voor dit project en voor de printplaat ben ik uitgegaan van een 30-pin ESP32-DevKit-V1 bordje.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/ESP32-DEVKIT-V1-30pins.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"628\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/ESP32-DEVKIT-V1-30pins-1024x628.png\" alt=\"\" class=\"wp-image-8599\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/ESP32-DEVKIT-V1-30pins-1024x628.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/ESP32-DEVKIT-V1-30pins-300x184.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/ESP32-DEVKIT-V1-30pins-768x471.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/ESP32-DEVKIT-V1-30pins.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Globale werking van het apparaat<\/h2>\n\n\n\n<p>Als kortstondig op de button (SW1) wordt gedrukt gaat Q101 geleiden en krijgen de ESP32, de SPS30 en het e-Paper-display spanning. De ESP32 zal als eerste actie de latch-pin (GPIO_PIN_LATCH) \u201choog\u201d maken. Hierdoor blijft het circuit ge-latched en zal Q101 blijven geleiden.<\/p>\n\n\n\n<p>Ook de SPS30-sensor en het e-Paper-display krijgen nu dus spanning.<\/p>\n\n\n\n<p>Voor betrouwbare metingen moet de SPS30 eerst opwarmen. Dit is (via het platformio.ini bestand) instelbaar. Volgens Sensirion moet de opwarmtijd minimaal 30 seconden zijn.<\/p>\n\n\n\n<p>Na deze opwarmtijd doet het apparaat vijf (ook weer instelbaar) metingen die direct op het display getoond worden. Als laatste wordt het gemiddelde van alle metingen op het display weergegeven en schakelt de ESP32 de latch-pin \u201claag\u201d, waarna Q101 uit gaat en de spanning wordt afgesloten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong><strong>Vereenvoudigd codevoorbeel<\/strong><\/strong><\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">void setup()\n{\n  \/\/ -- Switch off WiFi and Bluetooth as early as possible\n  \/\/ -- This saves power and avoids starting hardware that is not needed\n  disableRadios();\n\n  \/\/ -- Keep the power latch active so the device stays on\n  digitalWrite(pinLatch, HIGH);\n\n  \/\/ -- Initialize the display and prepare the first screen contents\n  epdInit();\n\n  \/\/ -- Read battery voltage early\n  \/\/ -- If the battery is too low, show a message and shut down\n  batteryVoltageLast = readBatteryVoltage();\n\n  if (batteryVoltageLast &lt; 3.4f)\n  {\n    switchOff(\"BATTERY TOO LOW\");\n    return;\n  }\n\n  \/\/ -- Initialize shared communication buses\n  \/\/ -- I2C is used for the SPS30 and optionally for the BMP280\n  i2cInit();\n\n  \/\/ -- Detect which sensor hardware is available\n  \/\/ -- The code can work with more than one particle sensor type\n  detectAvailableSensors();\n\n  \/\/ -- Try to start the particle sensor measurement\n  \/\/ -- When successful, the software enters the warm-up phase\n  if (!particleSensorInitAndStart())\n  {\n    messageText = \"Particle sensor error\";\n  }\n  else\n  {\n    messageText = \"Warming up...\";\n  }\n\n  \/\/ -- Reset all software timers used by the state machine\n  restartTimers();\n\n}   \/\/ setup()\n\n\nvoid loop()\n{\n  \/\/ -- Run small background jobs that must be serviced regularly\n  \/\/ -- Example: button handling, display housekeeping, sensor polling\n  serviceBackgroundTasks();\n\n  \/\/ -- If a shutdown was requested somewhere else in the code,\n  \/\/ -- execute it here as soon as possible\n  processSwitchOffRequest();\n\n  \/\/ -- Run the main application logic\n  \/\/ -- This is the state machine: warm-up, sample, validate, average, show result\n  runMainStateMachine();\n\n  \/\/ -- Check again after the main logic,\n  \/\/ -- because the state machine may have requested a shutdown\n  processSwitchOffRequest();\n\n}   \/\/ loop()<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">De Soft Latch-schakeling<\/h2>\n\n\n\n<p>Voor de goede werking is een cruciaal onderdeel de soft latch-schakeling. Op internet zijn veel varianten te vinden waarvan sommige beter werken dan andere. Na wat uitzoekwerk ben ik op de volgende schakeling uitgekomen:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/Latch-Circuit.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"784\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/Latch-Circuit-1024x784.png\" alt=\"\" class=\"wp-image-8597\" style=\"width:521px;height:auto\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/Latch-Circuit-1024x784.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/Latch-Circuit-300x230.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/Latch-Circuit-768x588.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/Latch-Circuit.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Het bestaat uit twee MOSFETs; een p-channel MOSFET (AO3401) als power switch en een n-channel MOSFET (BSS138) als sturing<\/p>\n\n\n\n<p>Verder zijn er twee signaaldiodes (1N4148) opgenomen om het mogelijk te maken de aanwezige drukknop, nadat de spanning is aangezet, te kunnen gebruiken als gewone switch op GPIO33.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=Foc9R0dC2iI\" target=\"_blank\" rel=\"noreferrer noopener\">Dave van EEVblog<\/a> en <a href=\"https:\/\/www.youtube.com\/watch?v=2yTPqQ3P5pQ\" target=\"_blank\" rel=\"noreferrer noopener\">PKAE Electronics<\/a> hebben filmpjes opgenomen die de werking van de schakeling goed uitleggen.<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group has-light-gray-background-color has-background is-vertical is-layout-flex wp-container-core-group-is-layout-8cf370e7 wp-block-group-is-layout-flex\">\n<h2 class=\"wp-block-heading\">En hoe goed is dit Soft Latch Circuit?<\/h2>\n\n\n\n<p>Om dat te testen heb ik een timer uitgang aangesloten op de &#8220;Ext.Sw&#8221; jumper (J5) en deze 700 keer de cyclus \u00e9\u00e9n seconde gesloten (waardoor de meetcyclus van de fijnstof-sensor begint) en twee minuten open laten herhalen (binnen deze tijd heeft de fijnstof sensor zichzelf weer uitgeschakeld). <br>Begonnen met een volle 18650 en na die 700 cycles was de spanning van de cel nog steeds boven de 3.8 volt (50%).<br>Behoorlijk effici\u00ebnt dus!<\/p>\n<\/div>\n<\/div><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-large is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/handheldAerosolSensorSchematic.pdf\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"705\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/handhelAerosolSensorSchematic-1024x705.png\" alt=\"\" class=\"wp-image-8630\" style=\"width:251px;height:auto\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/handhelAerosolSensorSchematic-1024x705.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/handhelAerosolSensorSchematic-300x207.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/handhelAerosolSensorSchematic-768x529.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/handhelAerosolSensorSchematic.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Hier is het hele schema van de Handheld Fijnstofmeter:<\/p>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Printplaat<\/h2>\n\n\n\n<p>Met KiCad heb ik een printplaat ontworpen met ruimte voor de meeste onderdelen. Alleen de SPS30 en het e-Paper-display zitten niet op de print maar kunnen met standaard 2.54&#8243; pin\/headers of JST-XH connectoren worden verbonden..<\/p>\n\n\n\n<p>Aan de bovenkant van de printplaat zitten:<\/p>\n\n\n\n<p>\u2022 de 30-pins ESP32-module<br>\u2022 de soft latch-schakeling<br>\u2022 de drukknop<br>\u2022 de connector voor het e-Paper-display<br>\u2022 de connectoren SPS30-sensor \u00f3f eventueel PMS5003<br>\u2022 ruimte voor een BME280 (luchtdruk en temperatuur)<br>\u2022 een I\u00b2C-connector<\/p>\n\n\n\n<p>Aan de onderkant van de printplaat zitten:<\/p>\n\n\n\n<p>\u2022 de 18650-accu<br>\u2022 de laadmodule<br>\u2022 de step-up convertermodule<br>\u2022 een piezo-speakertje<\/p>\n\n\n\n<div class=\"wp-block-envira-envira-gallery\"><div id=\"envira-gallery-wrap-8638\" class=\"envira-gallery-wrap envira-gallery-theme-base envira-lightbox-theme-base\" itemscope itemtype=\"https:\/\/schema.org\/ImageGallery\"><div data-row-height=\"\" data-gallery-theme=\"\" id=\"envira-gallery-8638\" class=\"envira-gallery-public  envira-gallery-2-columns envira-clear enviratope envira-gallery-css-animations\" data-envira-columns=\"2\"><div id=\"envira-gallery-item-8634\" class=\"envira-gallery-item enviratope-item envira-gallery-item-1 envira-lazy-load\" style=\"padding-left: 5px; padding-bottom: 10px; padding-right: 5px;\"  itemscope itemtype=\"https:\/\/schema.org\/ImageObject\"><div class=\"envira-gallery-item-inner\"><div class=\"envira-gallery-position-overlay  envira-gallery-top-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-top-right\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-right\"><\/div><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Top-1024x585.png\" class=\"envira-gallery-8638 envira-gallery-link\" rel=\"enviragallery8638\" title=\"hAS_Top-1024x585\" data-envira-caption=\"hAS_Top-1024x585\" data-envira-retina=\"\" data-thumbnail=\"\"  itemprop=\"contentUrl\"><div class=\"envira-lazy\" data-test-width=\"640\" data-test-height=\"480\" style=\"padding-bottom:75%;\"><img decoding=\"async\" id=\"envira-gallery-image-8634\" class=\"envira-gallery-image envira-gallery-image-1\" data-envira-index=\"1\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Top-1024x585.png\" data-envira-src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Top-1024x585.png\" data-envira-gallery-id=\"8638\" data-envira-item-id=\"8634\" data-envira-caption=\"hAS_Top-1024x585\" alt=\"\" title=\"hAS_Top-1024x585\"  itemprop=\"thumbnailUrl\" data-envira-srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Top-1024x585.png 400w,https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Top-1024x585.png 2x\" srcset=\"data:image\/gif;base64,R0lGODlhAQABAIAAAP\/\/\/\/\/\/\/yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" \/><\/div><\/a><\/div><\/div><div id=\"envira-gallery-item-8637\" class=\"envira-gallery-item enviratope-item envira-gallery-item-2 envira-lazy-load\" style=\"padding-left: 5px; padding-bottom: 10px; padding-right: 5px;\"  itemscope itemtype=\"https:\/\/schema.org\/ImageObject\"><div class=\"envira-gallery-item-inner\"><div class=\"envira-gallery-position-overlay  envira-gallery-top-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-top-right\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-right\"><\/div><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Top_3D-1024x585.png\" class=\"envira-gallery-8638 envira-gallery-link\" rel=\"enviragallery8638\" title=\"hAS_Top_3D-1024x585\" data-envira-caption=\"hAS_Top_3D-1024x585\" data-envira-retina=\"\" data-thumbnail=\"\"  itemprop=\"contentUrl\"><div class=\"envira-lazy\" data-test-width=\"640\" data-test-height=\"480\" style=\"padding-bottom:75%;\"><img decoding=\"async\" id=\"envira-gallery-image-8637\" class=\"envira-gallery-image envira-gallery-image-2\" data-envira-index=\"2\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Top_3D-1024x585.png\" data-envira-src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Top_3D-1024x585.png\" data-envira-gallery-id=\"8638\" data-envira-item-id=\"8637\" data-envira-caption=\"hAS_Top_3D-1024x585\" alt=\"\" title=\"hAS_Top_3D-1024x585\"  itemprop=\"thumbnailUrl\" data-envira-srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Top_3D-1024x585.png 400w,https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Top_3D-1024x585.png 2x\" srcset=\"data:image\/gif;base64,R0lGODlhAQABAIAAAP\/\/\/\/\/\/\/yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" \/><\/div><\/a><\/div><\/div><div id=\"envira-gallery-item-8636\" class=\"envira-gallery-item enviratope-item envira-gallery-item-3 envira-lazy-load\" style=\"padding-left: 5px; padding-bottom: 10px; padding-right: 5px;\"  itemscope itemtype=\"https:\/\/schema.org\/ImageObject\"><div class=\"envira-gallery-item-inner\"><div class=\"envira-gallery-position-overlay  envira-gallery-top-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-top-right\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-right\"><\/div><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Bottom_3D-1024x585.png\" class=\"envira-gallery-8638 envira-gallery-link\" rel=\"enviragallery8638\" title=\"hAS_Bottom_3D-1024x585\" data-envira-caption=\"hAS_Bottom_3D-1024x585\" data-envira-retina=\"\" data-thumbnail=\"\"  itemprop=\"contentUrl\"><div class=\"envira-lazy\" data-test-width=\"640\" data-test-height=\"480\" style=\"padding-bottom:75%;\"><img decoding=\"async\" id=\"envira-gallery-image-8636\" class=\"envira-gallery-image envira-gallery-image-3\" data-envira-index=\"3\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Bottom_3D-1024x585.png\" data-envira-src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Bottom_3D-1024x585.png\" data-envira-gallery-id=\"8638\" data-envira-item-id=\"8636\" data-envira-caption=\"hAS_Bottom_3D-1024x585\" alt=\"\" title=\"hAS_Bottom_3D-1024x585\"  itemprop=\"thumbnailUrl\" data-envira-srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Bottom_3D-1024x585.png 400w,https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Bottom_3D-1024x585.png 2x\" srcset=\"data:image\/gif;base64,R0lGODlhAQABAIAAAP\/\/\/\/\/\/\/yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" \/><\/div><\/a><\/div><\/div><div id=\"envira-gallery-item-8635\" class=\"envira-gallery-item enviratope-item envira-gallery-item-4 envira-lazy-load\" style=\"padding-left: 5px; padding-bottom: 10px; padding-right: 5px;\"  itemscope itemtype=\"https:\/\/schema.org\/ImageObject\"><div class=\"envira-gallery-item-inner\"><div class=\"envira-gallery-position-overlay  envira-gallery-top-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-top-right\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-right\"><\/div><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Bottom-1024x585.png\" class=\"envira-gallery-8638 envira-gallery-link\" rel=\"enviragallery8638\" title=\"hAS_Bottom-1024x585\" data-envira-caption=\"hAS_Bottom-1024x585\" data-envira-retina=\"\" data-thumbnail=\"\"  itemprop=\"contentUrl\"><div class=\"envira-lazy\" data-test-width=\"640\" data-test-height=\"480\" style=\"padding-bottom:75%;\"><img decoding=\"async\" id=\"envira-gallery-image-8635\" class=\"envira-gallery-image envira-gallery-image-4\" data-envira-index=\"4\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Bottom-1024x585.png\" data-envira-src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Bottom-1024x585.png\" data-envira-gallery-id=\"8638\" data-envira-item-id=\"8635\" data-envira-caption=\"hAS_Bottom-1024x585\" alt=\"\" title=\"hAS_Bottom-1024x585\"  itemprop=\"thumbnailUrl\" data-envira-srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Bottom-1024x585.png 400w,https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Bottom-1024x585.png 2x\" srcset=\"data:image\/gif;base64,R0lGODlhAQABAIAAAP\/\/\/\/\/\/\/yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" \/><\/div><\/a><\/div><\/div><div id=\"envira-gallery-item-8648\" class=\"envira-gallery-item enviratope-item envira-gallery-item-5 envira-lazy-load\" style=\"padding-left: 5px; padding-bottom: 10px; padding-right: 5px;\"  itemscope itemtype=\"https:\/\/schema.org\/ImageObject\"><div class=\"envira-gallery-item-inner\"><div class=\"envira-gallery-position-overlay  envira-gallery-top-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-top-right\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-right\"><\/div><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHS_TopView.jpg\" class=\"envira-gallery-8638 envira-gallery-link\" rel=\"enviragallery8638\" title=\"HHS_TopView\" data-envira-caption=\"HHS_TopView\" data-envira-retina=\"\" data-thumbnail=\"\"  itemprop=\"contentUrl\"><div class=\"envira-lazy\" data-test-width=\"640\" data-test-height=\"480\" style=\"padding-bottom:75%;\"><img decoding=\"async\" id=\"envira-gallery-image-8648\" class=\"envira-gallery-image envira-gallery-image-5\" data-envira-index=\"5\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHS_TopView-1024x768.jpg\" data-envira-src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHS_TopView-1024x768.jpg\" data-envira-gallery-id=\"8638\" data-envira-item-id=\"8648\" data-envira-caption=\"HHS_TopView\" alt=\"\" title=\"HHS_TopView\"  itemprop=\"thumbnailUrl\" data-envira-srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHS_TopView-1024x768.jpg 400w,https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHS_TopView-1024x768.jpg 2x\" srcset=\"data:image\/gif;base64,R0lGODlhAQABAIAAAP\/\/\/\/\/\/\/yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" \/><\/div><\/a><\/div><\/div><div id=\"envira-gallery-item-8647\" class=\"envira-gallery-item enviratope-item envira-gallery-item-6 envira-lazy-load\" style=\"padding-left: 5px; padding-bottom: 10px; padding-right: 5px;\"  itemscope itemtype=\"https:\/\/schema.org\/ImageObject\"><div class=\"envira-gallery-item-inner\"><div class=\"envira-gallery-position-overlay  envira-gallery-top-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-top-right\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-left\"><\/div><div class=\"envira-gallery-position-overlay  envira-gallery-bottom-right\"><\/div><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHS_BottomView.jpg\" class=\"envira-gallery-8638 envira-gallery-link\" rel=\"enviragallery8638\" title=\"HHS_BottomView\" data-envira-caption=\"HHS_BottomView\" data-envira-retina=\"\" data-thumbnail=\"\"  itemprop=\"contentUrl\"><div class=\"envira-lazy\" data-test-width=\"640\" data-test-height=\"480\" style=\"padding-bottom:75%;\"><img decoding=\"async\" id=\"envira-gallery-image-8647\" class=\"envira-gallery-image envira-gallery-image-6\" data-envira-index=\"6\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHS_BottomView-1024x768.jpg\" data-envira-src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHS_BottomView-1024x768.jpg\" data-envira-gallery-id=\"8638\" data-envira-item-id=\"8647\" data-envira-caption=\"HHS_BottomView\" alt=\"\" title=\"HHS_BottomView\"  itemprop=\"thumbnailUrl\" data-envira-srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHS_BottomView-1024x768.jpg 400w,https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHS_BottomView-1024x768.jpg 2x\" srcset=\"data:image\/gif;base64,R0lGODlhAQABAIAAAP\/\/\/\/\/\/\/yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" \/><\/div><\/a><\/div><\/div><\/div><\/div><noscript><img decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Top.png\" alt=\"\" \/><img decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Top_3D.png\" alt=\"\" \/><img decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Bottom_3D.png\" alt=\"\" \/><img decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/hAS_Bottom.png\" alt=\"\" \/><img decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHS_TopView.jpg\" alt=\"\" \/><img decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/HHS_BottomView.jpg\" alt=\"\" \/><\/noscript><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">PCB bestellen<\/h2>\n\n\n\n<p>Nadat de printplaat is ontworpen moet het ontwerp (in de vorm van Gerber-bestanden) naar een PCB-fabrikant worden gestuurd.<\/p>\n\n\n\n<p>Ik maak graag gebruik van <img loading=\"lazy\" decoding=\"async\" width=\"280\" height=\"98\" class=\"wp-image-8607\" style=\"width: 100px; vertical-align: middle;\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/inline-PCBWay.png\" alt=\"\"> en KiCad heeft een mooie plugin waarmee dit proces geautomatiseerd kan worden. De plugin heet \u201c<em>PCBWay<\/em>\u201d (hoe k\u00f3m je erop).<\/p>\n\n\n\n<p>Installatie gaat via de Plugin and Content Manager van KiCad.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/KiCadPluginManager.png\"><img loading=\"lazy\" decoding=\"async\" width=\"743\" height=\"614\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/KiCadPluginManager.png\" alt=\"\" class=\"wp-image-7864\" style=\"width:425px;height:auto\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/KiCadPluginManager.png 743w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/KiCadPluginManager-300x248.png 300w\" sizes=\"auto, (max-width: 743px) 100vw, 743px\" \/><\/a><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/installPCBWayPlugin.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"529\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/installPCBWayPlugin-1024x529.png\" alt=\"\" class=\"wp-image-7865\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/installPCBWayPlugin-1024x529.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/installPCBWayPlugin-300x155.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/installPCBWayPlugin-768x397.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/installPCBWayPlugin.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Na installatie heeft de toolbar van KiCad een nieuwe knop.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/StartPCBWayPlugin.png\"><img loading=\"lazy\" decoding=\"async\" width=\"746\" height=\"93\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/StartPCBWayPlugin.png\" alt=\"\" class=\"wp-image-7866\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/StartPCBWayPlugin.png 746w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/StartPCBWayPlugin-300x37.png 300w\" sizes=\"auto, (max-width: 746px) 100vw, 746px\" \/><\/a><\/figure>\n\n\n\n<p>Door op deze knop te klikken worden alle benodigde bestanden in een .zip-bestand gezet en wordt via de browser naar de website van PCBWay gesprongen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.pcbway.com\/\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"711\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/PCBWay-Quote-1024x711.png\" alt=\"\" class=\"wp-image-7867\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/PCBWay-Quote-1024x711.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/PCBWay-Quote-300x208.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/PCBWay-Quote-768x533.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/08\/PCBWay-Quote.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Vervolgens geef je op hoeveel printplaten je van dit ontwerp wilt laten maken en hoe je wilt dat de printplaat eruit komt te zien (kleur van het soldermask en van het silkscreen).<\/p>\n\n\n\n<p>Na controle door de engineers van <img loading=\"lazy\" decoding=\"async\" width=\"280\" height=\"98\" class=\"wp-image-8607\" style=\"width: 100px; vertical-align: middle;\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/inline-PCBWay.png\" alt=\"\"> kun je de productie- en verzendkosten betalen. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-large is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/PCBWay_Printjes.jpeg\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/PCBWay_Printjes-768x1024.jpeg\" alt=\"\" class=\"wp-image-8679\" style=\"width:197px;height:auto\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/PCBWay_Printjes-768x1024.jpeg 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/PCBWay_Printjes-225x300.jpeg 225w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/PCBWay_Printjes.jpeg 900w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p><br>Na ongeveer een week worden je printplaten geleverd en vind je ze in je brievenbus.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Aannames zijn niet altijd handig<\/h2>\n\n\n\n<p>In mijn KiCad-installatie zat geen symbool of footprint voor de AO3401 of de BSS138. Ten onrechte nam ik aan dat al die SOT-23 MOSFETs hetzelfde symbool en dezelfde footprint zullen hebben.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Dat bleek een misvatting.<\/h3>\n\n\n\n<p>Toen ik het eerste bordje in elkaar gesoldeerd had en de spanning erop zette ging de ESP32 direct \u201caan\u201d. Vreemd. Op de button klikken veranderde niets.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/wrongWayAO3401.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"590\" height=\"532\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/wrongWayAO3401.jpg\" alt=\"\" class=\"wp-image-8661\" style=\"width:195px;height:auto\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/wrongWayAO3401.jpg 590w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/wrongWayAO3401-300x271.jpg 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Na wat beter uitzoekwerk kwam ik erachter dat de MOSFETs dus niet allemaal hetzelfde zijn. Door de AO3401 scheef en met een kort draadje op de PCB te solderen en de BSS138 \u201cop zijn kop\u201d (omdat drain en source omgewisseld bleken) op de printplaat te solderen werkte alles zoals ik bedacht had.<\/p>\n\n\n\n<p>Met revisie 2.0 van de printplaat heb ik dit opgelost. Ook de twee buitenste connectoren heb ik iets verplaatst en de aansluitingen voor de BME280 heb ik anders geplaatst.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">En dan nog een laatste ding<\/h2>\n\n\n\n<p>Het hele apparaat doet en kan nog wat meer dan hierboven eenvoudig beschreven.<\/p>\n\n\n\n<p>Zo zal de ESP32 bij het opstarten \u00e9n vlak voor het uitschakelen de spanning van de 18650 meten en op het display weergeven. Dit is belangrijk omdat het slecht is voor de Li-ion-accu als de spanning onder de 3 V daalt. Dit kan permanente schade aan de cel veroorzaken.<\/p>\n\n\n\n<p>Als de spanning onder de 3,5 volt zakt zal op het display de tekst Battery Low verschijnen. Daalt de spanning nog verder dan zal het apparaat zichzelf zo snel mogelijk uitschakelen (zonder metingen te doen). Op het display verschijnt dan de tekst Battery Error.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"455\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/Typical-Li-ion-Discharge-Curve.png\" alt=\"\" class=\"wp-image-8595\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/Typical-Li-ion-Discharge-Curve.png 567w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/Typical-Li-ion-Discharge-Curve-300x241.png 300w\" sizes=\"auto, (max-width: 567px) 100vw, 567px\" \/><\/figure>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"748\" height=\"772\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/GY-MB-PE-280.png\" alt=\"\" class=\"wp-image-8596\" style=\"width:164px;height:auto\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/GY-MB-PE-280.png 748w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/GY-MB-PE-280-291x300.png 291w\" sizes=\"auto, (max-width: 748px) 100vw, 748px\" \/><\/figure>\n<\/div>\n\n\n<p>Behalve het uitlezen van de SPS30 is het mogelijk om een BME280 op de printplaat te monteren. Als zo\u2019n module aanwezig is zal bij het opstarten en afsluiten van het apparaat de gemeten temperatuur en luchtdruk op het display worden getoond.<\/p>\n\n\n\n<div style=\"height:11px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Omdat, om de batterij te sparen, de WiFi- en Bluetooth-transmitters bij het opstarten van de ESP32 direct worden uitgeschakeld, moest ik iets bedenken om het toch mogelijk te maken om OTA-updates op de ESP32 te flashen.<\/p>\n\n\n\n<p>Door tijdens het opstarten drie maal op de button (SW1)te drukken zal verbinding worden gemaakt met een bekend access point. Als er geen verbinding met een AP kan worden gemaakt zal een WiFi-manager worden gestart.<\/p>\n\n\n\n<p>In het display komt dan te staan:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>          WiFi Portal Started\n          Waiting for User Input\n          HHPMS-&lt;MAC Adres&gt;<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"659\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/WiFimanager.png\" alt=\"\" class=\"wp-image-8664\" style=\"width:405px;height:auto\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/WiFimanager.png 1200w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/WiFimanager-300x165.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/WiFimanager-1024x562.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/WiFimanager-768x422.png 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n<\/div>\n\n\n<p>Klik nu op [Configure WiFi] en selecteer het AP met de naam &#8220;HHPMS-123456&#8221; (123456 zijn de laatste 3 bytes van het MAC adres van de ESP32 SoC en is voor iedere chip anders).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/configWiFi_select.png\"><img loading=\"lazy\" decoding=\"async\" width=\"323\" height=\"370\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/configWiFi_select.png\" alt=\"\" class=\"wp-image-8667\" style=\"width:232px;height:auto\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/configWiFi_select.png 323w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/03\/configWiFi_select-262x300.png 262w\" sizes=\"auto, (max-width: 323px) 100vw, 323px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Het is nu de bedoeling dat je je computer, tablet of telefoon met dit access point verbindt en de credentials van je eigen WiFi-netwerk invoert.<br><br><\/p>\n\n\n\n<p>Door vervolgens op [Save] te klikken worden deze gegevens in de ESP32 opgeslagen en zal hij in het vervolg verbinding proberen te maken met dit netwerk.<\/p>\n\n\n\n<div style=\"height:3px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Op het display verschijnt nu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>          WAITING FOR UPDATE<\/code><\/pre>\n\n\n\n<p>Start nu de OTA-update waarna in het display de tekst:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>          UPDATING<\/code><\/pre>\n\n\n\n<p>.. verschijnt.<\/p>\n\n\n\n<p>Na de update zal het apparaat opnieuw opstarten en aan de normale meetcyclus beginnen waarna hij zichzelf weer uitschakelt.<\/p>\n\n\n\n<p>De printplaat en de software zijn geschikt voor zowel een SPS30-sensor als voor een PMS5003-sensor. Als het apparaat bij het opstarten geen SPS30-sensor kan vinden zal hij automatisch overschakelen naar een PMS5003.<\/p>\n\n\n\n<p>Als die \u00f3\u00f3k niet aanwezig is verschijnt de melding:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>          NO SENSOR<\/code><\/pre>\n\n\n\n<p>en zal het apparaat zichzelf uitschakelen.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Alle ontwerp bestanden en software kun je in <a href=\"https:\/\/github.com\/mrWheel\/handheldAerosolSensor\" target=\"_blank\" rel=\"noreferrer noopener\">deze repo<\/a> vinden.<\/p>\n\n\n\n<p><a href=\"https:\/\/willem.aandewiel.nl\/index.php\/2026\/03\/16\/portable-fine-dust-meter-on-batteries\/#respond\">Leave a Reply<\/a><\/p>\n\n\n\n<div style=\"height:46px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>226 keer bekeken \/ views Dit project is gesponsord door In een eerdere post beschrijf ik de ontwikkeling van een aerosolsensor die meet hoeveel fijnstof er in de lucht zit en deze waarden doorgeeft aan een MQTT-broker. De gemeten waarden &hellip; <a href=\"https:\/\/willem.aandewiel.nl\/index.php\/2026\/03\/16\/draagbare-fijnstofmeter-op-batterijen\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":8644,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[144,2,3,157,143,10,115,187,1,20],"tags":[193,191,192],"class_list":["post-8594","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aandewiel","category-arduino","category-computer","category-esp32","category-firmware","category-hardware","category-kicad","category-pcbway","category-uncategorised","category-wifi","tag-fijnstof","tag-particulate-matter","tag-pm"],"views":226,"_links":{"self":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/8594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/comments?post=8594"}],"version-history":[{"count":64,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/8594\/revisions"}],"predecessor-version":[{"id":8749,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/8594\/revisions\/8749"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/media\/8644"}],"wp:attachment":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/media?parent=8594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/categories?post=8594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/tags?post=8594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}