Sadržaj:
- Pribor
- Korak 1: Izgradite svoj krug:
- Korak 2: Programiranje vašeg Arduina:
- Korak 3: Programiranje Pythona u grafičke podatke s Arduina:
- Korak 4: Završni program za provjeru intenziteta svjetlosti u prostoriji
- Korak 5: Rezultat:
Video: Iscrtavanje intenziteta svjetlosti pomoću Arduina i Pythonove glavne biblioteke Arduino: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
Budući da je Arduino ekonomičan, ali vrlo učinkovit i funkcionalan alat, njegovo programiranje u Embedded C -u čini proces zamornih procesa! Arduino_Master modul Pythona to pojednostavljuje i omogućuje nam izračune, uklanjanje vrijednosti smeća i iscrtavanje grafikona za vizualni prikaz podataka.
Ako još ne znate za ovaj modul, instalirajte ga pomoću naredbe pip install Arduino_Master
Ne brinite ako ne znate koristiti ovaj modul, posjetite ovu vezu => Arduino_Master
Međutim, kod za ovaj projekt uvijek će biti dostupan u ovom uputstvu.
Pribor
Za ovaj projekt trebat će vam sljedeće:
- Arduino
- Otpornik ovisan o svjetlu (LDR) i
- Python 3 instaliran na vašem računalu.
Korak 1: Izgradite svoj krug:
Za unos podataka koristit ćemo pin A1 Arduina. Također možete koristiti 5V i GND pinove Arduina umjesto baterije. Povežite se na sljedeći način:
- Spojite jedan kraj LDR -a na pozitivni terminal 5V baterije ili na 5V pin Arduina.
- Drugi kraj LDR -a spojite paralelno s pinom A1 i negativnim priključkom baterije ili GND pinom Arduina.
- Upotrijebite otpornik kako biste bili sigurni da sva struja ne teče prema GND -u, što bi dovelo do toga da ne dobijete dovoljno jak signal za osjetiti na A1 terminalu Arduina. (Koristim otpornik od 10k ohma).
Korak 2: Programiranje vašeg Arduina:
Modul Arduino_Master koristi serijski monitor Arduina za slanje i primanje podataka. Prednost korištenja ovog modula je da, kada programirate svoj Arduino, možete promijeniti sam program python za različite projekte jer je programiranje u pythonu relativno lakše!
Kodirati:
// LDR_1 varijabla koristi se za označavanje pina A1 Arduina.
int LDR_1 = A1;
// Podaci primljeni od A1 bit će pohranjeni u LDR_Value_1.
plovak LDR_Value_1;
Unos niza;
void setup ()
{pinMode (LDR_1, INPUT); // LDR_1 je postavljen kao INPUT pin. Serial.begin (9600); // Brzina prijenosa komunikacije postavljena je na 9600.}
void loop ()
{if (Serial.available ()> 0) // ako je bilo koji ulaz dostupan u serijskom monitoru, nastavite. {ulaz = Serial.readString (); // Očitajte ulaz kao niz. if (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5 /1023) je faktor pretvorbe za dobivanje vrijednosti u voltima. Serial.println (LDR_Value_1); // Ako je ulaz jednak "DATA", tada pročitajte ulaz s LDR_1 i ispišite ga na serijskom monitoru. } else int i = 0; // ako ulaz nije jednak "DATA", nemojte ništa učiniti! }
}
Korak 3: Programiranje Pythona u grafičke podatke s Arduina:
Svaki LDR imao bi vlastite vrijednosti otpora i moramo se sjetiti da su elektroničke komponente ne potpuno identične u radu. Stoga prvo moramo pronaći napon pri različitim intenzitetima svjetlosti.
Prenesite sljedeći program u svoj python IDE i pokrenite ga:
Učinite to za različite intenzitete svjetlosti i pomoću grafikona izvucite zaključak, recimo, ako je intenzitet manji od 1, soba je previše mračna. Za intenzitet između 1 i 2, soba je znatno mračna. Za intenzitet veći od 2 svjetlo se uključuje.
# Uvoz Arduino_Master modula
iz Arduino_Master uvoza *
# prikupljanje podataka
podaci = filtar (ardata (8, stiskanje = Netačno, dinamičko = Istina, poruka = "DATA", retci = 30), očekivani_tip = 'broj', ograničenje = [0, 5])
# ograničenje postavljeno je na 5 jer koristimo 5V bateriju.
# Iscrtavanje vrijednosti
Grafikon (podaci, stl = 'dark_background', label = 'Intenzitet svjetla')
Korak 4: Završni program za provjeru intenziteta svjetlosti u prostoriji
Nakon što ste zaključili iz podataka koje ste dobili, prenesite sljedeći program i svakako promijenite ograničenja prema svom zaključku.
# Uvoz Arduino_Master modula
iz Arduino_Master uvoza # prikupljanje podataka = filter (ardata (8, stiskanje = Netačno, dinamičko = Istina, msg = "DATA", retci = 50), očekivani_tip = 'num', limit = [0, 5]) # klasificiranje podataka na temelju zaključaka info = za i u rasponu (len (podaci)): intenzitet = podaci ako je intenzitet 1 i intenzitet = 2: info.append ('Svjetlo UKLJUČENO') # Iscrtavanje grafikona. compGraph (podaci, informacije, stl = 'dark_background', label1 = 'Intenzitet svjetla', label2 = 'Stanje')
Korak 5: Rezultat:
Pokretanje programa trajalo bi minutu ili dvije jer čitate 50 trenutnih vrijednosti iz Arduina.
Ako želite ubrzati proces, pokušajte promijeniti parametar linija funkcije ardata. No zapamtite da što je manje opažanja, to će biti manja kvaliteta podataka.
Napomena: Ako cijeli grafikon na gornjoj slici nije vidljiv, pogledajte grafikon iznad odjeljka Uvod.
Preporučeni:
Praćenje intenziteta sunčeve svjetlosti: 3 koraka
Praćenje intenziteta sunčeve svjetlosti: Postoji mnogo projekata koji se oslanjaju na sunčevu toplinu ili svjetlost. Npr. sušenje voća i povrća. Međutim, intenzitet sunčeve svjetlosti nije uvijek konstantan i mijenja se tijekom dana. Ovaj projekt pokušava mapirati sunčevu svjetlost
Programiranje Arduina pomoću drugog Arduina za prikaz teksta koji se pomiče bez biblioteke: 5 koraka
Programiranje Arduina pomoću drugog Arduina za prikaz teksta koji se pomiče bez biblioteke: Sony Spresense ili Arduino Uno nisu toliko skupi i ne zahtijevaju puno energije. Međutim, ako vaš projekt ima ograničenje snage, prostora ili čak proračuna, razmislite o upotrebi Arduino Pro Mini. Za razliku od Arduino Pro Micro, Arduino Pro Mi
Proračun intenziteta svjetlosti pomoću BH1715 i Arduino Nano: 5 koraka
Proračun svjetlosnog intenziteta pomoću BH1715 i Arduino Nano: Jučer smo radili na LCD zaslonima i tijekom rada nad njima shvatili smo važnost izračuna intenziteta svjetlosti. Intenzitet svjetlosti nije važan samo u fizičkoj domeni ovoga svijeta, već ima i svoju dobro rečeno ulogu u biologiji
Proračun intenziteta svjetlosti pomoću BH1715 i fotona čestica: 5 koraka
Proračun intenziteta svjetlosti pomoću BH1715 i fotona čestica: Jučer smo radili na LCD zaslonima, a radeći nad njima shvatili smo važnost izračuna intenziteta svjetlosti. Intenzitet svjetlosti nije važan samo u fizičkoj domeni ovoga svijeta, već ima i svoju dobro rečeno ulogu u biologiji
Mjerač intenziteta svjetlosti bez programiranja .: 7 koraka (sa slikama)
Mjerač intenziteta svjetlosti bez programiranja. Ovaj instruktor govori o izradi osnovnog mjerača intenziteta svjetlosti bez upotrebe Arduina ili bilo kojeg drugog mikro kontrolera ili programiranja. Mjerač intenziteta svjetla prikazuje različite razine intenziteta svjetla s različitim bojama LED dioda. Crvena LED