Inhoudsopgave:
- Benodigdheden
- Stap 1: Uw circuit bouwen:
- Stap 2: Programmeren van uw Arduino:
- Stap 3: Python programmeren om gegevens van Arduino te plotten:
- Stap 4: Laatste programma om de intensiteit van het licht in een kamer te controleren
- Stap 5: Resultaat:
Video: Lichtintensiteit plotten met Arduino en Python's Arduino Master Library - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Arduino is een economisch maar zeer efficiënt en functioneel hulpmiddel, waardoor het programmeren in Embedded C het proces van het maken van projecten vervelend maakt! Arduino_Master-module van Python vereenvoudigt dit en laat ons berekeningen uitvoeren, afvalwaarden verwijderen en een grafiek plotten voor een visuele weergave van gegevens.
Als je deze module nog niet kent, installeer hem dan met het commando pip install Arduino_Master
Maak je geen zorgen als je niet weet hoe je deze module moet gebruiken, bezoek deze link => Arduino_Master
De code voor dit project zal echter altijd beschikbaar zijn in deze instructable.
Benodigdheden
Voor dit project heb je het volgende nodig:
- Een Arduino
- Een lichtafhankelijke weerstand (LDR) en
- Python 3 geïnstalleerd op uw computer.
Stap 1: Uw circuit bouwen:
We zullen pin A1 van Arduino gebruiken om invoergegevens te krijgen. Je kunt ook de 5V- en GND-pinnen van Arduino gebruiken in plaats van de batterij. Maak de verbinding als volgt:
- Sluit het ene uiteinde van de LDR aan op de positieve pool van een 5V-batterij of op de 5V-pin van de Arduino.
- Sluit het andere uiteinde van de LDR parallel aan op pin A1 en de negatieve pool van de batterij of GND-pin van Arduino.
- Gebruik een weerstand om ervoor te zorgen dat niet alle stroom naar de GND stroomt, waardoor u geen sterk genoeg signaal krijgt om te voelen bij de A1-aansluiting van de Arduino. (Ik gebruik een weerstand van 10k ohm).
Stap 2: Programmeren van uw Arduino:
Arduino_Master-module gebruikt seriële monitor van de Arduino om gegevens te verzenden en te ontvangen. Het voordeel van het gebruik van deze module is dat je, als je eenmaal je Arduino hebt geprogrammeerd, het python-programma alleen voor verschillende projecten kunt wijzigen, omdat programmeren in python relatief eenvoudiger is!
Code:
// LDR_1 variabele wordt gebruikt om pin A1 van Arduino aan te duiden.
int LDR_1 = A1;
// Gegevens ontvangen van A1 worden opgeslagen in LDR_Value_1.
zweven LDR_Value_1;
String-ingang;
ongeldige setup()
{ pinMode(LDR_1, INPUT); // LDR_1 is ingesteld als een INPUT-pin. Serieel.begin(9600); // Communicatie baudrate is ingesteld op 9600. }
lege lus()
{ if(Serial.available()>0) // als er input beschikbaar is in de seriële monitor, ga dan verder. { input=Serial.readString(); // Lees de invoer als een string. if(input=="DATA") { LDR_Value_1=analogRead (LDR_1) * (5.0 / 1023.0); // (5 / 1023) is de conversiefactor om de waarde in Volt te krijgen. Serial.println(LDR_Value_1); // Als de invoer gelijk is aan "DATA", lees dan de invoer van LDR_1 en druk deze af op de seriële monitor. } anders int i=0; // als invoer niet gelijk is aan "DATA", niets doen! }
}
Stap 3: Python programmeren om gegevens van Arduino te plotten:
Elke LDR zou zijn eigen weerstandswaarden hebben en we moeten niet vergeten dat geen enkele elektronische component ooit exact identiek is in werking. Dus eerst moeten we de spanning vinden bij verschillende lichtintensiteiten.
Upload het volgende programma naar uw python IDE en voer het uit:
Doe dit voor verschillende lichtintensiteiten en trek met behulp van de grafiek een conclusie, bijvoorbeeld als de intensiteit minder dan 1 is, is de kamer te donker. Voor een intensiteit tussen 1 en 2 is de kamer behoorlijk donker. Bij een intensiteit groter dan 2 wordt het licht ingeschakeld.
# Arduino_Master-module importeren
van Arduino_Master import *
# gegevens verzamelen
data=filter(ardata(8, squeeze=False, dynamic=True, msg="DATA", lines=30), Expected_type='num', limit=[0, 5])
# limiet is ingesteld op 5 omdat we een 5V-batterij gebruiken.
# De waarden plotten
Graph(data, stl='dark_background', label='Lichtintensiteit')
Stap 4: Laatste programma om de intensiteit van het licht in een kamer te controleren
Nadat u tot een conclusie bent gekomen op basis van de gegevens die u hebt gekregen, uploadt u het volgende programma en zorgt u ervoor dat u de limieten wijzigt volgens uw conclusie.
# Arduino_Master-module importeren
van Arduino_Master import # gegevens verzamelen data=filter(ardata(8, squeeze=False, dynamic=True, msg="DATA", lines=50), Expected_type='num', limit=[0, 5]) #classifying data gebaseerd op conclusie info= for i in range(len(data)): intensity=data if intensity 1 and intensity=2: info.append('Light ON') # De grafiek plotten. compGraph(data, info, stl='dark_background', label1='Lichtintensiteit', label2='State')
Stap 5: Resultaat:
Het programma zou een minuut of twee nodig hebben om te draaien, aangezien u 50 onmiddellijke waarden van Arduino leest.
Als je het proces wilt versnellen, probeer dan de line-parameter van de ardata-functie te wijzigen. Maar onthoud dat hoe minder waarnemingen, hoe minder de kwaliteit van de gegevens zou zijn.
Opmerking: als de volledige grafiek in de bovenstaande afbeelding niet zichtbaar is, raadpleegt u de grafiek boven het gedeelte Inleiding.
Aanbevolen:
Gegevens verzenden van Arduino naar Excel (en plotten): 3 stappen (met afbeeldingen)
Gegevens verzenden van Arduino naar Excel (en plotten): ik heb uitgebreid gezocht naar een manier waarop ik mijn Arduino-sensormeting in realtime kon plotten. Niet alleen plotten, maar ook de gegevens weergeven en opslaan voor verdere experimenten en correcties. De eenvoudigste oplossing die ik heb gevonden, was om Excel te gebruiken, maar met
Realtime grafiek plotten op Android vanaf Arduino via HC-05: 3 stappen
Realtime grafiek plotten op Android van Arduino via HC-05: Hallo, hier is een tutorial over hoe je een realtime grafiek met waarden van een microcontroller zoals een Arduino naar de app kunt plotten. Het gebruikt een Bluetooth-module zoals de HC-05 om te fungeren als een berichtenapparaat om de gegevens tussen de Ar
Live gegevens van een temperatuursensor plotten (TMP006) met behulp van MSP432 LaunchPad en Python: 9 stappen
Live gegevens van een temperatuursensor plotten (TMP006) met behulp van MSP432 LaunchPad en Python: De TMP006 is een temperatuursensor die de temperatuur van een object meet zonder contact met het object te maken. In deze tutorial zullen we live temperatuurgegevens van het BoosterPack (TI BOOSTXL-EDUMKII) plotten met Python
AVR-microcontroller. Pulsbreedtemodulatie. СController van DC-motor en LED-lichtintensiteit: 6 stappen
AVR-microcontroller. Pulsbreedtemodulatie. controleur van DC Motor en LED Light Intensity.: Hallo allemaal!Pulsbreedtemodulatie (PWM) is een veel voorkomende techniek in telecommunicatie en vermogensregeling. het wordt vaak gebruikt om de stroomtoevoer naar een elektrisch apparaat te regelen, of het nu een motor, een LED, luidsprekers, enz. is. Het is in feite een modu
Gegevens loggen en online een grafiek plotten met NodeMCU, MySQL, PHP en Chartjs.org: 4 stappen
Log gegevens en plot een grafiek online met NodeMCU, MySQL, PHP en Chartjs.org: deze Instructable beschrijft hoe we het Node MCU-bord kunnen gebruiken om gegevens van meerdere sensoren te verzamelen, deze gegevens naar een gehost PHP-bestand te sturen dat de gegevens vervolgens toevoegt aan een MySQL-database. De gegevens kunnen vervolgens online als een grafiek worden bekeken, met behulp van chart.js.A ba