Sadržaj:

Iscrtavanje svjetlosnog intenziteta pomoću Arduina i Pythonove glavne biblioteke Arduino: 5 koraka
Iscrtavanje svjetlosnog intenziteta pomoću Arduina i Pythonove glavne biblioteke Arduino: 5 koraka

Video: Iscrtavanje svjetlosnog intenziteta pomoću Arduina i Pythonove glavne biblioteke Arduino: 5 koraka

Video: Iscrtavanje svjetlosnog intenziteta pomoću Arduina i Pythonove glavne biblioteke Arduino: 5 koraka
Video: Arduino projekti u Industrijskoj školi Split (Srđan Doljanin) - Parking senzor 2024, Novembar
Anonim
Iscrtavanje intenziteta svjetlosti pomoću Arduino i Python -ove Arduino glavne biblioteke
Iscrtavanje intenziteta svjetlosti pomoću Arduino i Python -ove Arduino glavne biblioteke

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 u Pythonu to pojednostavljuje i omogućuje nam izvršavanje proračuna, uklanjanje vrijednosti smeća i iscrtavanje grafikona za vizualnu prezentaciju podataka.

Ako još ne znate za ovaj modul, instalirajte ga pomoću naredbe pip install Arduino_Master

Ne brinite ako ne znate kako koristiti ovaj modul, posjetite ovu vezu => Arduino_Master

Međutim, kod za ovaj projekt će uvijek biti dostupan u ovom uputstvu.

Supplies

Za ovaj projekat trebat će vam sljedeće:

  1. Arduino
  2. Otpornik ovisan o svjetlu (LDR) i
  3. Python 3 instaliran na vašem računaru.

Korak 1: Izgradite svoj krug:

Izgradnja vašeg kola
Izgradnja vašeg kola

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:

  1. Spojite jedan kraj LDR -a na pozitivni terminal 5V baterije ili na 5V pin Arduina.
  2. Drugi kraj LDR -a spojite paralelno na pin A1 i negativni terminal baterije ili GND pin na Arduinu.
  3. Upotrijebite otpornik kako biste bili sigurni da sva struja ne teče do GND -a, što bi dovelo do toga da ne dobijete dovoljno jak signal da osjetite na A1 terminalu Arduina. (Koristim otpornik od 10 k 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 samo program python za različite projekte jer je programiranje u pythonu relativno lakše!

Šifra:

// LDR_1 varijabla se koristi 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;

String input;

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. {input = Serial.readString (); // Čitanje unosa kao niza. if (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5 /1023) je faktor konverzije za dobivanje vrijednosti u voltima. Serial.println (LDR_Value_1); // Ako je ulaz jednak "DATA", tada pročitajte ulaz sa 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 bi imao svoje 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 = filter (ardata (8, stiskanje = Netačno, dinamičko = Tačno, poruka = "DATA", redovi = 30), očekivani_tip = 'broj', ograničenje = [0, 5])

# ograničenje je postavljeno na 5 jer koristimo bateriju od 5V.

# Iscrtavanje vrijednosti

Grafikon (podaci, stl = 'dark_background', label = 'Intenzitet svjetla')

Korak 4: Završni program za provjeru intenziteta svjetlosti u prostoriji

Nakon što zaključite iz podataka koje ste dobili, učitajte 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 = Tačno, msg = "DATA", redovi = 50), očekivani_tip = 'broj', ograničenje = [0, 5]) # klasifikacija podataka na osnovu 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:

Rezultat
Rezultat

Programu bi trebalo nekoliko minuta da se pokrene jer čitate 50 trenutnih vrijednosti iz Arduina.

Ako želite ubrzati proces, pokušajte promijeniti parametar linije funkcije ardata. Ali zapamtite da što je manje zapažanja, to će biti slabija kvaliteta podataka.

Napomena: Ako kompletan grafikon na gornjoj slici nije vidljiv, pogledajte grafikon iznad odjeljka Uvod.

Preporučuje se: