চাপ রেকর্ডার (datalogger)

আমি সাহায্য করার জিজ্ঞাসা করা হল একটি প্রোগ্রাম যা চাপ নিয়ন্ত্রিত বিকাশ এবং ফাইলে নথিভুক্ত করবে.

একটি প্রকল্প কিছু ফর্ম সমাবেশ Arduino সঠিক ফলাফলের প্রকট কার্যক্রম, গOme RIজিজ্ঞাসা.

বিবরণ

এ তো হবার কথা বোঝানো হয় না নকশা Compবছর, আমি একটি প্রোগ্রাম মাত্র একটি পরীক্ষা বলতে হবে. আমি একত্রে রেখেছি চার মডিউল যে হতে পারে সংশ্লিষ্ট একটি যাও Arduino ন্যানো বা একটি Arduino ইউএনও, মত আমার বন্ধু যে.

আমি মডিউল একটি তরল স্ফটিক প্রদর্শন হয়, এসডি মেমরির জন্য একটি পাঠক, DS3231 এবং এক সঙ্গে একটি ঘড়ি মডিউল জন্য ব্লুটুথ. প্রোগ্রাম একটি ঢাল যে এসডি কার্ড রিডার এবং DS1307 আরটিসি থাকা একটি ভিন্ন কনফিগারেশন উপলব্ধ.

আমিoreover এটির জন্য একটি বিভাজক অন্তর্ভুক্ত’ প্রবেশ যোগাযোগ হাইকোর্টের মডিউল-06, থেকে সামঞ্জস্যের জন্য 3,3 মডিউল দ্বারা ব্যবহৃত ভোল্ট ব্লুটুথ.

প্রোগ্রাম configurability বৃহৎ ডিগ্রী পারবেন, যা এ নির্ধারণ করা হয় '# define লাইনের উৎস শুরু, আমি নিচে বিস্তারিত ব্যাখ্যা করবে.

বিভিন্ন অসুবিধা হয়েছে, খুব বিশেষ বুঝতে কেন তিনি মেমরি ফাইলটি লিখতে করা হয়নি ছিল. বস্তুত, যেমন উদাহৃত সাইট থেকে, নাম বিন্যাসে রয়ে 8.3. এই ফাইলের নাম অনুক্রমিক সংখ্যা বিন্যাসে ডায়াল হয় ggmmaআমি, যেটি

GG আমি তারিখ দিনে am

মিমি এটা এক মাসে রিপোর্ট

একটি এটি 'বছরের জন্য হয়

আমি অনুক্রমিক সংখ্যা, যদি একটি ফাইল বিদ্যমানSSE ইতিমধ্যে এটি একটি নতুন এক যোগ

প্রকল্পের কিছু বিশেষ বৈশিষ্ট্য অন্তর্ভুক্ত করা হয়েছে:

  • প্রদর্শন উজ্জ্বলতা স্বয়ংক্রিয় নিয়ন্ত্রণ.

  • ফাইল রেকর্ডিং একটি প্রোগ্রামযোগ্য সময়ের প্রদান করে, নমুনা সময় বিরতি এবং ফাইলের নাম পরিবর্তন ফ্রিকোয়েন্সি লেখার উভয়ের জন্য.

  • ক্রমিক মাধ্যমে অথবা ব্লুটুথের মাধ্যমে রিপোর্ট পড়া. একথাও ঠিক যে এটা সাজানো সংযোগ উপর নির্ভর করে.

  • ফাইল রক্ষণাবেক্ষণ করা হয় এবং মুছে ফেলা হয় না. এই পূর্ববর্তী রেকর্ডিং ক্ষতি প্রতিরোধ করা হয়.

  • প্রোগ্রাম হার্ডওয়্যার দুটি সংস্করণ পারবেন, I2c মাধ্যমে সংযোগের জন্য সমান্তরাল এবং এক সংযুক্ত প্রদর্শনের জন্য এক. আধুনিক আমার বন্ধু যে ধরনের এবং এক ঢাল যে রয়েছে 'ঘড়ি এবং SD পাঠক আছে, কারণ. হিসাবে ছবি.

  • সিরিয়াল যোগাযোগ মাধ্যমে সাধারণ বাস্তবায়ন. মাত্রা সঙ্গে যাও Arduino বা টেক্সাস লেগ মনিটর সঙ্গে ক্লাসিক টাইপ 5 ভী, বা partiore দ্বারা ব্লুটুথের মডিউল সংযোগ.

 

 

 

হিসাবে এখানে একটি সঙ্গে পাশাপাশি দেখা যাবে

স্মার্টফোনের মাধ্যমে সংযোগ, প্রোগ্রামের সাথে সিরিয়াল ব্লুটুথ টার্মিনাল.

ভাল, তারিখ এক যে প্রোগ্রাম পাঠায় নয়, বরং অ্যান্ড্রয়েড প্রোগ্রাম অন্তর্ভুক্ত করা হয়েছে.


ইলেকট্রিক প্রকল্প

ডায়াগ্রাম উজ্জ্বলতা নিয়ন্ত্রণ পা যে পিন সাথে সংযুক্ত করা হয় সংযোগ বর্ণনা করে 15 দেল প্রদর্শন. আমি কিছু অ্যাকাউন্ট তৈরি যেহেতু ডিসপ্লে গ্রন্থাগার ধরনের কোনো উপস্থাপনা করেছেন. এমনকি 'i2c পিন সংযুক্ত ইন্টারফেসের সাথে 15 এটা তোলে এই স্কিম দ্বারা গৃহীত হয়. প্রদর্শনের জন্য গ্রন্থাগার, এটা তোলে বা ব্যাকলাইট বন্ধ শুধুমাত্র একটি সহজ নিয়ন্ত্রণ প্রদান করে.

প্রোগ্রাম বর্ণনা

প্রোগ্রাম যাও Arduino আইডিই সংস্করণের সাথে সংকলিত হয়েছিল 1.8.7. ফাইল এছাড়াও লাইব্রেরি রয়েছে, ভবিষ্যতে সংস্করণে ভুল বোঝাবুঝি এবং সম্ভব পরিবর্তন এড়াতে.

ভেরিয়েবল নিম্নলিখিত কনফিগার করতে ব্যবহার করা হয়:

#আরএস সংজ্ঞায়িত 7

#সংজ্ঞায়িত 6

#D7 সংজ্ঞায়িত 2

#d6 সংজ্ঞায়িত 3

#D5 সংজ্ঞায়িত 4

#D4 সংজ্ঞায়িত 5

প্রদর্শন ধরনের সমান্তরাল সংযোগের সাধারন সংজ্ঞা.

 

#CH1 সংজ্ঞায়িত 9

পা উজ্জ্বলতা সামঞ্জস্য জন্য বরাদ্দ.

#নির্ধারণ করা সেন্সর ক 1

এটা আপনি এনালগ চ্যানেল নির্বাচন করতে পারবেন সেন্সর পড়া.

#LDR সংজ্ঞায়িত A3 তে

ডিefinisce মাস চ্যানেল এনালগ যেখানে photoresistor সংকেত নিতে থেকে.

#PARMODEL সংজ্ঞায়িত

এই প্রাপ্তিসাধ্য হার্ডওয়্যার কনফিগারেশনের উপর নির্ভর করে সংকলন নির্বাচন করতে পারবেন.

যখন মন্তব্য চিহ্ন মুছে ফেলার, একটিllora আপনি মডেল জন্য মনোনীত সমান্তরাল (compatibআমিThe ড্রাইভারের সাথে হিটাচি HD44780) এবং 'ঘড়ি DS3231 সঙ্গে এক. বিপরীত ক্ষেত্রে এটি প্রদর্শনের একই ধরনের জন্য একটি PCF8574 সঙ্গে একটি i2c ইন্টারফেস ব্যবহার, অন্যান্য কাজকর্মের জন্য সাশ্রয় পিনের অনেক. এই সঙ্গেগড়ে তুলতে একটি ঢাল একটি DS1307 ঘড়ি প্রান্ত ব্যবহার উপরোক্ত.

#ডিবাগ সংজ্ঞায়িত 0~ 1 ~2

আপনি সেট আপনি সিরিয়াল যোগাযোগ ব্যবহার করতে চান. হতে পারে 2 ডিবাগ মাত্রা যে ক্রমিক ও ডিসপ্লে যা বর্তমান বার্তা নির্ধারণ করতে 'সুযোগ দিতে.
যদি লেখা হয়েছে 0 পরিবর্তে এক, তারপর সিরিয়াল সব প্রোগ্রাম সংকলন এ অন্তর্ভুক্ত নেই.

#LCD_ROWS সংজ্ঞায়িত 2

#LCD_COLUMNS সংজ্ঞায়িত 16

এটা তোলে ডিসপ্লের আকার সংজ্ঞায়িত. এই তারতম্য ঘটিয়ে এছাড়াও প্রোগ্রাম যা শুধুমাত্র প্রকৃত মাপের এই দুই লাইন দ্বারা সংজ্ঞায়িত উপর উপস্থাপনা জন্য প্রদান করে অন্যান্য পরিবর্তন সূচিত করা হবে.

#LOG_INTERVAL সংজ্ঞায়িত 10

এই সেন্সর স্যাম্পলিং ফ্রিকোয়েন্সি নির্ধারণ করে, প্রকাশ করা সেকেন্ড. কি প্রোগ্রাম যে কাজ করেন 10 সেকেন্ড.

#chipSelect সংজ্ঞায়িত 10

এটা তোলে SD কার্ডের যেখানে সাফ করা L 'অ্যাক্টিভেশন নির্ধারণ করে. গ্রন্থাগার দাবি লেগ আছে যদিও 10 একটি আউটপুট হিসাবে. তাই এই পরিবর্তন করে পরোক্ষভাবে না আপনি লেগ আছে 10 বিমুক্ত.

#VMIN সংজ্ঞায়িত 102

#VMAX সংজ্ঞায়িত 921

#MINSCALE সংজ্ঞায়িত 0

#MAXSCALE সংজ্ঞায়িত 160

খোঁজা সংজ্ঞা পড়া এবং চ্যানেলের রূপান্তর মান নির্ধারণ. এই ক্ষেত্রে সেন্সর এটা মূল্য আছে 0,5 শুন্যতে V এবং 4,5 ভী ফুট থেকে পরিমাপ বচন.

প্রশ্নঃuindi সূত্র সঙ্গে এডিসি পয়েন্ট পরিবর্তন করে

ভী / 5 * 1024 সর্বনিম্ন জন্য would 102 এবং সর্বোচ্চ জন্য 921, বৃত্তাকার

যেমন বেশি বয়সীদের সেট হিসাবে.

জিতাদের অন্যান্য দুটি মানের ফাংশন রূপান্তর পর ডিসপ্লে উপস্থাপন করা হয় যাও Arduino মানচিত্র(). সর্বনিম্ন এবং সর্বোচ্চ যথাক্রমে.

#CHANGEFILE সংজ্ঞায়িত (14400 - LOG_INTERVAL)

খোঁজাবা ফাইল লিখতে অনেক সেকেন্ডের সময়ের সংজ্ঞায়িত. ঘটনা ভঙ্গ ক্ষমতার, প্রোগ্রাম একটি বিদ্যমান ফাইল ওভাররাইট করা হবে না. এই সেখানে একটি রুটিন যে চেক যদি সেখানে উপস্থিত ফাইল দেখতে হয়.

আমিn এই ভাবে গুণিতকে সঠিকভাবে ঘণ্টা হিসাব 3600.

#BGTVMIN সংজ্ঞায়িত 0

#BGTVMAX সংজ্ঞায়িত 1024

#BGTMINSCALE সংজ্ঞায়িত 20

#BGTMAXSCALE সংজ্ঞায়িত 255

খোঁজাএবং লাইন, নির্ধারণ প্রদর্শন উজ্জ্বলতা মান PWM নিয়ন্ত্রণ যা. সর্বদা ফাংশনের রূপান্তর সঙ্গে মানচিত্র(). যে 'ভোল্টেজ বিভাজক এনালগ ইনপুট থেকে পড়া মান কমপক্ষে থেকে একটি PWM মাপের রূপান্তরিত হয় 20 একটি 255. তীক্ষ্ণ স্বরূপ জিনিস বানাতে অনুপস্থিত, যখন photoresistor সম্পূর্ণরূপে আড়াল করা হয় আপনি পরীক্ষা করবেন এবং লাগাতে পারেন কি একটি BGTVMAX, এছাড়াও তদ্বিপরীত যখন এটি জোরালোভাবে উদ্ভাসিত হয় এটা মান সনাক্ত করা হয় জন্য করা BGTVMIN হতে.

ফাংশনের একটি ছোট বর্ণনা , sprintf():

%0?ঘ এটা তোলে অনুপস্থিত সংখ্যায় পর্যবসিত শূন্য সঙ্গে ভর্তি সঙ্গে একটি দশমিক সংখ্যা লিখতে নির্ধারিত হয়. সঙ্গে ? এটা তোলে ডিজিটের প্রতিনিধিত্ব করতে সংখ্যা নির্ধারণ করে.

ক্রিয়া নতুন নথি() চেক একটি ফাইল আগে থেকেই আছে, এবং তারপর পাল্টা বৃদ্ধি কিনা.

এই জন্য আপনি একটি নতুন চেষ্টা করুন এবং যদি এই নামটি ইতিমধ্যেই একটি ফাইল নির্ধারিত হয় ঘটে. উদাহরণস্বরূপ, যদি সিস্টেম ঘন ঘন পুনরায় বুট করা হয়, ঠ 'শেষ ফাইলটি overwrite নয় তবে থেকে মান বৃদ্ধি সঙ্গে এক যোগ 0 একটি 255. আমি হেক্সাডেসিমেল সংখ্যা লাগাতে চেয়েছিল, কিন্তু সম্ভবত আমি এখনো বুঝতে পারেন নি আছে, sprintf জন্য লিখতে কিভাবে(), কারণ এটির আরও বেশি ব্যাখ্যা করতে জটিল হয়ে.

আমি বার্ষিক সময়ের descivere কেবল একটি চিত্র ব্যবহার করতে বিবেচিত, তাই হিসাবে লেখার ডেটা গ্যারান্টি 10 বয়স, স্মৃতি থেকে ফাইল অপসারণ ছাড়া.

প্রোগ্রাম দুটি অবস্থার যে তার চরম মধ্যে প্রতিনিধিত্ব সীমিত আছে:

sensorVal = (sensorVal > VMIN) ? sensorVal : VMIN;

sensorVal = (sensorVal < VMAX) ? sensorVal : VMAX;

কি সীমা অতিক্রম প্রতিনিধিত্ব প্রভাবিত. এর মানে সীমা গ্রহণ করা হয় না তার পরেও যে মান এবং সেইজন্য শুধুমাত্র সর্বনিম্ন বা সর্বোচ্চ প্রতিনিধিত্ব করা হয়, কেস উপর নির্ভর করে.

গত নোট:

প্রোগ্রাম সনাক্তকরণ এসডি মধ্যে বা 'ঘড়ি কোনো ত্রুটির সম্মুখীন হলে, তারপর এগিয়ে নেই এবং বিপর্যের. যদি সিরিয়াল তিনি মে নোটিশ বার্তা সক্রিয় করেননি.

যখন এটি সনাক্ত করে যে 'সময় আকারে বিচ্ছিন্ন হয়েছে, সিরিয়াল সংযোগ সহ আপনি সরাসরি করার জন্য আরও নিয়ন্ত্রণ থাকতে পারে একটা সময় সেট না করা বা সংযুক্ত কম্পিউটার লোড করার অনুমতি দেয় করার.

এই বিকল্প একটি অনুরোধ উপস্থাপন 3 পছন্দ:

এবং এটা আপনি বিন্যাস yy / MM / DD HH তারিখ এবং 'সময় প্রবেশ করতে পারবেন:মিমি:এস এস. সেখানে নেই
ফর্ম্যাটে একটি বাস্তব বাধ্যতা, এক বা 2 পরিসংখ্যান কোনো পার্থক্য করে তোলে, সম্মান একমাত্র যোগ্য
ক্ষেত্র যে বিভেদক / : এবং তারিখ মধ্যে একটি স্থান এবং 'এখন.

সঙ্গে 'অপেক্ষা করুন এবং সঙ্গে প্রোগ্রাম অবিরত' লাফালাফি সময়নিরুপণতালিকা অপরিবর্তিত হবে.

এইচ এটা তোলে আপনি প্রোগ্রাম কার্যধারা বন্ধ করতে পারবেন. সুতরাং হিসাবে রিসেট বাটন সঙ্গে পুনর্সূচনা সহজতর.

অন্য যে কোন কী বা ওয়েটিং জন্য 3 সেকেন্ড, এটা তোলে তোমাদের 'সময় লোড করতে পারবেন
কম্পিউটার.

এই কারণে, পছন্দ সময়ের মধ্যে সঞ্চালন করা আবশ্যক 3 দ্বিতীয়, অন্যথায় প্রোগ্রাম স্বয়ংক্রিয়ভাবে 'সময় আপগ্রেড করার সিদ্ধান্ত নেন. যে বিবেচনা সিরিয়াল মনিটর আইডিই এছাড়াও ঘ লিখতে হবে 'সেন্ড বাটন, কমান্ড নিতে.

অতএব আপনি বা এই জন্য এটি সক্ষম করতে হবে ঠিকঠাক কারণ দেখতে পাবে. আমি তাই প্রাথমিক পরীক্ষার সময়েও সিরিয়াল সক্রিয় রাখতে এবং শুধুমাত্র যখন এক নিশ্চিত অপারেশন তাহলে এই অপশনটি নিষ্ক্রিয় যদি আপনি চান পরামর্শ চাই. সব পরে, এটি যাও Arduino কাজ যুগের অনেক ব্যাপৃত না.

প্রদর্শন প্রতি সেকেন্ডে একবার আপডেট করা হয়, কেন এমন ন্যূনতম ফ্রিকোয়েন্সি সীমা নমুনা আয় লেখার প্রক্রিয়া. Dell 'আরটিসি ফাংশন যা সেকেন্ডের মধ্যে সর্বনিম্ন মূল্যের আমাকে মনে করিয়ে দেয় ব্যবহার লেখার সময়সীমার জন্য দেল বাকি.

নমুনা অন্তত গ্রহণ করা একটি ফাংশন আছে 10 রিডিং এবং গড়ে পৌঁছাতে. সর্বাধিক হতে পারে 64, কিন্তু এটা উৎস লাইন থেকে সরাসরি হস্তক্ষেপ নয়. এটি একটি পরিবর্তনশীল ব্যবহার যেহেতু 2 তারপর বাইট 64 এটা তোলে উপরের সীমা.

প্রোগ্রাম এখানে চাপ রূপান্তর জন্য ব্যবহার করা হয়, যাইহোক, এটা নির্দিষ্ট ক্ষেত্রে সীমাবদ্ধ নয়. বস্তুত, মান যে কনফিগার করা যেতে পারে অনেক ধরনের সেন্সর প্রতিক্রিয়ায় যা একটি এনালগ ভোল্টেজ আছে এডিসি রূপান্তরকারী Arduino সঙ্গে পড়া যায় পাঠ অনুমতি.

প্যাকেজ আপনার কাছ থেকে বিনামূল্যে ডাউনলোড করতে পারেন আমার ড্রাইভ.

আমি একটি ভিডিও করা ইউটিউব.

2 প্রত্যুত্তর
  1. Picmicro675
    Picmicro675 বলেছেন:

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

  2. gvsoft
    gvsoft বলেছেন:

    আমি খুব বিশ্বাসী না বা আমি ভুল পড়ে থাকতে পারি: কে ব্লুটোহ পরিচালনা করে ? স্কেচে আমি এটি দেখতে পাচ্ছি না.
    বাকীগুলির জন্য আমি স্কেচটি আরও ভালভাবে পড়ার অধিকার সংরক্ষণ করি: প্রথম পড়ার সময় এটি আমাকে বোঝায় না.
    গ্রিটিংস

উত্তর দিন

আলোচনায় যোগ দিতে চান?
অবদান নির্দ্বিধায়!

উত্তর দিন