Sadržaj:

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

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

Video: Iscrtavanje intenziteta svjetlosti pomoću Arduina i Pythonove glavne biblioteke Arduino: 5 koraka
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Studeni
Anonim
Iscrtavanje svjetlosnog intenziteta pomoću Arduina i Pythonove glavne biblioteke Arduino
Iscrtavanje svjetlosnog intenziteta pomoću Arduina i Pythonove glavne biblioteke Arduino

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:

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

Korak 1: Izgradite svoj krug:

Izgradnja vašeg kruga
Izgradnja vašeg kruga

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 s pinom A1 i negativnim priključkom baterije ili GND pinom Arduina.
  3. 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:

Proizlaziti
Proizlaziti

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: