Sadržaj:
- Korak 1: Dodajte neke komponente
- Korak 2: Napomena o oglasnim pločama
- Korak 3: Dodajte dva senzora
- Korak 4: Fotoosjetljivi senzor
- Korak 5: Pokrenite kôd
- Korak 6: Simulacija
- Korak 7: Povežite senzor temperature
- Korak 8: Testiranje i provjera
Video: Arduino Datalogger: 8 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
U ovom ćemo vodiču napraviti jednostavan zapisnik podataka pomoću Arduina. Poanta je naučiti same osnove korištenja Arduina za hvatanje informacija i ispis na terminalu. Ovim osnovnim postavljanjem možemo dovršiti niz zadataka.
Započeti:
Trebat će vam Tinkercad (www.tinkercad.com) račun. Pređite i prijavite se svojom e -poštom ili računom na društvenim mrežama.
Prijava će vas odvesti na nadzornu ploču Tinkercada. Kliknite "Krugovi" s lijeve strane i odaberite "Izradi novi krug". Započnimo!
Cijelu datoteku možete pronaći na TInkercad Circuits - Hvala što ste je provjerili!
Korak 1: Dodajte neke komponente
Trebat će vam neke osnovne komponente. To uključuje:
- Arduino ploča
- Oglasna ploča
Dodajte ih tako da ih potražite i kliknete i povučete u srednje područje.
Postavite ploču iznad Arduina. Olakšava kasnije pregled veza.
Korak 2: Napomena o oglasnim pločama
Matična ploča je izuzetno koristan uređaj za brzu izradu prototipova. Koristimo ga za povezivanje komponenti. Neke stvari treba napomenuti.
- Točke su povezane okomito, ali linija u sredini razdvaja ovu vezu od gornjeg i donjeg stupca.
- Stupci nisu povezani slijeva nadesno, kao u drugom redu. To znači da bi sve komponente trebale biti povezane preko stupova, a ne okomito prema njima.
- Ako trebate koristiti gumbe ili prekidače, spojite ih preko razdora u sredini. Ovo ćemo posjetiti u kasnijem vodiču.
Korak 3: Dodajte dva senzora
Dva senzora koja koristimo su fotoosjetljivi senzor i temperaturni senzor.
Ti senzori procjenjuju svjetlost i temperaturu. Koristimo Arduino za čitanje vrijednosti i prikaz u serijskom monitoru na Arduinu.
Potražite i dodajte dva senzora. Provjerite jesu li postavljeni preko stupaca na ploči. Između njih ostavite dovoljno prostora kako biste ih lakše vidjeli.
Korak 4: Fotoosjetljivi senzor
- Za fotoosjetljivi senzor dodajte žicu s 5V pina na Arduinu u isti stupac kao i desna noga na dijelu u ploči za izradu kruga. Promijenite boju žice u crvenu.
- Spojite lijevu nogu preko pina u istom stupcu s pinom A0 (A-nula) na Arduinu. Ovo je analogni pin, kojim ćemo očitati vrijednost sa senzora. Obojite ovu žicu u žuto ili u nešto drugo osim u crveno ili crno.
-
Postavite otpornik (pretražite i kliknite i povucite) na ploču. Time se dovršava krug i štite senzor i pin.
- Okrenite ga tako da ide preko stupova.
- Spojite jednu nogu u desnu kolonu na ploči
-
Postavite žicu s drugog kraja otpornika na masu
Promijenite boju žice u crnu
- Dvaput provjerite sve veze. Ako nešto nije na pravom mjestu, to neće raditi ispravno.
Korak 5: Pokrenite kôd
Pogledajmo kod za ovu komponentu.
Najprije pogledajte treću sliku u ovom koraku. Sadrži kôd s dvije funkcije:
void setup ()
void loop ()
U C ++, sve funkcije pružaju svoj povratni tip, zatim ime, zatim dvije okrugle zagrade koje se mogu koristiti za prosljeđivanje argumenata, obično kao varijable. U ovom slučaju, tip povratka je ništavan ili ništa. Naziv je postavljen i funkcija ne uzima argumente.
Funkcija postavljanja pokreće se jednom pri pokretanju Arduina (kada ga priključite ili priključite baterije).
Funkcija petlje radi u konstantnoj petlji od milisekunde koju funkcija postavljanja dovršava.
Sve što stavite u funkciju petlje pokrenut će se kada se pokrene Arduino. Sve izvan toga će se pokrenuti samo kada se pozove. Kao kad bismo definirali i pozvali drugu funkciju izvan petlje.
Zadatak
Otvorite ploču Kôd s gumbom u Tinkercadu. Promijenite padajući izbornik Blokovi u Tekst. Prihvatite okvir upozorenja koji će se pojaviti. Sada izbrišite sve što vidite osim teksta na trećoj slici u ovom koraku.
Varijable
Za početak moramo dodijeliti neke varijable kako bismo naš kod učinili doista učinkovitim.
Varijable su poput kanti koje mogu držati samo jedan objekt (C ++ je ono što nazivamo objektno orijentirano). Da, imamo nizove, ali to su posebne varijable i o njima ćemo kasnije govoriti. Kad dodjeljujemo varijablu, moramo joj reći koje je vrste, a zatim joj dati vrijednost. Izgleda ovako:
int someVar = A0;
Dakle, dodijelili smo varijablu i dali joj tip int. Int je cijeli broj ili cijeli broj.
"Ali niste koristili cijeli broj!", Čujem vas kako govorite. To je istina.
Arduino čini nešto posebno za nas pa možemo koristiti A0 kao cijeli broj, jer u drugoj datoteci definira A0 kao cijeli broj, tako da možemo koristiti konstantu A0 za pozivanje na ovaj cijeli broj bez da moramo znati što je to. Kad bismo samo upisali 0, pozvali bismo se na digitalni pin na poziciji 0, što ne bi funkcioniralo.
Dakle, za naš kôd napisat ćemo varijablu za senzor koji smo priključili. Iako preporučujem da mu date jednostavno ime, to ovisi o vama.
Vaš kod bi trebao izgledati ovako:
int svjetlosni senzor = A0;
void setup () {} void loop () {}
Sada, recimo Arduinu kako se rukuje sa senzorom na tom pinu. Pokrenut ćemo funkciju unutar postavki za postavljanje pin načina i reći Arduinu gdje ga treba tražiti.
int svjetlosni senzor = A0;
void setup () {pinMode (lightSensor, INPUT); } void loop () {} {100} {101}
funkcija pinMode govori Arduinu da će se pin (A0) koristiti kao ulaz INPUT. Zabilježite camelCaseUsed (pogledajte svako prvo slovo veliko, jer ima grbe, stoga … deva …!) Za varijable i nazive funkcija. Ovo je konvencija i na nju se dobro naviknuti.
Konačno, upotrijebimo funkciju analogRead za dobivanje podataka.
int svjetlosni senzor = A0;
void setup () {pinMode (lightSensor, INPUT); } void loop () {int čitanje = analogRead (lightSensor); }
Vidjet ćete da smo čitanje spremili u varijablu. Ovo je važno jer ga moramo ispisati. Upotrijebimo Serijsku knjižnicu (knjižnica je kôd koji možemo dodati u svoj kôd kako bismo ubrzali pisanje, samo pozivanjem po svojoj definiciji) za ispis na serijski monitor.
int svjetlosni senzor = A0;
void setup () {// Postavite pin načine pinMode (lightSensor, INPUT); // Dodavanje serijske knjižnice Serial.begin (9600); } void loop () {// Očitavanje int očitanja senzora = analogRead (lightSensor); // Ispisuje vrijednost na monitor Serial.print ("Svjetlo:"); Serial.println (čitanje); // odgoditi sljedeću petlju za 3 sekunde odgode (3000); }
Nekoliko novih stvari! Prvo ćete vidjeti ove:
// Ovo je komentar
Koristimo komentare kako bismo drugim ljudima rekli što naš kôd radi. Ove biste trebali često koristiti. Prevodilac ih neće pročitati i pretvoriti u kod.
Sada smo linijom dodali i serijsku biblioteku
Serial.begin (9600)
Ovo je primjer funkcije koja uzima argument. Nazvali ste knjižnicu Serial, a zatim pokrenuli funkciju (znamo da je to funkcija zbog okruglih zagrada) i proslijedili cijeli broj kao argument, postavljajući funkciju Serial da radi na 9600baud. Ne brinite zašto - samo znajte da radi, za sada.
Sljedeće što smo učinili je ispis na serijski monitor. Koristili smo dvije funkcije:
// Ovaj se ispisuje u seriju bez prijeloma retka (unos na kraju)
Serial.print ("Svjetlo:"); // Ovaj stavlja prelom retka pa svaki put kad čitamo i pišemo, ide na novi redak Serial.println (čitanje);
Ono što je važno vidjeti je da svaki ima zasebnu svrhu. Pazite da vaši nizovi koriste dvostruke navodnike i da ostavite razmak iza dvotočke. To korisniku pomaže u čitljivosti.
Konačno, upotrijebili smo funkciju odgode, kako bismo usporili petlju i učinili da se čita samo jednom u tri sekunde. Ovo je zapisano u tisućama sekundi. Promijenite ga u čitanje samo jednom svakih 5 sekundi.
Sjajno! Idemo!
Korak 6: Simulacija
Uvijek provjerite rade li simulacije. Za ovaj krug također ćete morati otvoriti simulator da provjerite radi li i provjeriti svoje vrijednosti.
Pokrenite simulaciju i provjerite serijski monitor. Promijenite vrijednost svjetlosnog senzora klikom na nju i promjenom vrijednosti pomoću klizača. Trebali biste vidjeti promjenu vrijednosti i na serijskom monitoru. Ako se to ne dogodi, ili ako pritisnete gumb Pokreni simulaciju dobijete pogreške, pažljivo se vratite i provjerite sav svoj kôd.
- Usredotočite se na linije označene u crvenom prozoru za otklanjanje pogrešaka koji će vam se prikazati.
- Ako je vaš kôd ispravan, a simulacija i dalje ne radi, provjerite ožičenje.
- Ponovno učitajte stranicu - možda imate grešku sustava/poslužitelja koji nije povezan.
- Protresite šakom računalo i provjerite ponovo. To rade svi programeri. Svi. The. Vrijeme.
Korak 7: Povežite senzor temperature
Pretpostavit ću da ste sada na pravom putu. Samo naprijed i priključite senzor temperature kao što slika sugerira. Obratite pozornost na postavljanje žica 5V i GND u isti prostor kao i one za svjetlo. Ovo je u redu. To je poput paralelnog kruga i neće uzrokovati probleme u simulatoru. U stvarnom strujnom krugu trebali biste upotrijebiti zaštitnu ploču ili štit za bolje upravljanje napajanjem i povezivanjem.
Ajmo sada ažurirati kod.
Kod senzora temperature
Ovo je malo zeznutije, ali samo zato što moramo malo izračunati da pretvorimo čitanje. Nije tako loše.
int svjetlosni senzor = A0;
int tempSensor = A1; void setup () {// Postavite pin načine pinMode (lightSensor, INPUT); // Dodavanje serijske knjižnice Serial.begin (9600); } void loop () {// Temp senzor // Stvaranje dvije varijable u jednom retku - oh učinkovitost! // Float var za spremanje decimalnog plivajućeg napona, stupnjevaC; // Očitajte vrijednost pina i pretvorite je u očitanje od 0 - 5 // U biti napon = (5/1023 = 0,004882814); napon = (analogno čitanje (tempSensor) * 0,004882814); // Pretvori u stupnjeve C stupnjevaC = (napon - 0,5) * 100; // Ispis na serijski monitor Serial.print ("Temp:"); Serijski.ispis (stupnjeviC); Serial.println ("oC"); // Očitavanje int očitanja osjetnika = analogRead (lightSensor); // Ispisuje vrijednost na monitor Serial.print ("Svjetlo:"); Serial.println (čitanje); // odgoditi sljedeću petlju za 3 sekunde odgode (3000); }
Uradio sam neke izmjene u kodu. Prođimo kroz njih pojedinačno.
Prvo sam dodao redak
int tempSensor = A1;
Baš kao i lightSensor, moram pohraniti vrijednost u varijablu kako bih kasnije olakšala. Ako moram promijeniti mjesto ovog senzora (poput ponovnog ožičenja ploče), moram promijeniti samo jedan red koda, a ne pretraživati cijelu bazu kodova da bih promijenio A0 ili A1 itd.
Zatim smo dodali redak za spremanje očitanja i temp u plutajući. Zabilježite dvije varijable u jednom retku.
plivajući napon, stupnjeviC;
Ovo je jako korisno jer smanjuje broj redaka koje moram napisati i ubrzava kod. Ipak, može biti teže pronaći pogreške.
Sada ćemo pročitati i spremiti ga, a zatim ga pretvoriti u našu izlaznu vrijednost.
napon = (analogno čitanje (tempSensor) * 0,004882814);
stupnjeviC = (napon - 0,5) * 100;
Ta dva retka izgledaju teško, ali u prvom uzimamo očitanje i množimo ga s 0,004 … jer pretvara 1023 (analogno očitanje vraća ovu vrijednost) u očitanje od 5.
Drugi redak pomnoži to očitanje sa 100 za pomicanje decimalne točke. To nam daje temperaturu. Uredan!
Korak 8: Testiranje i provjera
Sve što se planira, trebali biste imati radni krug. Testirajte pokretanjem simulacije i korištenjem serijskog monitora. Ako imate grešaka, provjerite, provjerite ponovo i protresite šakom.
Jeste li uspjeli? Podijelite i ispričajte nam svoju priču!
Ovo je posljednji sklop ugrađen za vas pa možete igrati/testirati konačnu kreaciju. Hvala što ste dovršili vodič!
Preporučeni:
GPS Para Norma (Datalogger EEPROM): 5 koraka
GPS Para Norma (Datalogger EEPROM): Jednostavan GPS datalogger za kućne ljubimce na temelju arduino i EEPROM snimanja ================================ ======================== Sencillo datalogger GPS za maskote basado en arduino y grabacion i memorija EEPROM
Kako: Instaliranje Raspberry PI 4 bez glave (VNC) s Rpi-imagerom i slikama: 7 koraka (sa slikama)
Kako: Instaliranje Raspberry PI 4 Headless (VNC) s Rpi-imagerom i slikama: Planiram koristiti ovaj Rapsberry PI u hrpi zabavnih projekata na svom blogu. Slobodno provjerite. Htio sam se vratiti korištenju Raspberry PI -a, ali nisam imao tipkovnicu ili miš na novoj lokaciji. Prošlo je dosta vremena od postavljanja maline
Alaska Datalogger: 5 koraka (sa slikama)
Alaska Datalogger: Aljaska je na rubu napredovanja klimatskih promjena. Njegov jedinstveni položaj s prilično netaknutim krajolikom naseljenim raznim kanarincima rudnika ugljena omogućuje mnoge mogućnosti istraživanja. Naš prijatelj Monty je arheolog koji pomaže
Arduino Datalogger s RTC -om, Nokia LCD -om i koderom: 4 koraka
Arduino Datalogger s RTC-om, Nokia LCD-om i enkoderom: Dijelovi: Arduino Nano ili Arduino Pro Mini Nokia 5110 84x48 LCD DHT11 osjetnik temperature/vlažnosti DS1307 ili DS3231 RTC modul s ugrađenim AT24C32 EEPROM Jeftin koder s 3 kondenzatora za otklanjanje značajki Značajke: GUI temeljen na Nokia LCD-u i en
ESP32 ADXL345 DATALOGGER S GPS_EXT RAM_EXT_RTC: 8 koraka
ESP32 ADXL345 DATALOGOG S GPS_EXT RAM_EXT_RTC: Za one od vas koji se igraju s Wemos 32 LOLIN pločom mislio sam da ću početi dokumentirati neke svoje dosadašnje nalaze. Trenutni projekt je povezivanje s ADXL345 akcelerometrom i kao što fotografija prikazuje gore i uspješno su se povezali