INHOUDSOPGAWE:
- Voorrade
- Stap 1: Bou u stroombaan:
- Stap 2: Die programmering van u Arduino:
- Stap 3: Python programmeer om data uit Arduino te grafiseer:
- Stap 4: Finale program om die intensiteit van lig in 'n kamer na te gaan
- Stap 5: Resultaat:
Video: Ligte intensiteit planne met behulp van Arduino en Python's Arduino Master Library: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Arduino is 'n ekonomiese, maar tog baie doeltreffende en funksionele hulpmiddel, en om dit in Embedded C te programmeer, maak die proses vervelig! Die Arduino_Master -module van Python vereenvoudig dit en stel ons in staat om berekeninge uit te voer, vulliswaardes te verwyder en 'n grafiek te teken vir 'n visuele voorstelling van data.
As u nog nie van hierdie module weet nie, installeer dit dan met die opdrag pip install Arduino_Master
Moenie bekommerd wees as u nie weet hoe u hierdie module moet gebruik nie; besoek hierdie skakel => Arduino_Master
Die kode vir hierdie projek sal egter altyd in hierdie instruksies beskikbaar wees.
Voorrade
Vir hierdie projek benodig u die volgende:
- 'N Arduino
- 'N Ligte afhanklike weerstand (LDR) en
- Python 3 op u rekenaar geïnstalleer.
Stap 1: Bou u stroombaan:
Ons sal pin A1 van Arduino gebruik om insetdata te kry. U kan ook die 5V- en GND -penne van Arduino gebruik in plaas van die battery. Maak die verbinding soos volg:
- Koppel die een kant van die LDR aan die positiewe aansluiting van 'n 5V -battery of aan die 5V -pen van die Arduino.
- Verbind die ander kant van die LDR parallel met pen A1 en die negatiewe aansluiting van die battery of GND -pen van Arduino.
- Gebruik 'n weerstand om seker te maak dat al die stroom nie na die GND vloei nie, wat veroorsaak dat u nie 'n sterk genoeg sein kry om by die A1 -aansluiting van die Arduino te voel nie. (Gebruik 'n weerstand van 10k ohm).
Stap 2: Die programmering van u Arduino:
Arduino_Master -module gebruik Serial Monitor van die Arduino om data te stuur en te ontvang. Die voordeel van die gebruik van hierdie module is dat sodra u u Arduino programmeer, u die luislangprogram alleen vir verskillende projekte kan verander, aangesien programmering in python relatief makliker is!
Kode:
// Die veranderlike van LDR_1 word gebruik om pen A1 van Arduino aan te dui.
int LDR_1 = A1;
// Data wat vanaf A1 ontvang word, sal in LDR_Value_1 gestoor word.
vlot LDR_Value_1;
Snaarinvoer;
leemte opstelling ()
{pinMode (LDR_1, INVOER); // LDR_1 is ingestel as 'n INPUT -pen. Serial.begin (9600); // Kommunikasie baudrate is ingestel op 9600.}
leemte lus ()
{as (Serial.available ()> 0) // indien enige insette in die seriële monitor beskikbaar is, gaan dan voort. {input = Serial.readString (); // Lees die invoer as 'n string. if (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5 /1023) is die omskakelingsfaktor om waarde in volt te kry. Serial.println (LDR_Value_1); // As die invoer gelyk is aan "DATA", lees dan die invoer van LDR_1 en druk dit op die Serial Monitor. } anders int i = 0; // as die invoer nie gelyk is aan "DATA" nie, doen niks! }
}
Stap 3: Python programmeer om data uit Arduino te grafiseer:
Elke LDR sou sy eie weerstandswaardes hê, en ons moet onthou dat elektroniese komponente nie presies identies in werking is nie. Dus moet ons eers die spanning by verskillende intensiteite van die lig bepaal.
Laai die volgende program op na u python IDE en voer dit uit:
Doen dit vir verskillende intensiteite van die lig en maak 'n gevolgtrekking met behulp van die grafiek, byvoorbeeld, as die intensiteit minder as 1 is, is die kamer te donker. Vir intensiteit tussen 1 en 2 is die kamer aansienlik donker. Vir intensiteit groter as 2 word die lig aangeskakel.
# Invoer van Arduino_Master -module
vanaf Arduino_Master invoer *
# data versamel
data = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 30), expect_type = 'num', limit = [0, 5])
Die limiet is op 5 gestel, aangesien ons 'n 5V -battery gebruik.
# Skets die waardes
Grafiek (data, stl = 'dark_background', label = 'Light Intensity')
Stap 4: Finale program om die intensiteit van lig in 'n kamer na te gaan
Nadat u tot die gevolgtrekking gekom het uit die gegewens wat u gekry het, laai die volgende program op en maak seker dat u die perke volgens u gevolgtrekking verander.
# Invoer van Arduino_Master -module
vanaf Arduino_Master invoer # versamel data data = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 50), expected_type = 'num', limit = [0, 5]) #classifying data gebaseer op gevolgtrekking info = vir i in reeks (len (data)): intensiteit = data as intensiteit 1 en intensiteit = 2: info.append ('Light ON') # Plot die grafiek. compGraph (data, inligting, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')
Stap 5: Resultaat:
Die program sal 'n minuut of twee neem om uit te voer, aangesien u 50 onmiddellike waardes van Arduino lees.
As u die proses wil bespoedig, verander dan die reëlparameter van die ardata -funksie. Maar onthou dat hoe minder die waarnemings, hoe minder die kwaliteit van die data is.
Opmerking: as die volledige grafiek op die foto hierbo nie sigbaar is nie, verwys die grafiek bo die inleiding.
Aanbeveel:
Draagbare Bluetooth -luidspreker (GRATIS PLANNE): 9 stappe (met foto's)
Draagbare Bluetooth -luidspreker (GRATIS PLANNE): Hallo almal! In hierdie instruksies sal ek jou wys hoe ek hierdie draagbare Bluetooth -luidspreker gebou het wat so goed klink soos dit lyk. Ek het Bouplanne, Laser-Cut-planne, al die skakels vir produkte wat u benodig om hierdie spesery te bou, ingesluit
Beheer oor die hele wêreld met behulp van internet met behulp van Arduino: 4 stappe
Beheer oor die hele wêreld met behulp van internet met behulp van Arduino: Hallo, ek is Rithik. Ons gaan 'n internetbeheerde LED maak met u telefoon. Ons gaan sagteware soos Arduino IDE en Blynk gebruik. Dit is eenvoudig, en as u daarin geslaag het, kan u soveel elektroniese komponente beheer as wat u wil
Monitor versnelling met behulp van Raspberry Pi en AIS328DQTR met behulp van Python: 6 stappe
Monitering van versnelling met behulp van Raspberry Pi en AIS328DQTR Gebruik van Python: Versnelling is eindig, volgens ek volgens sommige wette van die fisika.- Terry Riley 'n Jagluiperd gebruik ongelooflike versnelling en vinnige spoedveranderinge wanneer hy jaag. Die vinnigste wesens aan wal gebruik af en toe sy hoogste tempo om prooi te vang. Die
Spraakborrellamp en kladbord met volledige planne: 5 stappe (met foto's)
Spraakborrellamp en kladbord met volledige planne: Hallo ouens, ek het hierdie verligte spraakborrellamp as 'n geskenk gemaak. Die ontwerp is 'n spraakborrelkolk of tonnel, wat 'n perspektief -illusie is, want dit is eintlik net 2D. Dit werk as 'n lamp sowel as 'n krabbelbord vir boodskappe.Dit is gemaak van laser
Ligte intensiteit energiebesparing met behulp van fotoselle en termistors: 6 stappe
Energiebesparing vir ligte intensiteit met behulp van fotoselle en termistors: Hierdie instruksies is ontwerp om u te leer hoe om energie te bespaar deur ligintensiteit te verander met behulp van fotoselle en termistors. Ons sal u wys hoe u die kring kan bou en die Arduino met behulp van MATLAB kan kodeer