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 izmjena: 2024-01-30 08:07
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. Ovu osnovnu postavku možemo koristiti za dovršavanje niza zadataka.
Za početak:
Trebat će vam Tinkercad (www.tinkercad.com) račun. Pređite i prijavite se pomoću svoje e -pošte ili računa na društvenim medijima.
Prijavljivanje vas vodi na Tinkercad kontrolnu ploču. Kliknite "Krugovi" s lijeve strane i odaberite "Kreiraj novi krug". Hajde da počnemo!
Kompletnu datoteku možete pronaći na TInkercad Circuits - Hvala što ste je provjerili!
Korak 1: Dodajte neke komponente
Trebat će vam neke osnovne komponente. Ovo uključuje:
- Arduino ploča
- Breadboard
Dodajte ih tako što ćete ih tražiti i kliknuti i povući u srednje područje.
Postavite ploču preko Arduina. Olakšava kasnije pregled veza.
Korak 2: Napomena o oglasnim pločama
Matična ploča je super 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 gornje i donje kolone.
- Kolone nisu povezane slijeva nadesno, kao u drugom redu. To znači da bi sve komponente trebale biti povezane preko stupova, a ne okomito prema dolje.
- Ako trebate koristiti tipke 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.
Ovi senzori procjenjuju svjetlost i temperaturu. Koristimo Arduino za čitanje vrijednosti i prikaz na Serijskom monitoru na Arduinu.
Potražite i dodajte dva senzora. Uvjerite se da su postavljeni preko stupaca na matičnoj ploči. Stavite dovoljno prostora između njih kako biste ih lakše vidjeli.
Korak 4: Fotoosjetljivi senzor
- Za fotoosjetljivi senzor, dodajte žicu sa 5V pina na Arduinu u istu kolonu kao i desna noga na dijelu u ploči. Promijenite boju žice u crvenu.
- Spojite lijevu nogu preko pina u istoj koloni na pin A0 (A-nula) na Arduinu. Ovo je analogni pin, koji ćemo koristiti za očitavanje vrijednosti 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. Ovo dovršava krug i štiti senzor i iglu.
- 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, ovo neće funkcionirati ispravno.
Korak 5: Pokrenite kôd
Pogledajmo kod za ovu komponentu.
Prvo 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. Ime je postavljeno i funkcija ne uzima argumente.
Funkcija postavljanja pokreće se jednom prilikom pokretanja 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 da smo definirali i pozvali drugu funkciju izvan petlje.
Zadatak
Otvorite kodnu ploču s gumbom u Tinkercadu. Promijenite padajući izbornik Blokovi na 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 zaista efikasnim.
Varijable su poput kante 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. Kada dodjeljujemo varijablu, moramo joj reći koje je vrste, a zatim joj dati vrijednost. To 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 da 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 da se pozivamo na ovaj cijeli broj bez da znamo što je to. Kad bismo samo upisali 0, pozvali bismo se na digitalni pin na poziciji 0, koji ne bi funkcionirao.
Dakle, za naš kôd ćemo napisati varijablu za senzor koji smo priključili. Iako preporučujem da mu date jednostavno ime, na vama je.
Vaš kod bi trebao izgledati ovako:
int lightSensor = A0;
void setup () {} void loop () {}
Sada, recimo Arduinu kako se rukuje sa senzorom na tom pinu. Pokrenut ćemo funkciju unutar postavke za postavljanje pin načina i reći Arduinu gdje ga treba tražiti.
int lightSensor = A0;
void setup () {pinMode (lightSensor, INPUT); } void loop () {}
funkcija pinMode govori Arduinu da će se pin (A0) koristiti kao INPUT pin. Obratite pažnju na camelCaseUsed (pogledajte svako prvo slovo veliko, jer u njemu ima grba, dakle … kamila …!) Za varijable i nazive funkcija. Ovo je konvencija i na nju se dobro naviknuti.
Konačno, upotrijebimo funkciju analogRead da bismo dobili neke podatke.
int lightSensor = A0;
void setup () {pinMode (lightSensor, INPUT); } void loop () {int čitanje = analogRead (lightSensor); }
Vidjet ćete da smo spremili očitanje u varijablu. Ovo je važno jer ga moramo odštampati. Koristimo Serijsku biblioteku (biblioteka je kôd koji možemo dodati u naš kôd kako bismo ubrzali pisanje, samo pozivanjem po svojoj definiciji) za ispis na serijski monitor.
int lightSensor = A0;
void setup () {// Postavljanje pin načina pinMode (lightSensor, INPUT); // Dodavanje serijske biblioteke Serial.begin (9600); } void loop () {// Očitavanje int očitanja senzora = analogRead (lightSensor); // Odštampajte vrijednost na monitoru Serial.print ("Light:"); Serial.println (čitanje); // odgoditi sljedeću petlju sa 3 sekunde kašnjenja (3000); }
Nekoliko novih stvari! Prvo ćete vidjeti ove:
// Ovo je komentar
Koristimo komentare da drugim ljudima kažemo šta radi naš kôd. Ove biste trebali često koristiti. Kompajler 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. Pozvali ste biblioteku 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.
Sledeće što smo uradili je štampanje na serijskom monitoru. 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 red Serial.println (čitanje);
Ono što je važno vidjeti je da svaka od njih ima zasebnu svrhu. Uvjerite se da vaši nizovi koriste dvostruke navodnike i da ostavite razmak nakon 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 hiljadama sekundi. Promijenite ga u čitanje samo jednom svakih 5 sekundi.
Odlično! Idemo!
Korak 6: Simulacija
Uvijek provjerite rade li stvari pokretanjem simulacije. Za ovo kolo, također ćete morati otvoriti simulator da provjerite radi li i provjerite svoje vrijednosti.
Pokrenite simulaciju i provjerite serijski monitor. Promijenite vrijednost svjetlosnog senzora klikom na nju i promijenite vrijednost 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 greške, pažljivo se vratite i provjerite sav svoj kôd.
- Fokusirajte se na linije označene u crvenom prozoru za otklanjanje grešaka koje će vam biti predstavljene.
- Ako je vaš kôd ispravan, a simulacija i dalje ne radi, provjerite ožičenje.
- Ponovo učitajte stranicu - možda imate grešku sistema/servera koja nije povezana.
- Protresite pesnicom računar i proverite ponovo. Svi programeri to rade. Sve. The. Vrijeme.
Korak 7: Povežite senzor temperature
Pretpostavit ću da ste sada na pravom putu. Samo naprijed i povežite senzor temperature kao što slika sugerira. Obratite pažnju na postavljanje žica 5V i GND u isti prostor kao i one za svjetlo. Ovo je u redu. To je poput paralelnog kola i neće uzrokovati probleme u simulatoru. U stvarnom 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 napraviti matematiku da pretvorimo čitanje. Nije tako loše.
int lightSensor = A0;
int tempSensor = A1; void setup () {// Postavljanje pin načina pinMode (lightSensor, INPUT); // Dodavanje serijske biblioteke Serial.begin (9600); } void loop () {// Temp senzor // Kreiranje dvije varijable u jednoj liniji - oh efikasnost! // Float var za spremanje decimalnog plivajućeg napona, stupnjevaC; // Očitajte vrijednost pina i pretvorite je u očitanje od 0 - 5 // U suštini napon = (5/1023 = 0.004882814); napon = (analogno čitanje (senzor temp.) * 0,004882814); // Pretvori u stupnjeve C stupnjevaC = (napon - 0,5) * 100; // Ispis na serijskom monitoru Serial.print ("Temp:"); Serial.print (stupnjeviC); Serial.println ("oC"); // Očitavanje int očitanja senzora = analogRead (lightSensor); // Odštampajte vrijednost na monitoru Serial.print ("Light:"); Serial.println (čitanje); // odgoditi sljedeću petlju sa 3 sekunde kašnjenja (3000); }
Napravio sam neke izmjene u kodu. Prođimo kroz njih pojedinačno.
Prvo sam dodao liniju
int tempSensor = A1;
Baš kao i lightSensor, moram pohraniti vrijednost u varijablu kako bih kasnije olakšala. Ako moram promijeniti lokaciju 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 broj. Obratite pažnju na dvije varijable u jednoj liniji.
plivajući napon, stepeniC;
Ovo je zaista korisno jer smanjuje broj redova koje moram napisati i ubrzava kod. Međutim, pronalaženje grešaka može biti teže.
Sada ćemo pročitati i pohraniti ga, a zatim ga pretvoriti u našu izlaznu vrijednost.
napon = (analogno čitanje (senzor temp.) * 0,004882814);
stupnjeviC = (napon - 0,5) * 100;
Te dvije linije izgledaju teško, ali u prvom uzimamo čitanje i množimo ga sa 0,004 … jer pretvara 1023 (analogno čitanje vraća ovu vrijednost) u očitavanje od 5.
Drugi red tamo množi to čitanje sa 100 za pomicanje decimalnog zareza. To nam daje temperaturu. Uredno!
Korak 8: Testiranje i provjera
Sve što se planira, trebali biste imati radni krug. Testirajte pokretanjem simulacije i upotrebom serijskog monitora. Ako imate grešaka, provjerite, provjerite ponovo i odmahnite pesnicom.
Jeste li uspjeli? Podijelite i ispričajte nam svoju priču!
Ovo je posljednji sklop ugrađen za vas, tako da možete igrati/testirati konačnu kreaciju. Hvala što ste završili vodič!
Preporučuje se:
GPS Para Norma (Datalogger EEPROM): 5 koraka
GPS Para Norma (Datalogger EEPROM): Jednostavan GPS datalogger za kućne ljubimce zasnovan na arduino i EEPROM snimanju ================================ ============================ Sencillo datalogger GPS za maskote basado i arduino i memoriju EEPROM
Alaska Datalogger: 5 koraka (sa slikama)
Aljaski datalogger: Aljaska je na ivici napredovanja klimatskih promjena. Njegov jedinstveni položaj s prilično netaknutim krajolikom naseljenim raznim kanarincima rudnika uglja omogućuje mnoge istraživačke mogućnosti. Naš prijatelj Monty je arheolog koji pomaže
Arduino Datalogger sa RTC -om, Nokia LCD -om i koderom: 4 koraka
Arduino Datalogger sa RTC-om, Nokia LCD-om i enkoderom: Dijelovi: Arduino Nano ili Arduino Pro Mini Nokia 5110 84x48 LCD DHT11 senzor temperature/vlažnosti DS1307 ili DS3231 RTC modul s ugrađenim AT24C32 EEPROM Jeftini koder s 3 kondenzatora za otklanjanje Značajke: GUI zasnovan na Nokia LCD-u i en
ESP32 ADXL345 DATALOGGER S GPS_EXT RAM_EXT_RTC: 8 koraka
ESP32 ADXL345 DATALOGGER 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
Raspberry Pi Zero W Datalogger: 8 koraka (sa slikama)
Raspberry Pi Zero W Datalogger: Pomoću Raspberry Pi Zero W možete napraviti jeftin i jednostavan za korištenje datalogger, koji se može spojiti na lokalnu WiFi mrežu ili poslužiti kao pristupna točka u polju koja vam omogućuje preuzimanje podataka bežično sa vašim pametnim telefonom. Predstavljam