Arduino सेंसर डेटा को टेक्स्ट फ़ाइल में सहेजना


34

मैं कंप्यूटर पर एक सेंसर से पाठ फ़ाइल में प्राप्त डेटा को कैसे बचा सकता हूं?

जवाबों:


30

आप सीरियल-पोर्ट का उपयोग करके सीरियल पोर्ट पर सेंसर डेटा लिख ​​सकते हैं और एक छोटा प्रोसेसिंग प्रोग्राम लिख सकते हैं, जो सीरियल पोर्ट से डेटा को पढ़ता है और इसे एक फाइल पर लिखता है।

Arduino कोड सेटअप विधि में धारावाहिक परिवाद को जन्म देता है

Serial.begin(9600);

और सीरियल इंटरफ़ेस का उपयोग करके अपने सेंसर मूल्यों को लिखें

Serial.println(value);

अपने पाश विधि में

प्रोसेसिंग साइड पर सीरियल पोर्ट से फाइल में पढ़े गए डेटा को लिखने के लिए एक PrintWriter का उपयोग करें

import processing.serial.*;
Serial mySerial;
PrintWriter output;
void setup() {
   mySerial = new Serial( this, Serial.list()[0], 9600 );
   output = createWriter( "data.txt" );
}
void draw() {
    if (mySerial.available() > 0 ) {
         String value = mySerial.readString();
         if ( value != null ) {
              output.println( value );
         }
    }
}

void keyPressed() {
    output.flush();  // Writes the remaining data to the file
    output.close();  // Finishes the file
    exit();  // Stops the program
}

"प्रोसेसिंग साइड" कोड कहां जाना चाहिए - समान आर्डिनो कोड या अलग सी स्क्रिप्ट में?
उल्लाद कासच

1
एक अलग प्रसंस्करण स्क्रिप्ट में - प्रसंस्करण सी के लिए संकलित नहीं है, लेकिन जावा के लिए
निकोलस ग्रेडोवेल

@UladKasach "प्रसंस्करण" एक बहु-मंच प्रोग्रामिंग वातावरण है। वास्तव में, यह दुनिया के बेवकूफ नाम के साथ प्रोग्रामिंग वातावरण है।
स्कॉट सीडमैन

9

फिर भी एक अन्य विकल्प एसडी कार्ड रीडर / लेखक का उपयोग करना है, और अपनी फाइल को एसडी कार्ड में लिखना है। जब आप डेटा एकत्र करते हैं, तो अपने वर्कस्टेशन कंप्यूटर के साथ एसडी कार्ड स्वैप करें। यह दृष्टिकोण आपको कंप्यूटर से डिस्कनेक्ट किए गए अपने प्रोजेक्ट को चलाने की अनुमति देगा, और बड़ी मात्रा में डेटा के गैर-वाष्पशील भंडारण के लिए प्रदान करेगा।


6

कार्यक्रम gobetwino न्यूनतम प्रयास के साथ एक Arduino से एक पाठ फ़ाइल या स्प्रेडशीट में सेंसर मूल्यों को लॉग करेगा। यह कंप्यूटर पर चीजों को स्वचालित भी कर सकता है, टाइमस्टैम्प जोड़ सकता है (इसलिए आपको उन्हें arduino में प्रोग्राम करने की आवश्यकता नहीं है), आदि।

वैकल्पिक शब्द


5

सबसे सरल तरीका सीरियल लाइब्रेरी और उस पर आउटपुट का उपयोग करना है। तब आप टर्मिनल प्रोग्राम का उपयोग करके आउटपुट को टेक्स्ट फ़ाइल में कैप्चर कर सकते हैं। हाइपरटर्मिनल विंडोज पर उपलब्ध है, लिनक्स पर टेराटर्म और ओएस एक्स पर जेड टर्म।

मेलानी


4

यदि आप अपने कंप्यूटर पर किसी फाइल पर सीधे सेंसर डेटा लिखना चाहते हैं, तो आउटपुट को कॉपी और पेस्ट करके सीरियल मॉनिटर विंडो बना सकते हैं, तो सीरियल पोर्ट से डेटा स्ट्रीम को सीधे पढ़ने की कोशिश करें (जो कि वैसे भी सीरियल मॉनिटर करता है, मैं संदिग्ध)। Mac / linux पर कुछ ऐसा करें:

cat /dev/cu.usbmodem1d11 

भगवान जानते हैं कि विंडोज़ मशीनों पर क्या समान है।


1
आप शायद प्रत्येक सेंसर रीडिंग के साथ टाइमस्टैम्प को जोड़ना चाहते हैं, जिस स्थिति में आपको संभवतः उस catकमांड को किसी प्रकार की स्क्रिप्ट के साथ बदलना होगा ।
19:00 पर गेराज

3

आप सीरियल पोर्ट को पढ़ने और परिणामों को टेक्स्ट फ़ाइल में लिखने के लिए एक पायथन स्क्रिप्ट बना सकते हैं:

##############
## Script listens to serial port and writes contents into a file
##############
## requires pySerial to be installed 
import serial

serial_port = '/dev/ttyACM0';
baud_rate = 9600; #In arduino, Serial.begin(baud_rate)
write_to_file_path = "output.txt";

output_file = open(write_to_file_path, "w+");
ser = serial.Serial(serial_port, baud_rate)
while True:
    line = ser.readline();
    line = line.decode("utf-8") #ser.readline returns a binary, convert to string
    print(line);
    output_file.write(line);

1

मैंने पायथन स्क्रिप्ट का उपयोग करना आसान और सुरक्षित पाया। मैं आमतौर पर धारावाहिक पुस्तकालय के आधार पर इसका उपयोग करता हूं । टाइमस्टैम्प को जोड़ने के लिए डेटाइम मॉड्यूल का उपयोग करना बहुत आम है:

import serial
from datetime import datetime

sensor = "DH11"
serial_port = '/dev/ttyACM0'
baud_rate = 9600
path = "%s_LOG_%s.txt" % (str(datetime.now()), sensor)
ser = serial.Serial(serial_port, baud_rate)
with open(path, 'w+') as f:
    while True:
        line = ser.readline()
        f.writelines([line.strip(), " t = %s \n " % (datetime.now())])

0

अगला कदम ईथरनेट ढाल या WIZ810MJ बोर्ड जैसे कुछ का उपयोग करना है और इंटरनेट आपके arduino को सक्षम करता है। फिर आप उस पर डेटा लिख ​​सकते हैं और इसे भेजने के लिए वेब सर्वर को कह सकते हैं। मैं अपने विवि के तापमान की निगरानी में ऐसा करता हूं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.