- Hva er uklarhet i væske?
- Hvordan måle turbiditet ved hjelp av Arduino?
- Komponenter som trengs for å lage turbiditetsmåler
- Oversikt over turbiditetssensor
- Nøkkelfunksjoner i turbiditetsmodulen
- Grensesnitt turbiditetssensor med Arduino - kretsdiagram
- Programmering av Arduino for å måle turbiditet i vann
Når det gjelder væsker, er turbiditet et viktig begrep. Fordi det spiller en viktig rolle i væskedynamikk og brukes også til å måle vannkvaliteten. Så i denne opplæringen, la oss diskutere hva som er uklarhet, hvordan man måler uklarheten til en væske ved hjelp av Arduino. Hvis du vil ta dette prosjektet videre, kan du også vurdere å grense en pH-meter med Arduino og også lese pH-verdien til vann for å bedre vurdere kvaliteten på vannet. Tidligere har vi også bygget en IoT-basert vannkvalitetsovervåkingsenhet ved hjelp av ESP8266, du kan også sjekke det ut hvis du er interessert. Når det er sagt, la oss komme i gang
Hva er uklarhet i væske?
Turbiditet er graden eller graden av uklarhet eller uklarhet i en væske. Dette skjer på grunn av tilstedeværelsen av et stort antall usynlige partikler (med det blotte øye) som ligner på hvit røyk i luften. Når lys passerer gjennom væsker, blir lysbølger spredt på grunn av tilstedeværelsen av disse små partiklene. Turbiditeten til en væske er direkte proporsjonal med de frie suspenderte partiklene, det vil si hvis antall partikler øker turbiditeten også vil øke.
Hvordan måle turbiditet ved hjelp av Arduino?
Som jeg nevnte tidligere, skjer uklarhet på grunn av spredning av lysbølger, for å måle uklarheten, bør vi måle spredningen av lys. Turbiditet måles vanligvis i nefelometriske turbiditetsenheter (NTU) eller Jackson turbiditetsenheter (JTLJ), avhengig av metoden som brukes til måling. De to enhetene er omtrent like.
La oss nå se hvordan en turbiditetssensor fungerer, den har to deler, sender og mottaker. Senderen består av en lyskilde, typisk en ledet og en førerkrets. I mottakerenden er det en lysdetektor som en fotodiode eller en LDR. Vi plasserer løsningen mellom sender og mottaker.
Senderen overfører ganske enkelt lyset, at lysbølger passerer gjennom løsningen og mottakeren mottar lyset. Normalt (uten tilstedeværelse av en løsning) mottar det overførte lyset helt på mottakersiden. Men i nærvær av en uklar løsning er mengden overført lys veldig lav. Det er på mottakersiden, vi får bare et lys med lav intensitet og denne intensiteten er omvendt proporsjonal med uklarheten. Så vi kan måle uklarheten ved å måle lysintensiteten hvis lysintensiteten er høy, løsningen er mindre uklar og hvis lysintensiteten er veldig lav betyr det at løsningen er mer uklar.
Komponenter som trengs for å lage turbiditetsmåler
- Grumhetsmodul
- Arduino
- 16 * 2 I2C LCD
- Vanlig katode RGB LED
- Brettbrett
- Jumper ledninger
Oversikt over turbiditetssensor
Turbiditetssensoren som brukes i dette prosjektet er vist nedenfor.
Som du kan se, kommer denne turbiditetssensormodulen med 3 deler. En vanntett ledning, en førerkrets og en tilkoblingsledning. Testesonden består av både sender og mottaker.
Ovenstående bilde viser, denne typen moduler bruker en IR-diode som lyskilde og en IR-mottaker som en detektor. Men arbeidsprinsippet er det samme som før. Førerdelen (vist nedenfor) består av en op-amp og noen komponenter som forsterker det oppdagede lyssignalet.
Selve sensoren kan kobles til denne modulen ved hjelp av en JST XH-kontakt. Den har tre pinner, VCC, jord og utgang. Vcc kobles til 5v og jord til jord. Utgangen til denne modulen er en analog verdi, det vil si at den endres i henhold til lysintensiteten.
Nøkkelfunksjoner i turbiditetsmodulen
- Driftsspenning: 5VDC.
- Strøm: 30mA (MAX).
- Driftstemperatur: -30 ° C til 80 ° C.
- Kompatibel med Arduino, Raspberry Pi, AVR, PIC, etc.
Grensesnitt turbiditetssensor med Arduino - kretsdiagram
Det komplette skjemaet for å koble turbiditetssensoren til Arduino er vist nedenfor, kretsen ble designet med EasyEDA.
Dette er et veldig enkelt kretsskjema. Utgangen fra turbiditetssensoren er analog, slik at den er koblet til Arduinos A0-pinne, I2C LCD koblet til I2C-pinnene på Arduino som er SCL til A5 og SDA til A4. Deretter koblet RGB LED til digital pin D2, D3 og D4. Etter at tilkoblingene er gjort, ser maskinvareoppsettet mitt slik ut nedenfor.
Koble sensorens VCC til Arduino 5v, og koble deretter jord til jord. Utgangspinnen til sensoren til analog 0 av Arduino. Deretter kobler du VCC og bakken til LCD-modulen til 5v og bakken til Arduino. Deretter SDA til A4 og SCL til A5, disse to pinnene er I2C-pinnene til Arduino. kobler til slutt bakken til RGB LED til bakken til Arduino og kobler grønt til D3, blå til D4 og rød til D5.
Programmering av Arduino for å måle turbiditet i vann
Planen er å vise uklarhetsverdiene fra 0 til 100. Det vil si at måleren skal vise 0 for ren væske og 100 for svært uklar. Denne Arduino-koden er også veldig enkel, og den komplette koden finner du nederst på denne siden.
Først inkluderte jeg I2C flytende krystallbibliotek fordi vi bruker en I2C LCD for å minimere tilkoblingene.
# inkluderer
Så setter jeg heltall for sensorinngang.
int sensorPin = A0;
I oppsettdelen definerte jeg pinnene.
pinMode (3, OUTPUT); pinMode (4, OUTPUT); pinMode (5, OUTPUT);
I sløyfeseksjonen, som jeg nevnte tidligere, er utgangen til sensoren en analog verdi. Så vi må lese disse verdiene. Ved hjelp av Arduino AnalogRead- funksjonen kan vi lese utgangsverdiene i loop-delen.
int sensorValue = analogRead (sensorPin);
Først må vi forstå oppførselen til sensoren vår, noe som betyr at vi må lese minimumsverdien og maksimumsverdien til turbiditetssensoren. Vi kan lese den verdien på den serielle skjermen ved hjelp av serial.println- funksjonen.
For å få disse verdiene, må du først lese sensoren fritt uten løsning. Jeg fikk en verdi rundt 640, og etter det, plasser et svart stoff mellom senderen og mottakeren, får vi en verdi som er minimumsverdien, vanligvis er den verdien null. Så vi fikk 640 som maksimum og null som minimum. Nå må vi konvertere disse verdiene til 0-100
For det brukte jeg kartfunksjonen til Arduino.
int turbiditet = kart (sensorValue, 0,640, 100, 0);
Så viste jeg de verdiene på LCD-skjermen.
lcd.setCursor (0, 0); lcd.print ("turbiditet:"); lcd.print (""); lcd.setCursor (10, 0); lcd.print (turbiditet);
Etter det, ved hjelp av if conditions, ga jeg forskjellige betingelser.
hvis (turbiditet <20) { digitalWrite (2, HIGH); digitalWrite (3, LAV); digitalWrite (4, LAV); lcd.setCursor (0, 1); lcd.print ("det er KLAR"); }
Dette vil aktivere grønt lys og vise "det er klart" på LCD hvis uklarhetsverdien er under 20.
hvis ((turbiditet> 20) && (turbiditet <50)) { digitalWrite (2, LAV); digitalWrite (3, HØY); digitalWrite (4, LAV); lcd.setCursor (0, 1); lcd.print ("dens CLOUDY"); }
Dette vil aktivere blått lys og vise "det er overskyet" på LCD hvis uklarhetsverdien er mellom 20 og 50.
hvis ((uklarhet> 50) { digitalWrite (2, LOW); digitalWrite (3, HIGH); digitalWrite (4, LOW); lcd.setCursor (0, 1); lcd.print ("its DIRTY"); }
Dette vil aktivere rødt og vise "det er skittent" på LCD hvis uklarhetsverdien er større enn 50 som vist nedenfor.
Bare følg kretsskjemaet og last opp koden. Hvis alt går riktig, bør du kunne måle vannets uklarhet, og LCD-skjermen skal vise kvaliteten på vannet som vist ovenfor.
Vær oppmerksom på at denne uklarhetsmåleren viser prosentandelen av uklarheten, og at den kanskje ikke er en nøyaktig industriell verdi, men likevel kan den brukes til å sammenligne vannkvaliteten til to vann. Komplett arbeid av dette prosjektet finner du i videoen nedenfor. Håper du likte opplæringen og lærte noe nyttig hvis du har spørsmål, kan du legge dem igjen i kommentarseksjonen nedenfor eller bruke CircuitDigest-fora for å legge ut tekniske spørsmål eller starte en relevant diskusjon.