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

COVID-19- en PM10-niveaus!

Componenten en benodigdheden

Arduino Nano R3
× 1
SDS018
http://inovafitness.com/en/a/chanpinzhongxin/97.html
× 1
Adafruit DHT22 temperatuur-vochtigheidssensor + extra's
Opmerking:de pull-up-weerstand en condensator bevinden zich op de module.
× 1
OLED-scherm - I2C - SSD1306
× 1
Broadcom LED groen
× 1
Broadcom LED geel
× 1
Broadcom LED Rood
× 1
Condensator 100 nF
Optioneel:condensator voor DHT22.
× 1
Through Hole Resistor, 4,7 kohm
Optioneel:weerstand voor DHT22.
× 1
Powerbank
Zie beschrijving.
× 1
Through Hole Resistor, 390 ohm
Weerstanden voor LED's.
× 3
Machineschroef, M3x16
Behuizingsschroeven.
× 4
Machineschroef, M3x6
SDS018-schroef.
× 1
LAMP-SOCKET, LUMEX 3MM LED's
Optioneel:LED-montagehardware.
× 3
Vrouwelijke jumper voor draad
× 3
Krimpslang
× 1
Pin-header (2-pins)
× 1
Algemene jumper (0.1")
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)
Soldeerdraad, loodvrij
3D-printer (algemeen)
Hot lijmpistool (algemeen)
Boormachine / stuurprogramma, draadloos

Apps en online services

Arduino IDE

Over dit project

Samenvatting

Experimentele studies zouden de mogelijkheid bevestigen dat fijnstof kan fungeren als een "drager" voor de verspreiding van de virale infectie van COVID-19.

Dit betekent dat het virus over langere afstanden kan worden vervoerd door fijne deeltjes die in de lucht zweven en uren, dagen of zelfs weken levensvatbaar kan blijven in kleine deeltjes. Luchtverontreinigingsdeeltjes kunnen het coronavirus dus helpen verder door de lucht te reizen, waardoor het aantal geïnfecteerde mensen toeneemt.

In Noord-Italië heeft de lockdown niet geleid tot een aanzienlijke reductie van fijnstof, omdat fijnstof ook in grote hoeveelheden wordt gewonnen door intensieve veehouderijen, naast fabrieken en auto's. Dus zelfs als tijdens de lockdown fabrieken werden gesloten en auto's niet circuleerden, bleef de fijnstofconcentratie in Lombardije (Italië) hoe dan ook hoog, als gevolg van intensieve veehouderijen op zijn grondgebied die mest, en dus verontreinigende stoffen in de lucht, en onder andere fijnstof.

Wetenschappers en onderzoekers suggereren dat hogere niveaus van deeltjesvervuiling hogere infectiepercentages in delen van Noord-Italië zouden kunnen verklaren.

Inleiding

Een paar weken geleden keek ik naar een Italiaans tv-programma genaamd "Report". Het is een onderzoeksprogramma dat wordt uitgezonden op kanaal drie (RAI 3) door de Italiaanse televisie.

Een interessant stuk trok mijn aandacht ... Het ging over vervuiling en in het bijzonder over een soort vervuiling veroorzaakt door intensieve veehouderij. (Klik hier om het bijbehorende deel te zien:van minuut 27:25 tot minuut 56:00).

Intensieve veehouderij verwijst naar een landbouwsysteem waarin grote aantallen dieren (zoals koeien, varkens, kalkoenen of kippen) bij elkaar worden gehouden in relatief kleine ruimtes. Het doel is om tegen zo laag mogelijke kosten grote hoeveelheden vlees, eieren of melk te produceren. Ze worden ook wel "fabrieksboerderijen" genoemd.

Dieren die worden grootgebracht op overvolle boerderijen in fabrieksstijl, genereren een grote hoeveelheid dierlijk afval, zoals urine en mest. Mest wordt over het algemeen opgeslagen in enorme openluchtvijvers, vaak zo groot als meerdere voetbalvelden, die gevoelig zijn voor lekkage en morsen, vervuilende grond en vervuilende watervoorraden. Dierlijk afval stoot ook schadelijke gassen uit in de atmosfeer (zoals ammoniak, endotoxinen, waterstofsulfide en methaan) en geeft grote hoeveelheden fijnstof vrij (PM10 en PM2.5; PM10 is de afkorting voor “fijnstof met een diameter ≤ 10 µm”, PM2.5 is het acroniem voor “fijnstof met een diameter van ≤ 2,5 µm”) en veroorzaakt milieuproblemen. Fijnstof bevat microscopisch kleine vaste of vloeibare druppeltjes die zo klein zijn dat ze kunnen worden ingeademd en ernstige gezondheidsproblemen kunnen veroorzaken.

Als de beerputten hun capaciteit bereiken, spuiten boeren de onbehandelde mest op de omliggende velden als meststof, en die brengen nog meer van deze schadelijke stoffen in de lucht.

Onbehandeld afval vervuilt de lucht met geuren (de stank kan ondraaglijk zijn) en veroorzaakt gezondheidsproblemen, waardoor de kwaliteit van leven van werknemers, omwonenden en naburige gemeenschappen en eigendommen aanzienlijk afneemt. Studies hebben aangetoond dat mensen die in de buurt van intensieve veehouderijen wonen een veel groter risico hebben op het ontwikkelen van ademhalingsproblemen, zoals astma en chronische bronchitis.

In Italië bevinden de meeste intensieve veehouderijen zich in het noorden van het land. Lombardije is een van de regio's met de hoogste concentratie intensieve veehouderijen; bijgevolg is de hoeveelheid uitwerpselen en dierlijk afval dat in veehouderijen wordt geproduceerd zeer hoog en dat genereert grote hoeveelheden gassen en fijnstof.

Opgemerkt moet worden dat in Lombardije 85% van de ammoniak die in de atmosfeer wordt verspreid, wordt geproduceerd door mest:het lijkt erop dat boerderijen op dezelfde manier vervuilen als auto's.

Een studie uitgevoerd door onderzoekers van verschillende Italiaanse universiteiten en afgelopen maart gepubliceerd met de titel "Evaluatie van de potentiële relatie tussen fijnstofvervuiling en verspreiding van COVID-19-infectie in Italië ” (via de volgende link is het mogelijk om de Position Paper te downloaden:https://www.simaonlus.it/?page_id=694 , directe link naar de engelse pdf http://www.simaonlus.it/wpsima/wp- content/uploads/2020/03/COVID_19_position-paper_ENG.pdf - Ik raad aan om het te lezen!) spreekt over een mogelijke correlatie tussen fijnstofconcentraties en het aantal personen dat besmet is met COVID-19 (zoals je kunt zien in het volgende diagram) .

Onderzoekers hebben de volgende gegevens verzameld en geanalyseerd:

  • PM10 dagelijkse concentratieniveaus (gegevens verstrekt door de Regionale Milieubeschermingsdienst - ARPA - en verzameld in heel Italië);
  • De dagelijkse PM10-grenswaardeoverschrijdingen;
  • Het aantal met COVID-19 besmette personen voor elke geselecteerde provincie, gecommuniceerd door Civiele Bescherming en dagelijks bijgewerkt.

en hebben een significante relatie opgemerkt tussen de dagelijkse PM10-overschrijdingen en de verspreiding van de COVID-19-infectie tijdens de time-lapse van de studie (10-29 februari 2020), met een hoge concentratie van Coronavirus-gevallen in Noorden Italië, in het bijzonder in de Povlakte en vooral in Lombardije, terwijl in Zuid-Italië de verspreiding en dodelijkheid van het virus aanzienlijk lager waren in vergelijking met die in de noordelijke regio's.

In dit position paper is het mogelijk te lezen "De hypothese van een direct verband tussen COVID-19-gevallen en PM10-niveaus wordt versterkt door het bewijs dat de concentratie van gemelde COVID-19-uitbraken in de Povlakte [in Noorden Italië] was hoger dan in andere delen van Italië ” (zoals u kunt zien in de volgende afbeelding, toont deze de overschrijdingen van de PM10-vervuilingslimieten die zijn geregistreerd in Italië in de periode 10 februari - 29 februari en waar het mogelijk is om op te merken dat de Povlakte het meest vervuilde gebied in Italië is).

Het is zeer opmerkelijk dat de meeste gevallen van het Coronavirus in Italië zich in Lombardije bevinden, waar de concentratie van intensieve veehouderijen zeer hoog is en de bijgevolg productie van fijnstof enorm is.

Opgemerkt moet worden dat dit fenomeen zich zelfs tijdens de lockdown voortzette, toen fabrieken volledig werden gesloten en auto's niet circuleerden.

Volgens deze studie zou in de zuidelijke regio's van Italië (minder vervuild) het overheersende patroon van virale overdracht plaatsvinden door contact tussen mensen (in overeenstemming met epidemische modellen gebaseerd op de typische overdrachtsmodus 'contact van persoon tot persoon'), terwijl in de regio's van Noord-Italië (meer vervuild) de infectie zich op een andere manier zou verspreiden, namelijk door een drager (voorgesteld door de zwevende deeltjes in de atmosfeer).

De volgende infectie-expansiecurves benadrukken de anomalie van Noord-Italië in de verspreiding van COVID-19-infectie, vergeleken met Midden- en Zuid-Italië.

Op basis van de verzamelde gegevens en waargenomen verbanden concluderen onderzoekers dat het redelijk is om aan te nemen dat in de periode 10 - 29 februari 2020 hoge PM10-concentraties geregistreerd in specifieke Noord-Italiaanse regio's een drager- en stimulerend effect hadden op de virulente verspreiding van de COVID-19-epidemie, die de verspreiding van COVID-19 onder de blootgestelde bevolking bevordert, een fenomeen dat niet is waargenomen in andere Italiaanse regio's die in dezelfde periode door de besmetting werden getroffen.

Andere studies hebben aangetoond dat PM zou werken als een drager voor virussen. Virussen kunnen zich namelijk hechten aan fijnstof, waarvan de kleine deeltjes grote afstanden kunnen afleggen op luchtstromen en uren, dagen of zelfs weken in de atmosfeer kunnen blijven.

Fijnstof zou ook een substraat zijn waardoor virussen enige tijd (uren of dagen) actief kunnen blijven in de atmosfeer. Omgevingsfactoren spelen een belangrijke rol bij de activering en persistentie van virussen in de atmosfeer:

  • Hoge temperatuur en zonnestraling versnellen inactiviteit;
  • Hoge relatieve vochtigheid kan de diffusiesnelheid bevorderen.

Onderzoek heeft aangetoond dat de overleving van virussen op oppervlakken afneemt wanneer de relatieve vochtigheid rond de 50% wordt gehouden, terwijl virussen actief blijven wanneer de relatieve vochtigheid lager is dan 40% en boven de 60%.

Een ander onderzoek van Yale University heeft aangetoond hoe een lage luchtvochtigheid ervoor zorgt dat geïnfecteerde deeltjes zich beter verspreiden en langer overleven (klik hier om het artikel te bekijken).

Mijn oplossing

Op basis van deze overwegingen heb ik gedacht aan het maken van een repliceerbaar, goedkoop en gebruiksvriendelijk apparaat dat in staat is om PM10-concentratieniveaus, temperatuur en relatieve vochtigheid (omgevingsfactoren die betrokken zijn bij de verspreiding van virale infecties) te meten om mensen te waarschuwen wanneer deze waarden zijn te hoog en mogelijk gevaarlijk voor hun gezondheid, dus kunnen ze ervoor kiezen om thuis te blijven en niet naar buiten te gaan of, als ze buiten zijn, naar huis te gaan, of een masker te dragen, zelfs als de afstanden tussen mensen veel groter zijn dan één meter.

Het apparaat bestaat uit een PM10-sensor, een temperatuur- en relatieve vochtigheidssensor, een display en drie LED's, allemaal aangestuurd door een Arduino Nano. De sensorgegevens worden weergegeven op het display en de LED's geven aan wat de luchtsituatie is.

Ik heb vier verschillende situaties geïdentificeerd:

1. Normaal – Fijnstofconcentraties van 0 tot 25 µg/m3 en vochtigheid tussen 40% en 60%;

2. Laag - Fijnstofconcentraties van 0 tot 25 µg/m3 en vochtigheid <40% of> 60%;

3. Laag - Fijnstofconcentraties van 26 tot 50 µg/m3 en vochtigheid tussen 40% en 60%;

4. Waarschuwing - Fijnstofconcentraties van 26 tot 50 µg/m3 en vochtigheid <40% of> 60%;

5. Waarschuwing - Fijnstofconcentraties> 51 µg/m3 en luchtvochtigheid tussen 40% en 60%;

6. Alarm - Fijnstofconcentraties> 51 µg/m3 en vochtigheid <40% of> 60%.

Bijbehorende LED's:

  • Normaal:LED's UIT;
  • Laag:Groene LED AAN;
  • Waarschuwing:groene en gele LED's AAN;
  • Alarm:groene, gele en rode LED's AAN.

SDS018 - PM10-sensor

De SDS018 kan de deeltjesconcentratie tussen 0,3 en 10 m in de lucht krijgen, door gebruik te maken van het principe van laserverstrooiing. Het is stabiel en betrouwbaar met zijn digitale uitgang en ingebouwde ventilator.

  • Nauwkeurig en betrouwbaar:laserdetectie, stabiel, goede consistentie;
  • Snelle reactie:de reactietijd is minder dan 10 seconden wanneer de scène verandert;
  • Eenvoudige integratie:UART-uitgang (of IO-uitgang kan worden aangepast), ingebouwde ventilator;
  • Hoge resolutie:resolutie van 0,3μg/m3;
  • Certificering:producten zijn geslaagd voor CE/FCC/RoHS-certificering.

SDS018 sensor pin-out:

  • 1 - NC:geen verbinding;
  • 2 - 1um:PWM-uitgang;
  • 3 - 5V:voeding;
  • 4 - 2.5um:PWM-uitgang;
  • 5 - GND:aarde, verbinden met negatieve pool;
  • 6 - R:RX van UART (TTL);
  • 7 - T:TX van UART (TTL).

Verbinding van SDS018-sensor met Arduino Nano

  • De 5V (3)-pin van de SDS018-sensor is verbonden met de 5V-pin van Arduino Nano;
  • De GND (5)-pin van de SDS018-sensor is verbonden met de GND-pin van Arduino Nano;
  • De T (7)-pin van de SDS018-sensor is verbonden met de RX-pin van Arduino Nano;

DHT22-sensor

DHT22 is een digitale temperatuur- en relatieve vochtigheidssensor. De belangrijkste kenmerken zijn:

  • 3 tot 5V voeding en I/O;
  • 2,5 mA max huidig ​​gebruik tijdens conversie (tijdens het opvragen van gegevens);
  • 0-100% vochtigheidsmetingen met een nauwkeurigheid van 2-5%;
  • -40 tot 80°C temperatuurmetingen ±0,5°C nauwkeurigheid;
  • Bemonsteringsfrequentie van 0,5 Hz (eenmaal per 2 seconden).

DHT22-sensor pinout:

  • VDD:voeding;
  • DATA:signaalgegevensuitvoer;
  • NC:Niet verbonden;
  • GND:massa, verbinden met negatieve pool.

Aansluiting van DHT22-sensor op Arduino Nano

  • De VDD-pin van de DHT22-sensor is verbonden met de 5V-pin van Arduino Nano;
  • De GND-pin van de DHT22-sensor is verbonden met de GND-pin van Arduino Nano;
  • Tussen de VDD- en GND-pinnen van de DHT22-sensor heb ik een 100nF-condensator geplaatst;
  • Tussen de DATA- en VCC-pinnen van de DHT22-sensor heb ik een pull-upweerstand van 4,7k geplaatst;
  • De DATA-pin van de DHT22-sensor is verbonden met de D2-pin van Arduino Nano.

Arduino IDE

Ik heb de DHT-sensorbibliotheek van Adafruit geïnstalleerd - Versie 1.3.10

Dot Matrix OLED-scherm

  • VCC:3,3-5V;
  • Resolutie:128x32 pixels;
  • Zwarte achtergrond met witte tekens;
  • Stuurprogramma:SSD1306;
  • Interface:I2C.

OLED I2C Display pinout:

  • SDA:I2C seriële data;
  • SCL:I2C seriële klok;
  • VCC:voeding;
  • GND:aarde, verbonden met negatieve pool.

Verbinding van OLED I2C-display met Arduino Nano

  • De VCC-pin van het display is verbonden met de 5V-pin van Arduino Nano;
  • De GND-pin van het display is verbonden met de GND-pin van Arduino Nano;
  • De SCL-pin van het display is verbonden met de A5-pin van Arduino Nano;
  • De SDA-pin van het display is verbonden met de A4-pin van Arduino Nano.

Arduino IDE

Ik heb de Adafruit SSD1306-bibliotheek van Adafruit geïnstalleerd - Versie 2.2.1

LED's Aansluitingen

Ik heb drie LED's van 3 mm gebruikt:rood, groen en geel.

  • De anode van rode LED is verbonden met de D3-pin van Arduino Nano;
  • De anode van groene LED is verbonden met de D4-pin van Arduino Nano;
  • De anode van gele LED is verbonden met de D5-pin van Arduino Nano;
  • Ik heb een weerstand van 390 Ohm in serie gesoldeerd aan de kathode van elke LED en ik heb de andere pin van de weerstand aangesloten op GND van Arduino Nano.

Arduino nano - Hardware modificatie

Om de seriële output van de SDS018 te lezen heb ik Arduino Nano aangepast.

Ik heb de SMD-weerstand verwijderd die in de volgende afbeelding is aangegeven met de rode pijl.

Ik heb de SMD-weerstand verticaal gesoldeerd en vervolgens heb ik twee draden aan de weerstand gesoldeerd. Ik heb een pin-header aan het uiteinde van de draden gesoldeerd.

Ik heb de jumper alleen op de pin-header geplaatst als ik de Arduino Nano heb geprogrammeerd. Op deze manier kan de Arduino Nano, wanneer de jumper wordt verwijderd, de gegevens van de SDS018-sensor lezen en tegelijkertijd de gegevens naar de Arduino IDE seriële monitor sturen.

Of eenvoudiger, na het programmeren van het Arduino Nano-bord kunt u de weerstand permanent verwijderen, maar op deze manier is het niet langer mogelijk om het Arduino Nano-bord te herprogrammeren.

Voeding

De Arduino Nano kan op twee verschillende manieren van stroom worden voorzien:

  • USB;
  • Vin-pin (en GND-pin):7-12V.

Ik heb het bord via USB van stroom voorzien via een powerbank.

Behuizing en montage

Ik heb een oranje PLA-behuizing ontworpen en geprint in 3D om de sensoren, het display, LED's en Arduino Nano te bevestigen. De behuizing bestaat uit twee delen:het onderste deel, waar de Arduino Nano en de SDS018 zijn bevestigd; en het bovenste gedeelte waar de DHT22, het display en de LED's zijn bevestigd. In het onderste deel is er een opening voor de Mini-B USB-kabel. Op het bovenste gedeelte bevinden zich drie gaten waaruit de drie LED's naar buiten komen. Als je wilt, kun je de LED-montagehardware gebruiken om de LED's te bevestigen (gewoon de gaten vergroten tot 5 mm).

Hier bijgevoegd vindt u de twee bestanden die u nodig heeft om de twee delen van de koffer in 3D af te drukken.

Ik heb hete lijm gebruikt om de Arduino Nano, het display en de DHT22 in de behuizing te bevestigen.

Figure 1 - I have soldered LEDs with their resistors and I have mounted them on the upper part of the case;

Figure 2 - I have inserted a heat-shrink tubing on each resistor and on each wire;

Figures 3/4 - I have fixed the DHT22 sensor module with hot glue;

Figure 5 - I have fixed the display module with hot glue;

Figure 6 - I have soldered all the wires to the Arduino Nano board;

Figure 7 - I have fixed the Arduino Nano board with hot glue;

Figure 8 - I have soldered all the positive wires (red) together and I have inserted the heat-shrink tubing; I have soldered all the negative wires (black) together and I have inserted the heat-shrink tubing;

Figure 9 - I have fixed the red and black wires with the glitter hot glue (I had finished the transparent one :) )

Figure 10 - I have soldered the three female jumpers on each wire in order to connect the SDS018 Sensor module;

Figure 11 - I have inserted a heat-shrink tubing on each female jumper and I have inserted them into the SDS018 sensor module;

Figure 12 - I have mounted the SDS018 sensor module in the lower part of the case with a machine screw M3x6;

Figure 13 - I have closed the case with four machine screws M3x16.

Firmware

The firmware is an Arduino sketch . In the following figure you can see the simplified flow chart.

At start-up is executed the peripheral setup and the LEDs are checked.

Main loop:

  • Only at the first loop (startup) there are 2 seconds delay;
  • The DHT22 sensor is read;
  • Temperature and relative humidity are sent to Arduino IDE serial monitor (see the figure below);
  • The SDS018 sensor is read;
  • PM2.5 and PM10 are sent to Arduino IDE serial monitor (see the figure below);
  • If particulate matter concentrations are from 0 to 25 µg/m3 and humidity is between 40% and 60% - Normal alarm state -, then all LEDs get OFF;
  • If particulate matter concentrations are from 0 to 25 µg/m3 and humidity is <40% or> 60% or particulate matter concentrations are from 26 to 50 µg/m3 and humidity is between 40% and 60% (to simplify the code I have separated the conditions) - Low alarm state -, then only green LED gets ON;
  • If particulate matter concentrations are from 26 to 50 µg/m3 and humidity is <40% or> 60% or particulate matter concentrations are> 51 µg/m3 and humidity is between 40% and 60% (to simplify the code I have separated the conditions) - Warning alarm state -, then green and yellow LEDs get ON;
  • If particulate matter concentrations are> 51 µg/m3 and humidity is <40% or> 60% - Alarm state -, then all LEDs get ON;
  • If switchDisplay flag variable is equal to zero, then PM10 and humidity are visualized on display, otherwise are visualized PM2.5 and temperature in degrees Celsius; if there is an alarm state, instead of displaying PM10, it is visualized the word "Alarm!!!".

At the end of the loop I have inserted a 2 second-delay.

That's all!

If you have any questions or suggestions don't hesitate to leave a comment below. Thank you!


Code

  • COVID-19 and PM10 levels! - Code
COVID-19 and PM10 levels! - CodeArduino
The firmware is an Arduino sketch.
#include #define SCREEN_WIDTH 128 // OLED display width, in pixels#define SCREEN_HEIGHT 32 // OLED display height, in pixels// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)#define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);#include "DHT.h"#define DHTPIN 2 // Digital pin connected to the DHT sensor #define DHTTYPE DHT22 // DHT22 (AM2302)DHT dht(DHTPIN, DHTTYPE);int startdhr22 =0; // Startup flag variable:waiting for the first measurement of DHT22int switchDisplay =0; // Flag variable for switch data on the displayconst int ledRed =3; // Number of Red LED pinconst int ledGreen =4; // Number of Green LED pinconst int ledYellow =5; // Number of Yellow LED pinvoid setup() { pinMode(LED_BUILTIN, OUTPUT); // On-board LED - initialize digital pin LED_BUILTIN as an output pinMode(ledRed, OUTPUT); // Initialize digital pin as an output pinMode(ledGreen, OUTPUT); // Initialize digital pin as an output pinMode(ledYellow, OUTPUT); // Initialize digital pin as an output dht.begin(); Serieel.begin(9600); Serial.println("start"); // SSD1306_SWITCHCAPVCC =generate display voltage from 3.3V internally if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3C for 128x32 Serial.println(F("SSD1306 allocation failed")); for(;;); // Do not proceed, loop forever } display.clearDisplay(); // Clear the buffer display.setTextSize(2); // Draw 2X-scale text display.setTextColor(SSD1306_WHITE); // Startup:LEDs Test digitalWrite(ledGreen, HIGH); // Turn the LED ON delay(500); // Wait for 0,5 secondS digitalWrite(ledYellow, HIGH); // Turn the LED ON delay(500); // Wait for 0,5 secondS digitalWrite(ledRed, HIGH); // Turn the LED ON delay(500); // Wait for 0,5 secondS digitalWrite(ledGreen, LOW); // Turn the LED OFF digitalWrite(ledYellow, LOW); // Turn the LED OFF digitalWrite(ledRed, LOW); // Turn the LED OFF delay(500); // Wait for 0,5 secondS}void loop() { // ########################################################################### // DHT22 // 0.5 Hz sampling rate (once every 2 seconds). // ########################################################################### if(0 ==startdhr22) { delay(2000); // Startup:waiting for the first measurement of DHT22 startdhr22 =1; } float h =dht.readHumidity(); float t =dht.readTemperature(); // Read temperature as Celsius (default) // Check if any reads failed and exit early (to try again). if (isnan(h) || isnan(t)) { Serial.println(F("Failed to read from DHT sensor!")); opbrengst; } Serial.print(F("Humidity:")); Serial.print(h); Serial.print(F("% Temperature:")); Serial.print(t); Serial.println(F("°C ")); // ########################################################################### // SDS018 // ########################################################################### uint8_t dataIN[10] ={0}; // Data array from SDS018 float pm25; float pm10; while(Serial.available()> 0) { for(int i=0; i<10; ++i) { // loop for acquire 10 bytes dataIN[i] =Serial.read(); // Save data in to dataIN array // Serial.println(dataIN[i], HEX); // Test:Prints data to the serial port (print as an ASCII-encoded hexadecimal) } if((0xAA ==dataIN[0]) &&(0xC0 ==dataIN[1]) &&(0xAB ==dataIN[9])) { // check if array contains dataIN[0]=0xAA and dataIN[1]=0xC0 and dataIN[1]=0xAB uint8_t cksum =0; for(int i=2; i<=7; ++i) { cksum +=dataIN[i]; // Calculation of check-sum } //Serial.print("check-sum:"); // Test:Serial monitor //Serial.println(cksum, HEX); if(cksum ==dataIN[8]) { digitalWrite(LED_BUILTIN, HIGH); // Turn the LED on (HIGH is the voltage level) uint8_t pm25Lo =dataIN[2]; // PM2.5 low byte uint8_t pm25Hi =dataIN[3]; // PM2.5 high byte uint8_t pm10Lo =dataIN[4]; // PM10 low byte uint8_t pm10Hi =dataIN[5]; // PM10 high byte pm25 =((pm25Hi * 256.0) + pm25Lo)/10.0; // Calculation of PM2.5 value pm10 =((pm10Hi * 256.0) + pm10Lo)/10.0; // Calculation of PM10 value Serial.print("PM2.5:"); // Serial monitor Serial.print(pm25); Serial.println(" ug/m3"); Serial.print("PM10:"); Serial.print(pm10); Serial.println(" ug/m3"); } Serial.println("-----------------"); } Serial.flush(); } // ########################################################################### // LEDs // ########################################################################### if((pm10 <=25) &&((h>=40) &&(h <=60))) // Normal – Particulate matter concentrations from 0 to 25 µg/m3 and humidity between 40% and 60%; { digitalWrite(ledGreen, LOW); // Turn the LED OFF digitalWrite(ledYellow, LOW); // Turn the LED OFF digitalWrite(ledRed, LOW); // Turn the LED OFF } else if((pm10 <=25) &&((h <40) || (h> 60))) // Low - Particulate matter concentrations from 0 to 25 µg/m3 and humidity <40% o> 60%; { digitalWrite(ledGreen, HIGH); // Turn the LED ON digitalWrite(ledYellow, LOW); // Turn the LED OFF digitalWrite(ledRed, LOW); // Turn the LED OFF } else if(((pm10> 25) &&(pm10 <=50)) &&((h>=40) &&(h <=60))) // Low - Particulate matter concentrations from 26 to 50 µg/m3 and humidity between 40% and 60%; { digitalWrite(ledGreen, HIGH); // Turn the LED ON digitalWrite(ledYellow, LOW); // Turn the LED OFF digitalWrite(ledRed, LOW); // Turn the LED OFF } else if(((pm10> 25) &&(pm10 <=50)) &&((h <40) || (h> 60))) // Warning - Particulate matter concentrations from 26 to 50 µg/m3 and humidity <40% o> 60%; { digitalWrite(ledGreen, HIGH); // Turn the LED ON digitalWrite(ledYellow, HIGH); // Turn the LED ON digitalWrite(ledRed, LOW); // Turn the LED OFF } else if((pm10> 50) &&((h>=40) &&(h <=60))) // Warning - Particulate matter concentrations> 51 µg/m3 and humidity between 40% and 60%; { digitalWrite(ledGreen, HIGH); // Turn the LED ON digitalWrite(ledYellow, HIGH); // Turn the LED ON digitalWrite(ledRed, LOW); // Turn the LED OFF } else // Alarm - Particulate matter concentrations> 51 µg/m3 and humidity <40% or> 60%. { digitalWrite(ledGreen, HIGH); // Turn the LED ON digitalWrite(ledYellow, HIGH); // Turn the LED ON digitalWrite(ledRed, HIGH); // Turn the LED ON } // ########################################################################### // Display // ########################################################################### if(0 ==switchDisplay) { display.clearDisplay(); display.setTextColor(SSD1306_WHITE); display.setCursor(0,0); // Set the cursor position (Width, Height) if(pm10> 50) // Visualize the word "Alarm" on display { display.print("Alarm!!!"); } else // Visualize the PM10 value on display { display.print("PM10:"); display.println(pm10); } display.print(" HR%:"); // Visualize the humidity value on display display.println(h); display.display(); switchDisplay =1; } else { display.clearDisplay(); display.setTextColor(SSD1306_BLACK, SSD1306_WHITE); // Draw 'inverse' text display.setCursor(0,0); // Set the cursor position (Width, Height) display.print("PM25:"); // Visualize the PM2.5 value on display display.println(pm25); display.print("T[C]:"); // Visualize the temperature value on display display.println(t); display.display(); switchDisplay =0; } delay(500); // Delay of 500ms digitalWrite(LED_BUILTIN, LOW); // TEST:turn the LED_BUILTIN OFF delay(1500); // Delay of 1500ms}

Aangepaste onderdelen en behuizingen

Case - upper part
File of the 3D upper part of orange PLA case

https://sketchfab.com/3d-models/case-upper-part-c6843c6613f84805a39e1a9384dd5e56

Case - lower part
File of the 3D lower part of orange PLA case

https://sketchfab.com/3d-models/case-lower-part-covid-19-and-pm10-levels-9d4d2ef93e644065b627c5562c5cde1f

Schema's

Electrical schematic of COVID-19 and PM10 levels!

Productieproces

  1. Plastic voedselverpakkingen en duurzaamheid tijdens COVID-19
  2. Hoe COVID-19 de automatisering in kunststoffen heeft veranderd (en niet heeft veranderd
  3. COVID-19 en de dood van de economie na de Tweede Wereldoorlog
  4. Hoe COVID-19 Blockchain en Cryptocurrency beïnvloedt
  5. COVID-19 en het einde van de jaarlijkse RFP voor verzenders
  6. Wayfair en COVID-19:de impact op belastingvrije verkopers
  7. Omscholing en omscholing in het kielzog van COVID-19
  8. Coronavirus (COVID-19) informatie en bronnen
  9. Nieuwe studie:impact van COVID-19 op de toekomst van werk en automatisering
  10. Materiaal detecteert COVID-19 snel en nauwkeurig
  11. Automatisering en de impact van COVID-19 in de productie