Innehållsförteckning:
- Tillbehör
- Steg 1: Bygg din krets:
- Steg 2: Programmering av din Arduino:
- Steg 3: Programmering av Python till grafdata från Arduino:
- Steg 4: Slutprogram för att kontrollera ljusets intensitet i ett rum
- Steg 5: Resultat:
Video: Ljusintensitetsplanering med Arduino och Pythons Arduino Master Library: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
Arduino är ett ekonomiskt men ändå mycket effektivt och funktionellt verktyg, och programmerar det i Embedded C gör processen att göra projekt tråkig! Arduino_Master -modulen i Python förenklar detta och låter oss utföra beräkningar, ta bort sopvärden och rita upp en graf för en visuell representation av data.
Om du inte vet om den här modulen ännu, installera den med kommandot pip install Arduino_Master
Oroa dig inte om du inte vet hur du använder den här modulen, besök den här länken => Arduino_Master
Koden för detta projekt kommer dock alltid att finnas tillgänglig i den här instruktionsboken.
Tillbehör
För detta projekt behöver du följande:
- En Arduino
- En ljusberoende motstånd (LDR) och
- Python 3 installerat på din dator.
Steg 1: Bygg din krets:
Vi kommer att använda stift A1 på Arduino för att få indata. Du kan också använda 5V- och GND -stiften på Arduino istället för batteriet. Gör anslutningen enligt följande:
- Anslut ena änden av LDR till pluspolen på ett 5V -batteri eller till 5V -stiftet på Arduino.
- Anslut den andra änden av LDR parallellt med stift A1 och minuspolen på batteriet eller GND -stiftet på Arduino.
- Använd ett motstånd för att se till att all ström inte flödar till GND vilket skulle leda till att du inte får en tillräckligt stark signal för att känna av A1 -terminalen på Arduino. (Jag använder ett motstånd på 10k ohm).
Steg 2: Programmering av din Arduino:
Arduino_Master -modulen använder seriell övervakning av Arduino för att skicka och ta emot data. Fördelen med att använda denna modul är att när du programmerar din Arduino kan du ändra pythonprogrammet ensam för olika projekt eftersom programmering i python är jämförelsevis enklare!
Koda:
// LDR_1 -variabel används för att beteckna stift A1 på Arduino.
int LDR_1 = A1;
// Data som tas emot från A1 kommer att lagras i LDR_Value_1.
float LDR_Value_1;
Strängingång;
void setup ()
{pinMode (LDR_1, INPUT); // LDR_1 är inställd som en INPUT -pin. Serial.begin (9600); // Kommunikations baudrate är inställd på 9600.}
void loop ()
{if (Serial.available ()> 0) // om någon ingång är tillgänglig i den seriella bildskärmen, fortsätt sedan. {input = Serial.readString (); // Läs inmatningen som en sträng. if (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5 /1023) är konverteringsfaktorn för att få värde i volt. Serial.println (LDR_Value_1); // Om ingången är lika med "DATA", läs sedan inmatningen från LDR_1 och skriv ut den på seriell bildskärm. } annars int i = 0; // om ingången inte är lika med "DATA", gör ingenting! }
}
Steg 3: Programmering av Python till grafdata från Arduino:
Varje LDR skulle ha sina egna motståndsvärden och vi måste komma ihåg att nej till elektroniska komponenter någonsin är exakt identiska i drift. Således måste vi först hitta spänningen vid olika ljusintensiteter.
Ladda upp följande program till din python IDE och kör det:
Gör detta för olika ljusintensiteter och använd grafen för att dra en slutsats, till exempel om intensiteten är mindre än 1 är rummet för mörkt. För intensiteten mellan 1 och 2 är rummet betydligt mörkt. För intensiteten större än 2 tänds ljuset.
# Importera Arduino_Master -modul
från Arduino_Master import *
# samla in data
data = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 30), expected_type = 'num', limit = [0, 5])
# gräns är satt till 5 eftersom vi använder ett 5V batteri.
# Plotta värdena
Diagram (data, stl = 'dark_background', label = 'Light Intensity')
Steg 4: Slutprogram för att kontrollera ljusets intensitet i ett rum
Efter att ha kommit till en slutsats från de data du fått, ladda upp följande program och se till att ändra gränserna enligt din slutsats.
# Importera Arduino_Master -modul
från Arduino_Master import # insamling av data data = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 50), expected_type = 'num', limit = [0, 5]) #classifying data baserat på slutsatsinfo = för i inom intervallet (len (data)): intensitet = data om intensitet 1 och intensitet = 2: info.append ('Light ON') # Plotta diagrammet. compGraph (data, info, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')
Steg 5: Resultat:
Programmet skulle ta en eller två minuter att köra eftersom du läser 50 momentana värden från Arduino.
Om du vill påskynda processen kan du försöka ändra linjeparametern för ardatafunktionen. Men kom ihåg att ju mindre observationerna är, desto mindre blir datakvaliteten.
Obs! Om hela diagrammet på bilden ovan inte syns, se diagrammet ovanför introduktionsavsnittet.
Rekommenderad:
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: 11 steg
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: Har du någonsin haft mycket data du arbetar med och tänkt för dig själv … " hur kan jag göra allt av dessa data ser bättre ut och blir lättare att förstå? " Om så är fallet kan en tabell i Microsoft Office Word 2007 vara ditt svar
Ansluter bearbetning och Arduino och gör 7 segment och servo GUI -kontroller: 4 steg
Ansluta bearbetning och Arduino och göra 7 segment och servo GUI -kontroller: För vissa projekt måste du använda Arduino eftersom det ger en enkel prototypplattform men visning av grafik i seriell bildskärm av Arduino kan ta ganska lång tid och är till och med svårt att göra. Du kan visa grafer på Arduino Serial Monitor
Arduino -robot med avstånd, riktning och rotationsgrad (öst, väst, norr, söder) som styrs med röst med hjälp av Bluetooth -modul och autonom robotrörelse .: 6 steg
Arduino -robot med avstånd, riktning och rotationsgrad (öst, väst, norr, söder) som styrs med röst med hjälp av Bluetooth -modul och autonom robotrörelse.: Denna instruktion förklarar hur man gör Arduino -robot som kan flyttas i önskad riktning (framåt, bakåt , Vänster, höger, öst, väst, norr, syd) krävs Distans i centimeter med röstkommando. Roboten kan också flyttas autonomt
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: 5 steg (med bilder)
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: Styrning av 8 reläväxlar med nodemcu och IR -mottagare via wifi och IR -fjärrkontroll och Android -app. Fjärrkontrollen fungerar oberoende av wifi -anslutning. HÄR ÄR EN UPPDATERAD VERSIONKLICK HÄR
Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
Temperatur- och luftfuktighetsvisning och datainsamling med Arduino och bearbetning: Intro: Detta är ett projekt som använder ett Arduino -kort, en sensor (DHT11), en Windows -dator och ett bearbetningsprogram (ett gratis nedladdningsbart) för att visa temperatur, luftfuktighetsdata i digital och stapeldiagramform, visa tid och datum och kör en räkningstid