INHOUDSOPGAWE:
- Stap 1: Voorbereiding van sensors
- Stap 2: Voorbereiding van die hoofverwerker
- Stap 3: Voorbereiding van die stelsel
- Stap 4: Berei die datalogging voor
- Stap 5: Berei die gereedskap voor
- Stap 6: Stel die DS1307 Real Time Clock (RTC) op Data Logging Module terug
- Stap 7: Verbinding
- Stap 8: Programmering van die MCU
- Stap 9: Toets dit en gebruik dit
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Hierdie projek sal u wys hoe u 'n eenvoudige sterrewag kan maak met 'n paar bestaande en maklik verkrygbare sensors. Ek het dit inderdaad vir een van my studente gebou. Die student wil uitvind hoe die sonlig die kamertemperatuur en humiditeit beïnvloed. Die belangstellende fisiese hoeveelhede in hierdie projek is (1) ligintensiteit, (2) humiditeit, (3) temperatuur en (4) lugdruk. Met hierdie inligting kan u ander stelsels of toestelle maak om 'n lugversorger, 'n lugbevochtiger of 'n verwarmer te beheer om 'n gemaklike kameromgewing te skep.
Stap 1: Voorbereiding van sensors
U kan die stroombaan bou met die volgende sensors of eenvoudig die moduleborde van die sensors of modulebord koop.
1. Omgevingsligtsensor TEMT6000 (datablad PDF)
2. Druk en temperatuur BMP085 of BMP180 (*dit is ou produkte, u moet moontlik ander alternatiewe vind) (leerdokument van Adafruit)
3. Temperatuur- en humiditeitsensor DHT11 (leerdokument van Adafruit)
4. UV-ligsensor GUVA-S12SD (datablad PDF)
Vir die gebruik van sensors het ek 'n paar verwysingsskakels aangeheg. U kan 'n paar nuttige tutoriale en verwysings op die internet vind.
Stap 2: Voorbereiding van die hoofverwerker
Ek het die Arduino Uno -bord gekies om die stelsel en kodering te toets. Ek het egter gevind dat atmega328P nie genoeg geheue het om die kode te stoor en uit te voer as daar meer sensors bygevoeg word nie. Ek beveel dus aan dat u atmega2560 Arduino -bord gebruik as u meer as 4 sensors benodig.
Mikrobeheerder (MCU):
· Atmega328P -bord vir Arduino
· Of Atmega2560 -bord vir Arduino
Stap 3: Voorbereiding van die stelsel
Ek wil 'n paar fisiese eienskappe buite en binne meet. Uiteindelik het ek die volgende sensors aan 'n Atmega2560 -bord gekoppel.
Binne omgewing:
1. Druk en temperatuur BMP180 x 1 stuks
2. Temperatuur- en humiditeitsensor DHT11 x 1 stuks
Buitelewe omgewing:
1. Omgevingsligtsensor TEMT6000 x 1 stuks
2. Druk en temperatuur BMP085 x 1 stuks
3. Temperatuur- en humiditeitsensor DHT11 x 1 stuks
4. UV-ligsensor GUVA-S12SD x 1 stuks
U vind moontlik dat ek verskillende sensors gebruik het om die druk te meet. Dit is net omdat ek nie 'n BMP180 -modulebord gehad het toe ek die kring gebou het nie. Ek beveel aan dat u dieselfde sensors gebruik as u 'n presiese meting en 'n billike vergelyking nodig het.
Stap 4: Berei die datalogging voor
Boonop wil ek hê dat die toestel die data moet stoor sonder om aan te sluit op 'n rekenaar. Ek het 'n data -aanmeldmodule bygevoeg met 'n intydse klok. Die volgende is die items vir data -aanmelding en draadverbinding.
· SD kaart
· CR1220 muntbattery
· Data logging module vir Arduino (leerdokument van Adafruit)
Stap 5: Berei die gereedskap voor
Die volgende is 'n paar gereedskap of toestelle wat nodig sou wees om die kring te bou.
- 30AWG Wikkelgereedskap
- Soldeerbout
- Soldeerdraad (sonder lood)
- Broodbord
- 2,54 mm kopstukke
- Springdrade
- Draaddrade (30AWG)
- Warm gom
- 3D -druk (as u 'n tas vir u toestel benodig)
- Arduino IDE (ons het dit nodig om die mikrobeheerbord te programmeer)
Stap 6: Stel die DS1307 Real Time Clock (RTC) op Data Logging Module terug
Ek wil die data vir wetenskaplike eksperimente gebruik. 'N Korrekte meettyd is dus belangrik vir data -analise. Deur die vertragings () -funksie in die programmering te gebruik, kan meetfoute tydens tydverskuiwing veroorsaak. Inteendeel, ek weet nie hoe ek presies op die Arduino -platform 'n presiese meting kan doen nie. Om die steekproeftydfout te vermy of die meetfout te verminder, wil ek elke metingsmonster met 'n tydrekord neem. Gelukkig het die data -aanmeldmodule 'n intydse klok (RTC). Ons kan dit gebruik om die tyd vir die steekproefneming van data op te stel.
Om die RTC te gebruik, volg ek die instruksie (skakel) om die RTC terug te stel. Ek beveel aan om dit eers met die Arduino Uno -bord te doen. Dit is omdat u die stroombaan moet verander wanneer die Atmega2560 -bord gebruik word (I2C -verbinding is anders). Nadat u die RTC ingestel het, moet u die cr1220 -battery nie verwyder nie. Kontroleer intussen die toestand van die battery voor die data -aanmelding.
Stap 7: Verbinding
Ek het die binne en buite meting geskei. Ek het dus twee opskrifte gemaak om twee verskillende groepe sensors aan te sluit. Ek het die leë spasie op die data -aanmeldmodule gebruik vir die montering van die opskrifte. Om die kringverbinding te voltooi, gebruik ek soldeer en verpakking. Die verpakkingsproses is skoon en handig, terwyl die soldeerbout sterk en veilig is. U kan 'n gemaklike metode kies om die stroombaan te bou. As u die Atmega2560 -bord gebruik, moet u seker maak dat u 'n springverbinding vir SDA- en SCL -penne gebou het. Die verbinding van die RTC op die datalogskerm moet weer verbind word.
Om die sensors aan te sluit, het ek die kopstukke op die sensormodules gesoldeer en dan 'n draadomwikkeling gebruik om alle sensors aan die opskrifte te koppel. As u uitstaande sensormodules gebruik, het ek aanbeveel dat u die werkspanning noukeurig nagaan. Sommige sensormodules aanvaar beide 5V en 3.3V insette, maar sommige is beperk tot slegs 5V of 3.3V. Die volgende tabel toon die gebruikte sensormodules en die werkspanning.
Tabel. Sensormodule en werkspanning
Stap 8: Programmering van die MCU
Gelukkig kan ek die toepassingsvoorbeelde vir al die sensors vind. As u nuut is om dit te gebruik, kan u dit op die internet aflaai, of u kan dit installeer deur die biblioteekbestuurder in Arduino IDE te gebruik.
Ek het die stelseluitvoer 'n string vir elke monster geprogrammeer. Die string word uitgevoer en gestoor op die gemonteerde SD -kaart. As u die data wil sien, skakel die toestel af en ontkoppel die SD -kaart. Dan kan u die SD -kaart aan 'n kaartleser koppel. Die lêer sal as 'n csv -lêer gestoor word. Nadat u die datalêer na die rekenaar afgelaai het, kan u dit met 'n teksprogram of 'n werkbladprogram bekyk.
(U kan die bronkode in die aangehegte lêer aflaai.)
Stap 9: Toets dit en gebruik dit
Dit is belangrik dat u die betekenis van die data verstaan. Bemonsteringsfrekwensie is een van die belangrike parameters. Die huidige tydsinterval vir meting is 1 min. U moet dit moontlik verander.
Boonop vind u dat die temperatuurmeting van DHT11 nie akkuraat is nie. As u 'n meer presiese waarde benodig, kan u die temperatuurmeting van BMP -druksensors gebruik.
Dankie dat u dit gelees het!