সুচিপত্র:

সিলভারলাইট: সার্ভার রুমের জন্য Arduino ভিত্তিক পরিবেশগত মনিটর: 3 টি ধাপ (ছবি সহ)
সিলভারলাইট: সার্ভার রুমের জন্য Arduino ভিত্তিক পরিবেশগত মনিটর: 3 টি ধাপ (ছবি সহ)

ভিডিও: সিলভারলাইট: সার্ভার রুমের জন্য Arduino ভিত্তিক পরিবেশগত মনিটর: 3 টি ধাপ (ছবি সহ)

ভিডিও: সিলভারলাইট: সার্ভার রুমের জন্য Arduino ভিত্তিক পরিবেশগত মনিটর: 3 টি ধাপ (ছবি সহ)
ভিডিও: Ahogar las penas - Silver Light 2024, জুলাই
Anonim
সিলভারলাইট: সার্ভার রুমের জন্য Arduino ভিত্তিক পরিবেশগত মনিটর
সিলভারলাইট: সার্ভার রুমের জন্য Arduino ভিত্তিক পরিবেশগত মনিটর
সিলভারলাইট: সার্ভার রুমের জন্য Arduino ভিত্তিক পরিবেশগত মনিটর
সিলভারলাইট: সার্ভার রুমের জন্য Arduino ভিত্তিক পরিবেশগত মনিটর
সিলভারলাইট: সার্ভার রুমের জন্য Arduino ভিত্তিক পরিবেশগত মনিটর
সিলভারলাইট: সার্ভার রুমের জন্য Arduino ভিত্তিক পরিবেশগত মনিটর
সিলভারলাইট: সার্ভার রুমের জন্য Arduino ভিত্তিক পরিবেশগত মনিটর
সিলভারলাইট: সার্ভার রুমের জন্য Arduino ভিত্তিক পরিবেশগত মনিটর

একবার আমাকে আমার কোম্পানির সার্ভার রুমে তাপমাত্রা পর্যবেক্ষণের জন্য পরিবেশগত অনুসন্ধানের জন্য কাজ দেওয়া হয়েছিল। আমার প্রথম ধারণা ছিল: কেন শুধু একটি রাস্পবেরি PI এবং একটি DHT সেন্সর ব্যবহার করবেন না, এটি OS ইনস্টলেশন সহ এক ঘন্টারও কম সময়ে সেটআপ করা যাবে। এর জন্য আমি চোখ বেঁধে বসিদের কাছ থেকে ঠান্ডা প্রতিক্রিয়া পেয়েছি যে আমরা তা করব না কারণ এটি একটি ডিভাইস কেনার চেয়ে সেট আপ করতে কাজের সময় বেশি খরচ হবে। আমার জীবনের একটি অংশের জন্য এইরকম সংকীর্ণ মনের মানুষকে গ্রহণ করা এক জিনিস ছিল এবং আমি ইবে থেকে কিছু এন্টারপ্রাইজ গ্রেড EATON জাঙ্কের অর্ডার দিয়েছিলাম এবং এটি কল করেছিলাম কিন্তু আমি সেই মুহূর্তে সিদ্ধান্ত নিয়েছিলাম যে আমার নিজের সার্ভার রুমের জন্য আমি একটি সম্পূর্ণ ওপেন সোর্স Arduino তৈরি করব ভিত্তিক ডিভাইস যা আমি যা অর্ডার করেছি তার চেয়ে অনেক ভালো হবে।

এই প্রকল্পের নাম সিলভারলাইট, আমাকে জিজ্ঞাসা করবেন না যে আমি এই নামগুলি কোথা থেকে পেয়েছি:) আমি শুধু চকচকে হাফ এক্রাইলিক বক্সের দিকে তাকিয়ে এই নামের সাথে সিদ্ধান্ত নিয়েছি, মাইক্রোহুফ পণ্যের সাথে আমি যা খুঁজে পেয়েছি তার সাথে এর কোন সম্পর্ক নেই ।

ধাপ 1: হার্ডওয়্যার ডিজাইন

হার্ডওয়্যার ডিজাইন
হার্ডওয়্যার ডিজাইন
হার্ডওয়্যার ডিজাইন
হার্ডওয়্যার ডিজাইন
হার্ডওয়্যার ডিজাইন
হার্ডওয়্যার ডিজাইন

বাণিজ্যিক হার্ডওয়্যার ওভারভিউ।

ঠিক আছে তাই আমি শুরু করি না যার মহান ধারণা ছিল একটি পরিবেশের মনিটর একটি আপের ভিতরে রাখা কিন্তু স্পষ্টতই এর জন্য একটি বাজার আছে তাই আসুন দেখি কি করা যায়:

পরিবেশ পর্যবেক্ষণ যন্ত্র সামঞ্জস্য

10/100Mb নেটওয়ার্ক- MS, PXGUPS, PXGPDP, এবং PXGMS।

FW V3.01 এবং উচ্চতর সঙ্গে 10/100Mb ConnectUPS-X, ConnectUPS-BD এবং ConnectUPS-E। মাত্রা (LXWXH)

2.26 x 1.48 x 1.15 (ইঞ্চি) 57.6 x 37.6 x 29.3 (মিমি) ওজন

1.19 ওজ (34 গ্রাম)

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

এই প্রকল্পটি আমার একাধিক প্রকল্পের সংমিশ্রণ: নাটালিয়া আবহাওয়া কেন্দ্র, ফিনিক্সের ছায়া। বাক্সটি নিম্নলিখিত পরিবেশগত সীমাবদ্ধতাগুলি পর্যবেক্ষণ করতে সক্ষম:

  • তাপমাত্রা/আর্দ্রতা/তাপ সূচক
  • এলপিজি, ধোঁয়া, অ্যালকোহল, প্রোপেন, হাইড্রোজেন, মিথেন এবং বাতাসে কার্বন মনোক্সাইডের ঘনত্ব (MQ2)
  • সৌর সংবেদনশীলতা (সার্ভার রুমে আলো জ্বলছে?)
  • মোশন পিআইআর সেন্সর (আপনি এখন থেকে স্বয়ংক্রিয়ভাবে লাইট অন/অফ করতে পারেন মোশন সেন্সরকে ধন্যবাদ যখন কেউ রুমে প্রবেশ করে)

এই সমস্ত ডেটা একটি এলসিডি স্ক্রিনে সুন্দরভাবে প্রদর্শিত হয় এবং আরও প্রসেসিং এবং সতর্কতার জন্য একটি কম্পিউটারে (কমলা পিআই জিরো) রিলে থাকে। যদিও ডিএইচটি এবং এমকিউ 2 এর ডিজিটাল পিনের মতো ডিজিটাল সেন্সরগুলি সরাসরি অরেঞ্জপিআই -তে সংযুক্ত করা সম্ভব হবে, আমি সবসময় এই কাজগুলির জন্য ডেডিকেটেড মাইক্রো ব্যবহার করতে পছন্দ করি এবং যখন আপনার LCD আপডেট করার প্রয়োজন হয় এবং অন্যান্য নিম্ন স্তরের আরডুইনো জিনিসটি কেবল অপরাজেয় এবং অনেক বছর ধরে নির্ভরযোগ্যভাবে অ-স্টপ চালাতে পারে (আসলে 24/7 রান করা একটিও আরডুইনো আমার কাছে ব্যর্থ হয়নি)। অরেঞ্জপিআই এর ত্রুটিগুলি (আসুন এটি 10 ডলারের কম্পিউটার) এর মতো ভারী কাজের চাপের জন্য ব্যবহারযোগ্য নয়, কোনও বিএসডি সমর্থন নেই, ইন্টিগ্রেটেড ওয়াইফাই ফুলে গেছে ইত্যাদি সহজেই ছোট কাজের চাপ সামলাতে পারে যেমন সিরিয়াল (ইউএসবি) এর মাধ্যমে সেন্সর রিডিং নেওয়া এবং সেগুলি প্রক্রিয়া করা।

এটি একটি খুব সহজ প্রকল্প হার্ডওয়্যার ভিত্তিক যা নিম্নলিখিত উপাদানগুলির প্রয়োজন:

  • Arduino PRO মাইক্রো
  • এলসিডি স্ক্রিন 2x16 অক্ষর আরজিবি
  • এসি-ডিসি বিচ্ছিন্ন সুইচ পাওয়ার মডিউল 220V থেকে 5V HLK-5M05 (এগুলি Arduino/ESP প্রকল্পগুলির জন্য খুব ভাল), এটি 5V/5W সংস্করণ!
  • 2x300ohm প্রতিরোধক
  • 2xleds (লাল/সবুজ)
  • পিআইআর মোশন সেন্সর
  • MQ2 সেন্সর
  • DHT22
  • এলডিআর
  • 2X10Kohm প্রতিরোধক
  • বুজার
  • কমলা পিআই জিরো
  • মিনি ইউএসবি ডেটা ক্যাবল

আমি এইমাত্র ব্যবহৃত নিয়মিত ব্রেডবোর্ডের জন্য একটি পিসিবি তৈরি করতেও বিরক্ত হইনি কারণ উপাদানগুলি কেবল আরডুইনোতে সংযুক্ত হতে পারে (সংযুক্ত ছবিগুলি দেখুন):

-DHT22- এর VCC (ডিজিটাল) -এ 10K পুলআপের প্রয়োজন হবে

-এলডিআর এর জন্য 10K পুলডাউন থেকে GND প্রয়োজন হবে (এনালগ)

-MQ2 সরাসরি যেকোনো এনালগ পিনের সাথে সংযুক্ত হতে পারে এটা থেকে কম, আমার নকশা মধ্যে gluing যে যাই হোক না কেন অ্যাক্সেসযোগ্য। চেক করুন:

-পিআইআর সরাসরি যেকোন পিনের সাথে সংযুক্ত হতে পারে (ডিজিটাল)

-এলসিডি: 4 টি পিন দিয়ে চালিত হতে পারে, যেকোন পিনের সাথে সংযুক্ত হতে পারে (ডিজিটাল) প্রয়োজন হবে +2 RS/E (ডিজিটাল)

-বাজার: সরাসরি কোন Arduino পিনের সাথে সংযুক্ত হতে পারে (ডিজিটাল)

আমি যে পিনআউটটি ব্যবহার করেছি তা কোডে দেখা যাবে। সবকিছুকে একসাথে সংযুক্ত করার পরে এটি বেশ সোজা, আপনি একে একে একে করতে পারেন, নিশ্চিত করুন যে 1 টি সেন্সর পুরোপুরি কাজ করে তারপর পরবর্তীটিতে এগিয়ে যান, আপনি যা ভুল করতে পারেন তা হল ভুল জায়গায় তারের সংযোগ দিয়ে (যেমন অদলবদল vcc /gnd একটি সেন্সরের জন্য, এখন পর্যন্ত এটি আমার কোন ডিভাইসকে হত্যা করে নি)। আমি এখানে লক্ষ্য করবো যে আমার জন্য অনেকগুলি VCC এবং GNDs সজ্জিত ছিল, আমি তাদের একটি টার্মিনাল স্ট্রিপ দিয়ে চেপে ধরতে পারছিলাম না তাই আমি তাদের সবাইকে বিক্রি করেছিলাম।

এছাড়াও DHT গুলি সম্পর্কে আমার অন্যান্য প্রকল্পগুলি ভুলে যাবেন না: যদি আপনি আপনার কোডে DHT লাইব্রেরি রাখেন এবং DHT সেন্সর সংযুক্ত না হয় বা ভুল DHT সংযুক্ত থাকে (যেমন 11 আপনি 22 ব্যবহার করছেন কোডে সংজ্ঞায়িত) যা প্রোগ্রামের দিকে নিয়ে যেতে পারে শুরুতে চিরতরে ঝুলতে।

পিআইআর মোশন ডিটেকশন সেন্সর সম্বন্ধে, যেমন আপনি আমার ছবিতে দেখতে পাচ্ছেন এগুলোর প্রচুর নকল নকল আছে, আসলে আমি ইবে থেকে একটি আসল কিনতেও কষ্ট পাব। নকলগুলি ঠিক একইভাবে কাজ করে, এমনকি দীর্ঘমেয়াদেও কিন্তু তাদের সার্কিট মিরর থাকে যার কারণে + এবং - পিনগুলি উল্টে যায়, এগুলি থেকেও সনাক্ত করা সহজ: নীল পিসিবি দিয়ে আসা স্বাভাবিক সবুজ নয়, এর জন্য লেবেলগুলি অনুপস্থিত পটমিটার আমি আমার বাক্সে একটি প্রকৃত খুঁজে পেতে ভাগ্যবান অন্যথায় অবস্থান পরিবর্তন আমার জন্য 2 এলইডি আবরণ হবে। আমি দেখেছি যে উভয় পাত্র মাঝপথে কাজ করে আমার জন্য কাজ করে। এটি আপনাকে অনুভূতির জন্য যথেষ্ট দীর্ঘ পরিসীমা দেবে যখন গতি থাকবে তখন ডিজিটাল লেগটি প্রায় এক মিনিটের জন্য উচ্চ অবস্থানে রাখা হবে, তাই আপনাকে এর জন্য কোড তৈরি করতে হবে না। নকলগুলিতে এটি নির্ধারণ করা সহজ যে কোনটি - এবং + পিনের সাথে সংযুক্ত ইলেক্ট্রোলাইটিক ক্যাপগুলির জন্য সংশ্লিষ্ট পাগুলি দেখুন।

বাক্সটি কাটার জন্য আমি ডায়মন্ড ড্রেমেল হেড (যা ওভারকিল ছিল কিন্তু দারুণ কাজ করেছিল) এবং নিয়মিত ড্রিলিং মেশিন ব্যবহার করতাম। এই জংশন বক্সগুলির সাথে কাজ করা সহজ এবং যদিও আমি gluing পছন্দ করি না যদিও এটি তৈরির সময় আমার হাতে স্ক্রু এবং বোল্ট ছিল না তাই একসঙ্গে gluing জিনিসপত্রের দরকষাকষি নিয়েছিল (যা সহজেই পুনরায় গরম করা যায় এবং পরে ব্যবহার করে আলাদা করা যায় এটিতে ফিলামেন্ট ছাড়া একই আঠালো বন্দুক)।

ধাপ 2: সফটওয়্যার ডিজাইন

সফটওয়্যার ডিজাইন
সফটওয়্যার ডিজাইন
সফটওয়্যার ডিজাইন
সফটওয়্যার ডিজাইন

আরডুইনো কোডটিও সহজ, এটি মূলত প্রতিটি লুপের শুরুতে সমস্ত সেন্সর রিডিংগুলিকে টেনে নিয়ে যায়। গতি বা ধোঁয়া থাকলে এলইডি চালু করে এবং ধোঁয়া থাকলে বুজারে অ্যালার্ম সাউন্ড বাজায় (এটি একমাত্র ব্লকিং কোড তাই আমি এটিকে সংক্ষিপ্ত করেছিলাম), তারপর এলসিডিতে ডেটা প্রদর্শন করে এবং অবশেষে এটি পিসিতে পাঠায় 10 সেকেন্ড হোল্ড পিরিয়ড দিয়ে, পোর্ট বন্যার জন্য নয়।

এই প্রকল্পটি Arduino-> OrangePI থেকে একমুখী যোগাযোগ ব্যবহার করে, কোন ধরনের প্রয়োগের কোন কমান্ড নেই। যদিও এটি করা সম্পূর্ণরূপে সম্ভব হবে যেমনটি আমি আমার অন্য একটি প্রকল্পে করেছি যেখানে কম্পিউটার LCD_PRINT1 বা LCD_PRINT2 পাঠাতে পারে LCD স্ক্রিনের একটি লাইনকে তার নিজের বার্তা দিয়ে (যেমন: আইপি ঠিকানা, আপটাইম, সিস্টেম তারিখ, সিপিইউ ব্যবহার), 3 টি সেন্সর থেকে ডেটা প্রদর্শনের জন্য স্ক্রিন এরিয়া এত ছোট যে আমি বিরক্ত করিনি। এসওএল এবং এসএমকে মান উভয়ই 4 অঙ্কে যেতে পারে 0000-1023 ইতিমধ্যেই স্ক্রিনে 8 মূল্যবান অক্ষর গ্রহণ করে।

এলসিডি দিয়ে আপনি কোডে একটি ছোট্ট কৌশল লক্ষ্য করতে পারেন যে প্রতিটি পরিমাপকৃত মান পরে সাদা স্পেস ("") এর একটি প্রিন্ট প্রয়োগ করা হয়, তারপর আমি নতুন আইকন এবং ডেটা রাখার জন্য কার্সারকে নির্দিষ্ট অবস্থানে সরিয়ে ফেলি। এইগুলি আছে কারণ LCD সংখ্যাগুলি বোঝার জন্য স্মার্ট নয়, এটি কেবল যা পায় তা আঁকতে পারে এবং উদাহরণস্বরূপ যদি আপনার 525 এর সৌর মান থাকে যা হঠাৎ করে 3 তে নেমে যায় তবে এটি স্ক্রিনে পুরানো আবর্জনা রেখে 325 প্রদর্শন করবে সেখানে

একটি সি কন্ট্রোল কোড অরেঞ্জপিআইতে চলছে এবং পরিবেশগত তথ্য লগ ইন করছে এবং প্রয়োজনে ইমেল সতর্কতা পাঠাচ্ছে।

অরেঞ্জপিআই আর্মবিয়ান চালাচ্ছে (যা লেখার সময় ডেবিয়ান স্ট্রেচের উপর ভিত্তি করে)। আমি সফ্টওয়্যার অংশে এটি অন্তর্ভুক্ত করব এটি একটি hw সমস্যা যা এটি সমাধান করেছে। এখানে ডিভাইসের গড় পাওয়ার ড্রেন রয়েছে:

0.17 A - Arduino শুধুমাত্র + সেন্সর

0.5-0.62 এ - অরেঞ্জপিআই বুটিং

0.31 A - অলস অবস্থায় কমলা পিআই

0.29 এ - কমলা পিআই চালিত

0.60 A - 4 কোরে স্ট্রেস টেস্ট 100% CPU ব্যবহার

আমার এই অরেঞ্জপিআইটি অনেক দিন ধরে একটি বাক্সে ছিল। পুরানো কার্নেলের সাহায্যে ডিভাইসটি এত বেশি স্রোত (যেমন মিটার 0.63 A এর কাছাকাছি পৌঁছেছিল) যা তিনি PSU সম্ভবত প্রদান করতে পারেননি যে এটি কেবল বুট হয়নি, বুট প্রক্রিয়াটি আটকে গেছে এবং আমি 2 টি ইথারনেট LEDs হালকা হয়েছি ক্রমাগত এবং কিছুই করছেন না।

এখন এটি এক ধরণের বিরক্তিকর কারণ HLK-5M05 দাবি করে যে এটি 5V তে 5W করতে পারে যার ফলে এটি 1 Amp প্রদান করতে সক্ষম হচ্ছে কিন্তু এই ডিভাইসগুলি চীন থেকে বেরিয়ে আসার সাথে আপনি জানেন না, 0.63 A শিখরটি রেট করা সর্বোচ্চের চেয়ে অনেক কম ছিল মান তাই আমি সহজ রিবুট পরীক্ষা চালাচ্ছিলাম, 10 টি রিবুট থেকে অরেঞ্জপিআই কেবল দুবার সফলভাবে বুট হবে, যা আমাকে প্রকল্প থেকে প্রায় ফেলে দিয়েছে কারণ আমি সার্কিটগুলিতে বাগি অসঙ্গত আচরণ পছন্দ করি না। তাই আমি চারপাশে গুগলিং শুরু করেছি সম্ভবত সফ্টওয়্যার থেকে বুট করার সময় বিদ্যুৎ খরচ কমানোর একটি উপায় আছে (যেহেতু এটি তখন একটি সমস্যা ছিল) এবং স্ক্রিপ্ট.বিনকে টুইক করার বিষয়ে কিছু নিবন্ধ পাওয়া গেছে কিন্তু এটি অরেঞ্জ পিআই পিসি এবং ফাইলগুলি স্টোরেজ থেকে অনুপস্থিত ছিল তাই শেষ অবলম্বন হিসাবে যাই হোক না কেন আমি ফার্মওয়্যার, কার্নেল এবং অন্য সব কিছু আপগ্রেড করার জন্য যাদুকরী "উপযুক্ত আপগ্রেড" করেছি, আশা করি এটি কম ড্রেন হবে এবং ডিভাইসটি বুট করতে পারে এবং:

লিনাক্স সিলভারলাইট 4.14.18-সানক্সি #24 এসএমপি শুক্র 9 ফেব্রুয়ারি 16:24:32 CET 2018 armv7l GNU/Linux

লিনাক্স সিলভারলাইট 4.19.62-সানক্সি #5.92 SMP বুধ জুলাই 31 22:07:23 CEST 2019 armv7l GNU/Linux

এটা কাজ করেছে! হার্ডওয়্যারকে একটি সফটওয়্যার সমস্যায় ফেলে দেওয়া সাধারণত অলস জাভা ডেভেলপারদের জায়গায় যেতে হয় কিন্তু এই ক্ষেত্রে আমরা সফটওয়্যারের সাথে একটি হার্ডওয়্যার সমস্যার সমাধান করেছি যা কত বড় সাফল্য। আমি আরও 20 টি রিবুট পরীক্ষার মতো করেছি যা ডিভাইসটি প্রতিটি ক্ষেত্রে বুট হয়েছে। আমি এখনও লক্ষ্য করবো যে অপি (সংযোগ/সংযোগ বিচ্ছিন্ন করা) থেকে বিদ্যুৎ বৃদ্ধি এত বড় যে এটি যে কোনও সময় Arduino পুনরায় সেট করবে (একটি সহজ রিবুট এলসিডি ঝলকানি করবে কিন্তু কোন সমস্যা হবে না), কিন্তু এই সমস্যাটি রয়ে গেছে লুকানো যেহেতু 2 টি একসাথে বুট করা হবে।

আমি কার্নেল মডিউলগুলিও দেখেছি:

usb_f_acm u_serial g_serial libcomposite xradio_wlan mac80211 লিমা sun8i_codec_analog snd_soc_simple_card gpu_sched sun8i_adda_pr_regmap sun4i_i2s snd_soc_simple_card_utils ttm sun4i_gpadc_iio snd_soc_core cfg80211 snd_pcm_dmaengine industrialio snd_pcm snd_timer Snd sun8i_ths soundcore cpufreq_dt uio_pdrv_genirq uio thermal_sys pwrseq_simple

এগুলো থেকে আমাদের আসলে কি দরকার? ঠিক আছে পিডব্লিউআর এবং থার্মাল দরকারী হতে পারে কিন্তু শব্দ, সিরিয়াল পোর্ট, ওয়াইফাই (ইতিমধ্যে ভাঙ্গা এইচডব্লিউ) আমাদের দরকার নেই এই সবগুলিকে কালো তালিকাভুক্ত করা যেতে পারে। আমি পরবর্তীতে শুধুমাত্র প্রয়োজনীয় মডিউল সহ একটি কাস্টম কার্নেল তৈরি করব।

আমাদের যা প্রয়োজন এবং এটি ডিফল্টরূপে লোড হয় না তা হল আরডুইনো এর সাথে যোগাযোগ করার জন্য CDC ACM, এটি দিয়ে সক্ষম করুন:

প্রতিধ্বনি "cdc-acm" >> /etc /modules

এর পরে আপনি ইতিমধ্যে এর সাথে সংযোগ পরীক্ষা করতে পারেন:

স্ক্রিন /dev /ttyACM0 9600

আপনি প্রতি 10 সেকেন্ডে স্ট্যাটাস ডেটা পাঠানো দেখতে পাবেন।

সতর্কতা এবং পর্যবেক্ষণ

সতর্কতা হিসাবে আমি কেবল সি কন্ট্রোল কোডে সিস্টেম () কল করি যা সিরিয়াল থেকে ডেটা গ্রহণ করে যাতে কোনও বাহ্যিক সরঞ্জামের প্রয়োজন হয় না। কিছু উদাহরণ সতর্কতা:

- তাপমাত্রা 30 C এর উপরে

- আর্দ্রতা 70 % ছাড়িয়ে যায় (সার্ভারের জন্য স্বাস্থ্যকর নয়)

- রুমে মোশন সনাক্ত করা হয়েছে (আপনি যদি আপনার সার্ভার রুমে যেতে থাকেন তবে এটি বিরক্তিকর হতে পারে)

- ধোঁয়া বা গ্যাস সনাক্ত করা হয়েছে (100 টিরও বেশি সতর্কতা গুরুত্ব সহকারে নেওয়া যেতে পারে, আমি এই সেন্সরের সাথে খেলেছি এবং এটি প্রচুর জিনিসের জন্য চালু হয়, উদাহরণস্বরূপ সোল্ডারিং লোহার সাথে সেন্সরের পাশে ধোঁয়া তৈরি করার ফলে পরবর্তী সিগারেট ধূমপান করার সময় 50 এরও বেশি হয় o এটি 500 পর্যন্ত বৃদ্ধি পেয়েছে, এমনকি এটি দূর থেকে নিয়মিত ডিওডোরেন্ট থেকে গ্যাস সনাক্ত করেছে)

Historicalতিহাসিক তথ্য রাখার জন্য আমি একটি টুল তৈরিতে বিরক্ত হইনি কারণ যখন আমরা সেখানে চমৎকার পর্যবেক্ষণ কাঠামো পেয়েছিলাম তখন কেন চাকাটি পুনরায় উদ্ভাবন করতে হবে। আমি কিভাবে আমার ব্যক্তিগত প্রিয়, জ্যাবিক্স এর সাথে এটি সংহত করতে পারি তার একটি উদাহরণ দেখাবো:

apt-get zabbix-agent ইনস্টল করুন

এর শেষে যোগ করুন: /etc/zabbix/zabbix_agentd.conf

UserParameter = silverlight.hum, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{মুদ্রণ $ 1}'

UserParameter = silverlight.tmp, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{print $ 2}' UserParameter = silverlight.sol, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{print $ 4}' UserParameter = silverlight.mot, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{print $ 5}' UserParameter = silverlight.smk, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{print $ 6}'

Zabbix_agentd -p চলছে এখন সঠিক মানগুলি ফিরে আসা উচিত:

silverlight.hum [t | 41]

silverlight.tmp [t | 23] silverlight.sol [t | 144] silverlight.mot [t | 0] silverlight.smk [t | 19]

তাপ সূচক, আমি এটি সংগ্রহ করি কিন্তু এটির কোন ব্যবহারিক ব্যবহার দেখতে পাই না তাই এটি কেবল লগ ইন করা হয়। সি কন্ট্রোল কোডে আমি 2 টি লগিং ফাংশন প্রয়োগ করেছি, প্রথমটি ব্যবহারকারী বান্ধব বিন্যাসে সমস্ত ডেটা লগ করবে:

[সিলভারলাইট] 2019-09-10 এ প্রাপ্ত তথ্য 23:36:08 => আর্দ্রতা: 44, তাপমাত্রা: 22, হাই: 25, সৌর: 0, গতি: 0, ধোঁয়া: 21

[সিলভারলাইট] 2019-09-10 এ প্রাপ্ত তথ্য 23:36:18 => আর্দ্রতা: 44, তাপমাত্রা: 22, হাই: 25, সৌর: 0, গতি: 0, ধোঁয়া: 21 [সিলভারলাইট] 2019-09 এ প্রাপ্ত তথ্য -10 23:36:29 => আর্দ্রতা: 44, তাপমাত্রা: 22, হাই: 25, সৌর: 0, গতি: 0, ধোঁয়া: 22 [সিলভারলাইট] 2019-09-10 23:36:39 এ প্রাপ্ত ডেটা আর্দ্রতা: 44, তাপমাত্রা: 22, হাই: 25, সৌর: 0, গতি: 0, ধোঁয়া: 21

দ্বিতীয়টি:

void logger2 (char *text) {

FILE *f = fopen ("/dev/shm/silverlight-zbx.log", "w"); যদি (f == NULL) {printf ("মেমরি লগ ফাইল খুলতে ত্রুটি! / n"); প্রত্যাবর্তন; } fprintf (f, "%s", পাঠ্য); fclose (চ); প্রত্যাবর্তন; }

এটি একটি 1 লাইনার লগ মেমরিতে রাখবে (sdcard এ অপ্রয়োজনীয় rw অপারেশন দূর করবে) যা পরের বার সবসময় ওভাররাইট হবে। এই লগটিতে কেবল 6 টি ডেটা কলাম থাকবে এবং টাইমস্ট্যাম্প থাকবে না, এটি জাববিক্সের জন্য সহজেই পাঠযোগ্য।

একটি চূড়ান্ত বোনাস হিসাবে: কীভাবে অরেঞ্জিপিআই থেকে সরাসরি আরডুইনো প্রোগ্রাম করবেন যাতে আপনাকে প্রতিবার ডিভাইসে যেতে না হয় এবং আপনার ল্যাপটপে প্লাগ করতে হয়।

2 উপায় আছে:

-সহজ উপায়: সম্পূর্ণ Arduino IDE ইনস্টল করুন এবং লাইব্রেরিগুলি কিছু দূরবর্তী ডেস্কটপ ব্যবহার করে যেমন X11 ফরওয়ার্ডিং, Xrdp, Xvnc, Nxserver ইত্যাদি

-কঠিন উপায়: Arduino IDE ইনস্টল করুন এবং কমান্ড লাইন ব্যবহার করুন

আমরা এই সময় কঠিন ভাবে কাজ করতে যাচ্ছি যেহেতু আমি সার্ভারে X11 ইনস্টল করতে পছন্দ করি না। এই জন্য আপনি 6 উপাদান প্রয়োজন হবে:

1, ARM 32 বিটের জন্য Arduino IDE ->

2, পাইথন সিরিয়াল-> apt-get python-serial ইনস্টল করুন

3, Arduino Makefile project -> git clone

4, DHT লাইব্রেরি

5, স্পার্কফুন বোর্ডের সংজ্ঞা

6, SilverLight.ino, প্রধান কোড

এটি সহজ করার জন্য আমি শেষ 4 টি পয়েন্ট (sketchbook.tgz) এর জন্য প্রয়োজনীয় ফাইলগুলিকে একত্রিত করেছি যাতে আপনার শুধুমাত্র প্রথম 2 টি প্রয়োজন হবে।

প্রথমে একটি নিয়মিত ব্যবহারকারী তৈরি করা সবচেয়ে ভাল যার USB পোর্টে rw অ্যাক্সেস রয়েছে:

adduser রূপা

usermod -a -G ডায়ালআউট রূপালী

SCP sketchbook.tgz নতুন তৈরি করা ব্যবহারকারীর হোম ডিরেক্টরিতে ডিভাইসে এবং ঠিক সেখানেই এক্সট্রাক্ট করুন:

সিডি /হোম /রূপা

tar xvzf sketchbook.tgz

যখন আপনি গ্রাফিকাল আইডিই ব্যবহার করছেন তখন হুডের নীচে কী চলছে তা কিছুটা বুঝতে:

Arduino IDE ব্যবহার করার সময় Arduino স্কেচ তৈরির বিল্ড ওয়ার্কফ্লো Arduino ওয়েবসাইট https://www.arduino.cc/en/Hacking/BuildProcess এ বর্ণনা করা হয়েছে এবং এখানে আরো বিস্তারিতভাবে: https://www.arduino.cc/ en/Hacking/BuildProcess

সাধারণত, স্ট্যান্ডার্ড Arduino নির্মাণ প্রক্রিয়া হল:

. Ino ফাইলগুলিকে মূল স্কেচ ফাইলে একত্রিত করুন। মূল স্কেচ ফাইলের রূপান্তর: #অন্তর্ভুক্ত বিবৃতি যোগ করুন; প্রধান স্কেচ ফাইলে সমস্ত ফাংশনের ফাংশন ডিক্লারেশন (প্রোটোটাইপ) তৈরি করুন; লক্ষ্যটির main.cxx ফাইলের বিষয়বস্তু প্রধান স্কেচ ফাইলে যুক্ত করুন। অবজেক্ট ফাইলগুলিতে কোড কম্পাইল করুন। Arduino এ আপলোড করার জন্য প্রস্তুত একটি.hex ফাইল তৈরির জন্য অবজেক্ট ফাইলগুলিকে লিঙ্ক করুন।

Arduino স্ট্যান্ডার্ড বিল্ড প্রসেস এবং Arduino-Makefile ব্যবহার করে বিল্ড প্রসেসের মধ্যে কিছু সামান্য পার্থক্য রয়েছে:

শুধুমাত্র একটি.ino ফাইল সমর্থিত।. Ino ফাইলে ফাংশন ঘোষণা স্বয়ংক্রিয়ভাবে তৈরি হয় না। ব্যবহারকারীকে সঠিক ফাংশন ঘোষণা তৈরির যত্ন নিতে হবে।

নির্মাণ প্রক্রিয়ার হৃদয় হল মেকফিল। চিন্তা করবেন না, সবকিছু আপনার জন্য প্রস্তুত, স্পার্কফুন সিরিজের মতো অ -মানক বোর্ডগুলির জন্য এইভাবে সংকলন করার সময় এটি কিছুটা জটিল।

BOARD_TAG = প্রোমিক্রো

ALTERNATE_CORE = SparkFun BOARD_SUB = 16MHzatmega32U4 ARDUINO_PORT =/dev/ttyACM0 USER_LIB_PATH =/home/silver/sketchbook/libraries ARDUINO_DIR = /opt/arduino-1.8.9 include /hook/sil/smude/shedu/smude

এবং আপনাকে যা লিখতে হবে তা হল: আপলোড করুন (যা প্রথমে.hex ফাইলগুলি তৈরি করবে তারপর সেগুলি আপলোড করার জন্য avrdude ব্যবহার করবে), এটি এমন কিছু দিয়ে শেষ হবে:

mkdir -p build-promicro-16MHzatmega32U4

make reset make [1]: Directory '/home/silver/sketchbook'/home/silver/sketchbook/Arduino-Makefile/bin/ard-reset-arduino --caterina/dev/ttyACM0 make [1]: নির্দেশিকা ছেড়ে যাওয়া ' /home/silver/sketchbook 'make do_upload make [1]: Entering directory'/home/silver/sketchbook '/opt/arduino-1.8.9/hardware/tools/avr/bin/avrdude -q -V -p atmega32u4 - C /opt/arduino-1.8.9/hardware/tools/avr/etc/avrdude.conf -D -c avr109 -b 57600 -P/dev/ttyACM0 U -U flash: w: build -promicro -16MHzatmega32U4/sketchbook। হেক্স: আমি প্রোগ্রামারের সাথে সংযোগ করছি:। পাওয়া প্রোগ্রামার: আইডি = "ক্যাটারিন"; টাইপ = এস সফটওয়্যার সংস্করণ = 1.0; হার্ডওয়্যার ভার্সন দেওয়া হয়নি। প্রোগ্রামার অটো অ্যাডর ইনক্রিমেন্ট সমর্থন করে। প্রোগ্রামার বাফারসাইজ = 128 বাইট সহ বাফার্ড মেমরি অ্যাক্সেস সমর্থন করে। প্রোগ্রামার নিম্নলিখিত ডিভাইসগুলিকে সমর্থন করে: ডিভাইস কোড: 0x44 avrdude: AVR ডিভাইস শুরু এবং নির্দেশাবলী গ্রহণ করার জন্য প্রস্তুত avrdude: ডিভাইসের স্বাক্ষর = 0x1e9587 (সম্ভবত m32u4) (11580 বাইট): avrdude: 11580 বাইট ফ্ল্যাশ লেখা avrdude: safemode: Fuses OK (E: CB, H: D8, L: FF) avrdude সম্পন্ন। ধন্যবাদ.

আচ্ছা ধন্যবাদ avrdude, এবং এখন আমাদের Arduino নতুন কোড দিয়ে পুনরায় সেট করা এবং প্রোগ্রাম করা হয়েছে, যা আপনি শুধু vi বা আপনার প্রিয় সম্পাদক স্থানীয়ভাবে সম্পাদনা করতে পারেন, কোন IDEs এর প্রয়োজন নেই। আমি মনে রাখব যে আপলোড করার সময় আপনার সি কন্ট্রোল প্রোগ্রাম, স্ক্রিন বা আরডুইনো অ্যাক্সেস করা অন্য কিছু বন্ধ করা উচিত, অন্যথায় রিসেট করার পরে পোর্ট /dev /ttyACM1 হিসাবে ফিরে আসবে।

ধাপ 3: বন্ধ এবং কাজ তালিকা

বন্ধ এবং টোডো তালিকা
বন্ধ এবং টোডো তালিকা
বন্ধ এবং টোডো তালিকা
বন্ধ এবং টোডো তালিকা
বন্ধ এবং টোডো তালিকা
বন্ধ এবং টোডো তালিকা

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

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

অরেঞ্জপিআই একটি সম্পূর্ণ স্ট্যাক আর্মবিয়ান চালানোর সাথে সাথে সম্ভাবনাগুলি সীমাহীন, আপনি গ্রাফগুলিতে historicতিহাসিক ডেটা প্রদর্শনের জন্য php এ স্ক্র্যাচ থেকে লেখা একটি স্থানীয় ওয়েব ইন্টারফেস তৈরি করতে পারেন। এটি কি ইতিমধ্যেই ভাল নয় যে আপনার সার্ভার রুমটি পর্যবেক্ষণ করার জন্য আপনার একটি সম্পূর্ণ ওপেন সোর্স ডিভাইস আছে, যা আপনি নির্মাণে গর্ব করতে পারেন, যদি আপনি মনে করেন যে এটি নিজে তৈরি করুন!

প্রস্তাবিত: