Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

DIY-luchtkwaliteitsmonitor - PM2.5, CO2, VOC, ozon, temperatuur en hum Arduino-meter

Heb je je ooit afgevraagd wat de kwaliteit is van de lucht die je inademt, of misschien waarom je je soms slaperig voelt op kantoor of 's ochtends moe bent, zelfs nadat je de hele nacht hebt geslapen? Een slechte luchtkwaliteit kan leiden tot veel negatieve gezondheidseffecten en kan vermoeidheid, hoofdpijn, concentratieverlies, verhoogde hartslag enzovoort veroorzaken. Het monitoren van de luchtkwaliteit is misschien wel belangrijker dan u zich realiseert. In deze tutorial leren we dus hoe we onze eigen luchtkwaliteitsmonitor kunnen bouwen die in staat is om PM2,5, CO2, VOC, ozon, evenals temperatuur en vochtigheid te meten.

Je kunt de volgende video bekijken of de schriftelijke tutorial hieronder lezen.

Overzicht

Ik zal uitleggen hoe elk van de luchtkwaliteitsparameters ons beïnvloedt en hoe de sensoren werken. Het brein van dit project is een Arduino Pro Mini-bord dat in combinatie met een 2,8-inch Nextion-aanraakscherm een ​​degelijke gebruikersinterface biedt.

We kunnen de metingen van alle sensoren in realtime zien en als we op een bepaalde sensor klikken, krijgen we waarden van de afgelopen 24 uur van die sensor. Er is ook een dimfunctie waarmee we de helderheid van het scherm kunnen verlagen of zelfs helemaal kunnen uitschakelen. Dit is bijvoorbeeld handig als we 's nachts de luchtkwaliteit in onze slaapkamer willen volgen.

We kunnen het scherm 's nachts uitschakelen en de volgende dag kunnen we de waarden van elke sensor afzonderlijk controleren.

Desalniettemin zal ik je nu door het hele proces van het bouwen leiden en uitleggen hoe alles werkt. Aan het einde van deze video kun je er zelf een bouwen. Dus laten we beginnen.

De PM2.5-sensor – PMS5003

Dit apparaat heeft vier hoofdcomponenten of luchtkwaliteitssensoren. We gebruiken de PMS5003-sensor voor het meten van PM2,5 of fijnstof in de lucht met een diameter van ongeveer 2,5 micron. Fijnstof is de meest schadelijke vorm van luchtvervuiling omdat ze diep in de longen, bloedbanen en hersenen kunnen doordringen en veel gezondheidsproblemen veroorzaken.

Deze sensor werkt volgens het principe van laserverstrooiing. De sensor heeft een ventilator die een gecontroleerde luchtstroom creëert, zodat de omgevingsdeeltjes door een gerichte laserstraal gaan.

De deeltjes veroorzaken lichtverstrooiing die wordt gedetecteerd door een fotodiode en vervolgens wordt omgezet in PM-concentratie met behulp van de microprocessor. Ik vond de resultaten van deze sensor behoorlijk betrouwbaar en naast PM2.5 kan hij ook PM1- en PM10-waarden uitvoeren.

De CO2-sensor – MH-Z19

Vervolgens gebruiken we de MH-Z19-sensor voor het meten van CO2 of kooldioxide. Omdat mensen koolstofdioxide uitstoten tijdens het ademen, kan de CO2-concentratie binnenshuis gemakkelijk erg hoog worden. CO2 is niet alleen gevaarlijk in hoge concentraties, maar het kan ook slaperigheid, vermoeidheid veroorzaken, onze productiviteit verlagen, enzovoort.

De sensor gebruikt het niet-dispersieve infraroodprincipe voor het meten van CO2 in de lucht. Een infraroodbron stuurt het licht door een buis die gevuld is met de lucht die we aan het meten zijn. Aan de andere kant van de infraroodbron bevindt zich een optisch filter en een IR-detector die de hoeveelheid IR-licht meet die er doorheen gaat.

De CO2-gasmoleculen die aanwezig zijn in de lucht die we meten, absorberen een specifieke band van IR-licht terwijl ze enkele golflengten doorlaten. Het CO2-niveau wordt dus berekend op basis van het verschil tussen de hoeveelheid uitgestraald licht en de hoeveelheid IR-licht die door de detector wordt ontvangen. De resultaten van deze sensor zijn ook behoorlijk nauwkeurig.

De VOC- en ozonsensoren – MP503 en MQ-131

Voor het meten van VOS en ozon gebruiken we de MP503 en de MQ131 gassensoren. Dit zijn verwarmde metaaloxidesensoren en hun werkingsprincipe is gebaseerd op het detecteren van verandering in weerstand bij aanwezigheid van gerichte gassen.

Een specifieke elektrische stroom gaat door een metalen substraat en de weerstand verandert afhankelijk van de hoeveelheid aanwezig gas.

Het doelgas van de MQ131-sensor is gewoon ozon, dat in een normaal huishouden kan worden gegenereerd door producten zoals bepaalde luchtreinigers, gezichtsstomers, kiemdodende lampen die ultraviolet licht produceren, enzovoort.

Aan de andere kant heeft de MP503-sensor meerdere doelgassen, waaronder alcohol, rook, isobutaan, methanal en andere. VOC staat voor Volatile Organic Compounds en dit zijn organische emissies van producten die we dagelijks gebruiken zoals wasmiddelen, schoonmaakmiddelen, luchtverfrissers, verf, make-up, enzovoort. VOC's kunnen veel negatieve gezondheidseffecten veroorzaken, waaronder hoofdpijn, irritatie van de ogen, huidreacties, duizeligheid enzovoort.

DIY Arduino-luchtkwaliteitsmonitor - schakelschema

Laten we echter nu het schakelschema bekijken en uitleggen hoe alles moet worden aangesloten.

U kunt de componenten die nodig zijn voor deze Arduino-luchtkwaliteitsmonitor verkrijgen via de onderstaande links:

  • PMS5003 PM-sensor ………………….
  • MH-Z19 CO2-sensor …………………..
  • MQ-131 Ozonsensor …………………..
  • MP503 VOC-sensor ……………………….
  • DHT22 Temp &Hum-sensor………….
  • Nextion 2.8″-scherm …………………..
  • DS3231 RTC ……………………………….
  • Arduino Pro Mini………………..…….…..
  • Afstand / afstandsmoeren M3 ……………
  • Mini-USB-connector ………………….
  • Pinkoppen ……………………………….
  • 2-standenschakelaar ………………………
  • Waarden condensatoren:0.1uF keramiek en 10uF elektrolytisch
  • Transistoren – 2N3904
  • Overschakelen

Openbaarmaking:dit zijn gelieerde links. Als Amazon Associate verdien ik met in aanmerking komende aankopen.

Correcte weerstandswaarden:  R1 =1K, R2 =2K, R6=100K of 1M, R7=1K

De PM2.5-sensor communiceert met de Arduino via een seriële interface. Het werkt op 5V, maar het RX-logica-niveau voor ontvangst werkt op 3,3v, dus daarom hebben we er een spanningsdeler voor nodig. De CO2-sensor en het Nextion-display maken ook gebruik van seriële communicatie. Voor het uitlezen van de VOC- en de Ozonsensoren gebruiken we analoge ingangen van de Arduino, terwijl de DHT22 temperatuur- en vochtigheidssensor daarvoor een digitale pin gebruikt.

De twee transistoren worden gebruikt voor het activeren van de sensorverwarmers. We gebruiken ook een Real Time Clock-module om de tijd bij te houden bij het opslaan van de sensorwaarden en het maakt gebruik van de I2C-communicatie. Het hele apparaat wordt gevoed met 5V via een mini-USB-connector.

Zie ook: De 8 beste Arduino-starterskits [update 2021]

Als we nu proberen alles met elkaar te verbinden, krijgen we een behoorlijke rommel door de vele verbindingen.

We hebben dus zeker een PCB nodig voor dit project.

Een PCB maken voor de Arduino Air Quality Monitor

Voor het maken van een PCB voor dit project ga ik Altium Designer gebruiken, die eigenlijk de sponsor van deze video is.

Altium Designer staat voor decennia van innovatie en ontwikkeling gericht op het creëren van een echt uniforme ontwerpomgeving. Door de perfecte balans tussen kracht en gebruiksgemak te vinden, heeft Altium Designer zijn positie als de meest gebruikte PCB-ontwerpoplossing op de markt veiliggesteld.

Nu zal ik je laten zien hoe ik de PCB voor dit project heb ontworpen met behulp van Altium Designer. Ik ben begonnen met het maken van het schema voor het project. Altium Designer heeft ingebouwde bibliotheken met elektronische basiscomponenten, maar nog beter, u kunt rechtstreeks naar componenten van fabrikanten zoeken, wat het inkopen van componenten voor uw project erg gemakkelijk maakt.

Als voorbeeld vond ik de mini-USB-connector met behulp van deze functie voor het zoeken naar onderdelen van de fabrikant. Vanaf hier kunt u ook eenvoudig toegang krijgen tot gegevens met betrekking tot de componenten, zoals 3D-modellen, footprints, afmetingen enz.

U kunt ook uw eigen componentenbibliotheken maken. Ik heb de meeste componenten voor dit project alleen gemaakt, omdat ik mijn eigen 3D-voetafdrukken voor elk onderdeel wilde maken, zodat ik uiteindelijk de hele PCB in 3D zou krijgen. Voor het maken van 3D-modellen voor de PCB-voetafdrukken, kunt u elke CAD-software gebruiken, de bestanden opslaan als .STEP-bestanden en ze importeren in Altium Designer.

Toen ik klaar was met het schema, heb ik de PCB gegenereerd. Ik rangschikte de componenten zoals ik wilde, en met slechts een simpele klik met behulp van de Auto Route-functie, genereerde de software alle sporen automatisch.

Indien nodig kunnen we deze handmatig aanmaken of aanpassen. We kunnen ook ontwerpregels instellen hoe de automatische routering de sporen maakt, verschillende breedtes instellen voor elk net, enzovoort. Op dit punt zien we ook de PCB in 3D en exporteren we een 3D-bestand van de hele PCB-assemblage die later zal worden gebruikt om er een behuizing voor te ontwerpen.

Desalniettemin wil ik Altium bedanken voor het sponsoren van dit soort educatieve content. Als u meer wilt weten over deze software en deze ook wilt uitproberen, kunt u de onderstaande links bekijken. U kunt ook de webgebaseerde Altium 365-viewer proberen voor projectvoorbeelden en bestanden.

Gratis proefversie van Altium Designer – https://www.altium.com/yt/howtomechatronics
Altium 365-viewer:https://www.altium.com/viewer

Dit zijn de Altium Designer-projectbestanden:

Altium Designer-bestanden inclusief het projectbestand, bibliotheken en .STEP-bestanden van de 3D-modellen van de elektronische componenten:

PCB Gerber-bestand:

Oké, dus toen ik eenmaal klaar was met de PCB, heb ik de Gerber- en de NC Drill-bestanden gegenereerd, ze in een enkel zip-bestand gestopt en dus was ik klaar om de PCB te laten vervaardigen.

Ik heb de print besteld bij JCLPCB. Hier kunnen we het zip-bestand eenvoudig slepen en neerzetten en eenmaal geüpload krijgen we alle visuele informatie over onze PCB.

Dan kunnen we de eigenschappen selecteren die we willen en onze PCB bestellen tegen een redelijke prijs.

Montage van de print

Na enkele dagen zijn de PCB's gearriveerd. De kwaliteit van de print is geweldig en alles is precies hetzelfde als in het ontwerp.

Dus nu zijn we klaar om te beginnen met het monteren van de printplaat. Ik begon met het plaatsen en solderen van eerst de kleinere componenten, de weerstanden en de twee transistors.

Dan kunnen we het Arduino Pro Mini-bord op zijn plaats solderen. Eerst moeten we echter de pin-headers eraan solderen. Houd er rekening mee dat we niet alle pinnen nodig hebben, maar zorg ervoor dat je degene die we nodig hebben, zoals de A4, A5 en de DTR-pin, niet mist. Zorg er ook voor dat je exact hetzelfde Arduino Pro Mini-bord hebt met deze lay-out van pinnen, omdat ze soms anders kunnen zijn.

Vervolgens kunnen we de DHT22-sensor op zijn plaats plaatsen. Voor dat doel moeten we eerst de pinnen 90 graden buigen. Soms gebruik ik ook Blu-tack-lijm om de componenten op hun plaats te houden tijdens het solderen.

De twee condensatoren die in dit project worden gebruikt, dienen voor het stabiliseren van de voeding. De stroom naar het bord komt van een mini-USB-connector waarop we 5V kunnen aansluiten.

Rechts boven de voedingsconnector moeten we de twee schakelaars solderen. De ene is voor het in- en uitschakelen van het apparaat en de andere wordt gebruikt wanneer we een schets naar het Arduino-bord willen uploaden. Vervolgens kunnen we de pin-headers voor de USB naar UART-interface, het display en de PM2.5-sensor, evenals de VOC-, de ozon- en de CO2-sensoren op hun plaats plaatsen.

Om vervolgens de DS3231 Real Time Clock-module opnieuw te solderen, moeten we eerst de pinnen 90 graden buigen. Eenmaal gesoldeerd kunnen we de batterij plaatsen die de tijd bijhoudt, zelfs wanneer de hoofdprintplaat stroom verliest. Hiermee is de print echt klaar, en wat nu nog te doen is, is de kabels voorbereiden die we gaan gebruiken om de PM2.5-sensor en het display op de print aan te sluiten. Ik heb mannelijke pin-headers gesoldeerd aan de kabel die bij de sensor wordt geleverd, en dus kon ik deze gemakkelijk op de print aansluiten. Om het display op de printplaat aan te sluiten, heb ik vier draden aan de achterkant van de displayconnector gesoldeerd en deze vervolgens op de printplaat aangesloten.

En dat is alles, onze Air Quality Monitor is eigenlijk klaar. Wat we nu moeten doen, is er natuurlijk een soort doos of koffer voor maken. Omdat we het 3D-model van de gehele PCB-assemblage van Altium Designer hebben, kunnen we het in CAD-software importeren en er een behuizing voor ontwerpen.

Ik heb daarvoor SOLIDWORKS gebruikt en de eenvoudigste behuizing gemaakt, bestaande uit slechts twee delen en een paar bouten en moeren. Ik besloot om de behuizing te maken met transparant acryl omdat ik het leuk vind hoe de printplaat en de componenten er zichtbaar uitzien en het is ook een geweldige manier om te pronken met je doe-het-zelf-project.

U kunt dit 3D-model van de DYI Air Quality Monitor downloaden en in uw browser op Thangs verkennen.

Download het 3D-model op Thangs.

Een pleidooi voor de luchtkwaliteitsmonitor

Het acryl dat ik zal gebruiken is een tick van 4 mm die perfect bij het display past. Omdat ik momenteel geen CNC-machine heb, heb ik de vormen handmatig gesneden met een eenvoudige metalen ijzerzaag.

Voor het maken van de opening voor de display heb ik eerst twee gaten gemaakt met een boor. Toen ging ik door een mes van een mini-ijzerzaag en sneed voorzichtig de vorm af. Met een eenvoudige rasp heb ik de vorm gladgestreken. Vervolgens heb ik met een boor van 3 mm alle gaten gemaakt voor het bevestigen van de PCB's en het verbinden van de twee acrylplaten.

Op dit punt heb ik de beschermende folie van het acryl verwijderd, en om eerlijk te zijn, dat is een behoorlijk bevredigend proces. Voor het bevestigen van de print op de grondplaat heb ik een aantal M3 bouten en moeren gebruikt. Voor het bevestigen van de PM2.5 sensor aan de plaat hebben we M2 bouten nodig.

Vervolgens kunnen we met behulp van enkele afstandsmoeren de twee platen aan elkaar koppelen. Door een vrouwelijke en een mannelijke afstandsmoer te gebruiken, kon ik gemakkelijk de gewenste afstand tussen de twee platen krijgen.

Ik vind het persoonlijk erg leuk hoe deze behuizing is geworden, plus, het is functioneel omdat lucht gemakkelijk rond de sensoren kan circuleren.

Programmeren

Oké, dus nu kunnen we het apparaat opstarten en het programma uploaden. We kunnen de luchtkwaliteitsmonitor van stroom voorzien via de mini-USB-connector en we kunnen de 5 volt halen uit een 5V USB-adapter, een 5V-telefoonoplader of een powerbank.

Voor het uploaden van het programma naar het Arduino Pro Mini-bord hebben we een USB-naar-serieel UART-interface nodig die kan worden aangesloten op de programmeerkop. Voordat we het op de USB van de computer aansluiten, moeten we eerst de hoofdvoeding van het apparaat inschakelen, omdat anders de stroom die van de USB van de computer komt, die slechts 500 mA is, mogelijk niet voldoende is om goed te werken. Bij het uploaden van de Arduino-schets moeten we ook de uploadschakelaar op de print omschakelen.

Hier kunt u de Arduino-code en het Nextion-displayprogramma downloaden:

Om een ​​schets naar een Arduino Pro Mini-bord te uploaden, moeten we in de Arduino IDE eerst dit bord selecteren, de juiste versie van de processor selecteren, de poort selecteren en de programmeermethode "USBasp" selecteren.

Nadat we de code naar de Arduino hebben geüpload, moeten we ook een code uploaden naar het Nextion-display. Nextion-beeldschermen hebben een ingebouwde ARM-controller die het beeldscherm zelf bestuurt.

Alle afbeeldingen zoals knoppen, tekst, afbeeldingen, variabelen enzovoort, worden gegenereerd en bestuurd door het display zelf. Het Nextion-display heeft een speciale Nextion-editor waar we al deze dingen kunnen maken. Het display en de Arduino-communicatie met slechts twee draden via de seriële communicatie. De Arduino stuurt gewoon de waarden van de sensor naar het display en vice versa, het display stuurt indien nodig gegevens naar de Arduino.

Voor het uploaden van het weergaveprogramma hebben we een microSD-kaart nodig waarop we het .TFT-uitvoerbestand van de Nextion-editor kunnen opslaan.

Het display heeft een kaartlezer waar we de microSD-kaart kunnen plaatsen terwijl de stroom is uitgeschakeld. Dan kunnen we het apparaat inschakelen en het programma wordt geüpload naar het display. Nu moeten we alleen de kaart verwijderen, de stroom weer inschakelen en onze luchtkwaliteitsmonitor begint te werken.

Code-uitleg

We gebruiken dus bibliotheken voor elke sensor en die zijn te vinden op de volgende links, MHZ19, PMS, MQ131, DHT, DS3231. Om beter te begrijpen hoe we de gegevens van elke sensor lezen, raad ik aan de documentatie van de bibliotheken te lezen en hun voorbeelden uit te proberen.

We gebruiken ook de SoftwareSerial-bibliotheek omdat zowel de MH-Z19- als de PMS5003-sensoren de seriële communicatie gebruiken. De Arduino en het Nextion-display gebruiken ook de seriële poort voor communicatie en in dit geval gebruiken we de standaard hardware-serieel.

Dus de Arduino leest de sensoren en stuurt die gegevens naar het Nextion-display. Hier is een voorbeeld.

Serial.print("tempV.val=");
Serial.print(temp);
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);Code language: Arduino (arduino)

Dus we hebben een variabele op het nextion-display genaamd "tempV" en om de waarde ervan bij te werken, moeten we een commando naar de nextion sturen als volgt "tempV.val=22". Dus de naam van de variabele, dan ".val", dan de waarde, laten we zeggen 22. De eerste twee regels van de code doen dat, en om ervoor te zorgen dat de Nextion-weergave deze opdracht of eigenlijk elke opdracht accepteert, moeten we de drie unieke "schrijf" commando's.

In het Nextion-displayprogramma hebben we een timer die in een lus loopt, net als de Arduino-codelus, en die constant de cijfers op het display bijwerkt.

In deze timer-gebeurtenis hebben we ook een code voor het wijzigen van de achtergrondkleur voor elke sensor, afhankelijk van de waarde.

Op de tweede pagina hebben we een golfvorm, die de waarden haalt uit de opgeslagen waarden van de Arduino. Houd er rekening mee dat u meer informatie kunt vinden over de Arduino-code zelf, aangezien er uitleg is in de opmerkingen van de code.

De uren en de Y-as waarden krijgen ook hun waarden van de Arduino.

Bovenop de golfvorm, evenals de cijfers op het hoofdscherm, kun je zien dat we transparante objecten hebben, genaamd "Hotstops" in de Nextion-editor, en ze fungeren als knoppen. Als we op de hotstop op de golfvorm drukken, kunnen we in het gedeelte Gebeurtenis zien dat het ons terugstuurt naar "pagina 0".

Over het algemeen is dat hoe het programma van deze Arduino-luchtkwaliteitsmonitor werkt. Om volledig te begrijpen hoe het werkt, moet u natuurlijk weten hoe elke sensor werkt met hun bibliotheken en hoe het Nextion-display werkt.

Houd er rekening mee dat we voor de VOC-sensor alleen onbewerkte gegevens van deze sensor lezen, geen ppm- of ppb-waarden. Alleen analoge waarden van 0 tot 1024. Hogere waarden betekent dat er VOC aanwezig is.

Wat betreft de ozonsensor, om nauwkeurigere resultaten te krijgen, moeten we de waarden setTimeToRead() en setR0() correct instellen volgens het kalibratievoorbeeld van de bibliotheek. Een langere setTimeToRead betekent echter dat het programma tijdens het samplen wordt geblokkeerd en dat al het andere wordt vastgelopen. Natuurlijk zijn er manieren om dit te omzeilen. Ik zou zelfs aanraden om de ozonsensor helemaal niet te gebruiken, tenzij je hem echt nodig hebt.

Ik hoop dat je deze video leuk vond en iets nieuws hebt geleerd. Als je dat hebt gedaan, overweeg dan om me te steunen op Patreon. Stel gerust een vraag in de opmerkingen hieronder en bekijk mijn Arduino Projects-collectie.


Productieproces

  1. DIY-monitor voor milieu en luchtkwaliteit
  2. Hoe de luchtkwaliteit op OpenSensors te meten
  3. Helium luchtkwaliteitssensor
  4. Maak Monitor Ambilight met Arduino
  5. CO2-monitoring met K30-sensor
  6. DIY voltmeter met Arduino en smartphone
  7. Hartslagmeter met IoT
  8. Arduino Temp. Monitor en realtimeklok met 3.2-weergave
  9. DIY Virtual Reality Skateboard
  10. DIY-luchtkwaliteitsmonitor met Sharp GP2Y1010AU0F-sensor
  11. DIY Arduino RADIONICS-behandelingsmachine