একটি পাঠ্য ফাইলে আরডুইনো সেন্সর ডেটা সংরক্ষণ করা


34

আমি কীভাবে সেন্সর থেকে কম্পিউটারে একটি পাঠ্য ফাইলে প্রাপ্ত তথ্য সংরক্ষণ করতে পারি?

উত্তর:


30

আপনি সিরিয়াল-লিব ব্যবহার করে সিরিয়াল পোর্টে সেন্সর ডেটা লিখতে পারেন এবং একটি ছোট প্রসেসিং প্রোগ্রাম লিখতে পারেন যা সিরিয়াল বন্দর থেকে ডেটা পড়ে এবং একটি ফাইলে লিখে দেয়।

আরডুইনো কোডে সেটআপ পদ্ধতিতে সিরিয়াল লাইব ইনিটালাইজ করে

Serial.begin(9600);

এবং সিরিয়াল ইন্টারফেস ব্যবহার করে আপনার সেন্সর মান লিখুন

Serial.println(value);

আপনার লুপ পদ্ধতিতে

প্রসেসিংয়ের পাশ দিয়ে সিরিয়াল বন্দর থেকে কোনও ফাইলে পড়া ডেটা লেখার জন্য একটি মুদ্রণ লেখক ব্যবহার করুন

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
একটি পৃথক প্রসেসিং স্ক্রিপ্টে - প্রসেসিং সি-তে নয় তবে জাভাতে সংকলিত হয়
নিকোলাস গ্রেডওহল

@ উলাদকাসাচ "প্রসেসিং" একটি বহু-প্ল্যাটফর্ম প্রোগ্রামিং পরিবেশ। আসলে, এটি বিশ্বের নির্বোধ নাম সহ প্রোগ্রামিং পরিবেশ।
স্কট সিডম্যান

9

তবুও আরেকটি বিকল্প হ'ল এসডি কার্ড রিডার / লেখক ব্যবহার করা এবং আপনার ফাইলটি একটি এসডি কার্ডে লিখুন। আপনি যখন ডেটা সংগ্রহ করার কাজ শেষ করেন, তখন আপনার ওয়ার্কস্টেশন কম্পিউটারের সাথে এসডি কার্ডগুলি সরিয়ে আনা হবে। এই পদ্ধতির সাহায্যে আপনাকে একটি কম্পিউটার থেকে সংযোগ বিচ্ছিন্ন আপনার প্রকল্প চালানোর অনুমতি দেবে এবং প্রচুর পরিমাণে ডেটা অ-উদ্বায়ী স্টোরেজ সরবরাহ করবে।


6

প্রোগ্রাম গোবেটুইনো একটি সংক্ষিপ্ত প্রচেষ্টা সহ একটি আরডুইনো থেকে একটি পাঠ্য ফাইল বা স্প্রেডশিটে সেন্সর মানগুলি লগ করবে। এটি কম্পিউটারে জিনিসগুলি স্বয়ংক্রিয় করতে পারে, টাইমস্ট্যাম্পগুলি যুক্ত করতে পারে (যাতে আপনার এটি আরডুইনোতে প্রোগ্রাম করার দরকার নেই) ইত্যাদি etc.

alt text


5

সবচেয়ে সহজ পদ্ধতি হ'ল সিরিয়াল লাইব্রেরি এবং এটিতে আউটপুট ব্যবহার করা। তারপরে আপনি টার্মিনাল প্রোগ্রামটি ব্যবহার করে কোনও টেক্সট ফাইলে আউটপুট ক্যাপচার করতে পারেন। হাইপারটার্মিনাল উইন্ডোজে পাওয়া যায়, লিনাক্সে টেরার্টম এবং ওএস এক্সে জেড টার্ম।

মেলানি


4

যদি আপনি সিরিয়াল মনিটরের উইন্ডোটিকে অনুলিপি করে আউটপুটটি অনুলিপি না করেই সরাসরি আপনার কম্পিউটারের কোনও ফাইলে সেন্সর ডেটা লিখতে চান, তবে সিরিয়াল বন্দর থেকে সরাসরি ডাটা স্ট্রিমটি পড়ার চেষ্টা করুন (যা সিরিয়াল মনিটর যাই হোক না কেন, আমি সন্দেহভাজন)। ম্যাক / লিনাক্সে এমন কিছু করুন:

cat /dev/cu.usbmodem1d11 

উইন্ডোজ মেশিনগুলির সমতুল্য কি equivalentশ্বর জানেন।


1
আপনি সম্ভবত প্রতিটি সেন্সর পড়ার সাথে টাইমস্ট্যাম্পগুলি যুক্ত করতে চান, সেক্ষেত্রে আপনাকে সম্ভবত সেই catকমান্ডটি কোনও ধরণের স্ক্রিপ্টের সাথে প্রতিস্থাপন করতে হবে ।
গ্যারেজট্রোইস

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

পরবর্তী পদক্ষেপটি হয় ইথারনেট ieldাল বা WIZ810MJ বোর্ড এবং ইন্টারনেটের মতো কিছু ব্যবহার করা আপনার আরডুইনো সক্ষম করে। তারপরে আপনি সেইটিতে ডেটা লিখতে পারেন এবং এটিতে জমা করার জন্য একটি ওয়েব সার্ভার বলতে পাঠাতে পারেন। আমি আমার ভিভারিয়াম তাপমাত্রা মনিটরে এটি করি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.