উত্তর:
আপনি সিরিয়াল-লিব ব্যবহার করে সিরিয়াল পোর্টে সেন্সর ডেটা লিখতে পারেন এবং একটি ছোট প্রসেসিং প্রোগ্রাম লিখতে পারেন যা সিরিয়াল বন্দর থেকে ডেটা পড়ে এবং একটি ফাইলে লিখে দেয়।
আরডুইনো কোডে সেটআপ পদ্ধতিতে সিরিয়াল লাইব ইনিটালাইজ করে
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
}
তবুও আরেকটি বিকল্প হ'ল এসডি কার্ড রিডার / লেখক ব্যবহার করা এবং আপনার ফাইলটি একটি এসডি কার্ডে লিখুন। আপনি যখন ডেটা সংগ্রহ করার কাজ শেষ করেন, তখন আপনার ওয়ার্কস্টেশন কম্পিউটারের সাথে এসডি কার্ডগুলি সরিয়ে আনা হবে। এই পদ্ধতির সাহায্যে আপনাকে একটি কম্পিউটার থেকে সংযোগ বিচ্ছিন্ন আপনার প্রকল্প চালানোর অনুমতি দেবে এবং প্রচুর পরিমাণে ডেটা অ-উদ্বায়ী স্টোরেজ সরবরাহ করবে।
সবচেয়ে সহজ পদ্ধতি হ'ল সিরিয়াল লাইব্রেরি এবং এটিতে আউটপুট ব্যবহার করা। তারপরে আপনি টার্মিনাল প্রোগ্রামটি ব্যবহার করে কোনও টেক্সট ফাইলে আউটপুট ক্যাপচার করতে পারেন। হাইপারটার্মিনাল উইন্ডোজে পাওয়া যায়, লিনাক্সে টেরার্টম এবং ওএস এক্সে জেড টার্ম।
মেলানি
যদি আপনি সিরিয়াল মনিটরের উইন্ডোটিকে অনুলিপি করে আউটপুটটি অনুলিপি না করেই সরাসরি আপনার কম্পিউটারের কোনও ফাইলে সেন্সর ডেটা লিখতে চান, তবে সিরিয়াল বন্দর থেকে সরাসরি ডাটা স্ট্রিমটি পড়ার চেষ্টা করুন (যা সিরিয়াল মনিটর যাই হোক না কেন, আমি সন্দেহভাজন)। ম্যাক / লিনাক্সে এমন কিছু করুন:
cat /dev/cu.usbmodem1d11
উইন্ডোজ মেশিনগুলির সমতুল্য কি equivalentশ্বর জানেন।
cat
কমান্ডটি কোনও ধরণের স্ক্রিপ্টের সাথে প্রতিস্থাপন করতে হবে ।
সিরিয়াল পোর্টটি পড়তে এবং পাঠ্য ফাইলে ফলাফল লিখতে আপনি পাইথন স্ক্রিপ্ট তৈরি করতে পারেন:
##############
## 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);
পাইথন স্ক্রিপ্টটি ব্যবহার করা আমার পক্ষে আরও সহজ এবং নিরাপদ বলে মনে হয়েছিল। আমি সাধারণত সিরিয়াল লাইব্রেরির উপর ভিত্তি করে এটি ব্যবহার করি । টাইমস্ট্যাম্পগুলি যুক্ত করতে ডেটটাইম মডিউলটি ব্যবহার করা খুব সাধারণ:
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())])
পরবর্তী পদক্ষেপটি হয় ইথারনেট ieldাল বা WIZ810MJ বোর্ড এবং ইন্টারনেটের মতো কিছু ব্যবহার করা আপনার আরডুইনো সক্ষম করে। তারপরে আপনি সেইটিতে ডেটা লিখতে পারেন এবং এটিতে জমা করার জন্য একটি ওয়েব সার্ভার বলতে পাঠাতে পারেন। আমি আমার ভিভারিয়াম তাপমাত্রা মনিটরে এটি করি ।