সুচিপত্র:

IoT RPi LED বার্তা বোর্ড: 3 টি ধাপ (ছবি সহ)
IoT RPi LED বার্তা বোর্ড: 3 টি ধাপ (ছবি সহ)

ভিডিও: IoT RPi LED বার্তা বোর্ড: 3 টি ধাপ (ছবি সহ)

ভিডিও: IoT RPi LED বার্তা বোর্ড: 3 টি ধাপ (ছবি সহ)
ভিডিও: ✨A Will Eternal EP 01 - 106 Full Version [MULTI SUB] 2024, ডিসেম্বর
Anonim
Image
Image
হার্ডওয়্যার সেটআপ
হার্ডওয়্যার সেটআপ

এই নির্দেশনায়, আমি রাস্পবেরি পাই (আরপিআই) ব্যবহার করে একটি ওয়াইফাই-সংযুক্ত LED বার্তা বোর্ড তৈরি করেছি। ব্যবহারকারীরা তাদের ব্রাউজার ব্যবহার করে রাস্পবেরি পাই এর ওয়েব সার্ভারের সাথে সংক্ষিপ্ত বার্তা জমা দেবে যা 8x8 LED ডিসপ্লেতে প্রদর্শিত হবে। যেহেতু পাইথনে MAX7219 ড্রাইভারের সাথে 8x8 LED ম্যাট্রিক্সের ইন্টারফেসিং ইন্টারনেটে অন্যদের দ্বারা ভালভাবে নথিভুক্ত করা হয়েছে, তাই এই প্রকল্পটি একটি ওয়েব সার্ভার ইন্টারফেস তৈরির উপর নির্ভর করে এবং ইনকামিং বার্তাগুলি পরিচালনা করতে ZeroMQ মেসেজিং ব্যবহার করে।

আপডেট: এখানে একটি ফলো-আপ প্রকল্প IoT দশমিক/হেক্সাডেসিমাল 8x8 LED ম্যাট্রিক্স অঙ্কন বোর্ড

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

ধাপ 1: হার্ডওয়্যার সেটআপ

হার্ডওয়্যার সেটআপ
হার্ডওয়্যার সেটআপ
হার্ডওয়্যার সেটআপ
হার্ডওয়্যার সেটআপ

এই প্রকল্পের জন্য নিম্নলিখিত হার্ডওয়্যার প্রয়োজন:

  • রাস্পবেরি পাই
  • ইউএসবি পাওয়ার সোর্স যেমন আঙ্কার যেমন একটি সংক্ষিপ্ত ইউএসবি থেকে মাইক্রো ইউএসবি কেবল
  • MAX7219 ডট ম্যাট্রিক্স মডিউল একটি ফিতা কেবল সহ (Aliexpress কম $ 2 এর জন্য)
  • ঘের (আমি একটি কার্ডবোর্ডের বাক্স থেকে একটি তৈরি করেছি এবং কালো রঙে আঁকা স্প্রে)

হার্ডওয়্যার সেটআপ সহজ অংশ। LED ম্যাট্রিক্স থেকে MAX7219 লাইব্রেরি ডক -এ RPi- এর সাথে কেবল 5 টি তারের ফিতা কেবল সংযুক্ত করুন।

LED-> RPi ======== VCC-> GPIO Pin #2 (5v) GND-> GPIO Pin #6 (GND) DIN-> GPIO Pin #19CS-> GPIO Pin #24CLK-> GPIO Pin # 23

আমি RPi কেসে LED ইউনিট লাগানোর জন্য একটি ডবল পার্শ্বযুক্ত ফোম টেপ ব্যবহার করেছি। তারপরে, আমি আরপিআই এবং ব্যাটারি উভয়ই রাখার জন্য একটি কার্ডবোর্ড বাক্স থেকে একটি ঘের তৈরি করেছি।

পদক্ষেপ 2: সফ্টওয়্যার সেটআপ

সফটওয়্যার সেটআপ
সফটওয়্যার সেটআপ
সফটওয়্যার সেটআপ
সফটওয়্যার সেটআপ
সফটওয়্যার সেটআপ
সফটওয়্যার সেটআপ
সফটওয়্যার সেটআপ
সফটওয়্যার সেটআপ

RPi- এর নিম্নলিখিত সফটওয়্যার থাকতে হবে:

  • পাইথন
  • অ্যাপাচি 2 ওয়েব সার্ভার
  • পাইথনের জন্য Max7219 ড্রাইভার
  • জিরোএমকিউ মেসেজিং

পাইথন

RPi পাইথন 3 ইতিমধ্যেই প্রাক-ইনস্টল করা উচিত। যদিও আমার কোড পাইথন 3 এর জন্য লেখা হয়েছে, পাইথন 2 কিছু ছোটখাটো পরিবর্তনের সাথে কাজ করা উচিত।

Apache 2

অ্যাপাচি সেটআপ করুন এবং পাইথন সিজিআই স্ক্রিপ্টিং সক্ষম করুন। নীচে RPi এ Apache স্থাপন করার জন্য কয়েকটি দুর্দান্ত সম্পদ রয়েছে তাই আমি এখানে পুনরাবৃত্তি করব না। Apache এবং CGI সেটআপ করতে নিচের টিউটোরিয়ালগুলো অনুসরণ করুন। নিশ্চিত করুন যে *.py স্ক্রিপ্টগুলি ব্রাউজার থেকে এক্সিকিউটেবল।

  • https://raspberrywebserver.com/cgiscripting/
  • https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/

Max7291 ড্রাইভার

সর্বশেষ ইনস্টল গাইড অনুসরণ করে Max7219 ড্রাইভার ইনস্টল করুন:

https://max7219.readthedocs.io/en/latest/install.html

ইনস্টল করার পরে, LED ম্যাট্রিক্সে "হ্যালো ওয়ার্ল্ড" প্রদর্শনের জন্য উদাহরণ কোড, matrix_test.py চালান। এটি পরবর্তী ধাপে যাওয়ার আগে কাজ করতে হবে।

জিরোএমকিউ মেসেজিং

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

এই প্রকল্পের জন্য, আমরা শুধু পাইথন প্যাকেজ pyzmq ইনস্টল করব, পুরো জিরোএমকিউ প্যাকেজ নয়।

চালান:

sudo pip3 pyzmq ইনস্টল করুন

Http://zguide.zeromq.org এ জিরোএমকিউ গাইড পড়ুন এবং পাইথনে হ্যালো ওয়ার্ল্ড সার্ভার এবং ক্লায়েন্ট উদাহরণ ব্যবহার করে দেখুন। সার্ভার এবং ক্লায়েন্ট উভয়ের জন্য RPi তে পাইথন উদাহরণ কোডটি অনুলিপি করুন এবং পরবর্তী ধাপে যাওয়ার আগে নিশ্চিত করুন যে তারা কাজ করে।

ধাপ 3: ওয়েব পেজ সেটআপ

ওয়েব পেজে, আমি বুটস্ট্র্যাপ সিএসএস/জেএস ফ্রেমওয়ার্ক ব্যবহার করে পৃষ্ঠাটি সুন্দর দেখায়। এটি সম্পূর্ণ alচ্ছিক।

Apache রুট বা সাব-ডিরেক্টরিতে সংযুক্ত led_msg.tar.gz ফাইলটি ডাউনলোড করুন। Gzip'd tar ফাইলটি আনটার করতে, চালান:

tar -xzvf led_msg.tar.gz

এটি নিম্নলিখিত ফাইলগুলি তৈরি করে:

msg.py (প্রধান প্রোগ্রাম)

টেমপ্লেট/interstitial.html (html টেমপ্লেট) টেমপ্লেট/send_msg.html (html টেমপ্লেট) স্ট্যাটিক/img/led_150x150-j.webp

Allyচ্ছিকভাবে, স্ট্যাটিক ডিরেক্টরি অধীনে বুটস্ট্র্যাপ css/js ফ্রেমওয়ার্ক ইনস্টল করুন।

আপনার ব্রাউজারে msg.py এর জন্য URL লিখুন এবং নিশ্চিত করুন যে ওয়েব পেজটি এসেছে। এখনও একটি বার্তা জমা দিন না !!!

বার্তা জমা দেওয়ার আগে, ওয়েবপেজ ক্লায়েন্টের বার্তা গ্রহণ এবং LED ম্যাট্রিক্সে প্রদর্শন করতে জিরোএমকিউ সার্ভার চালু করতে হবে। জিরোএমকিউ সার্ভার না চললে পর্দায় কিছুই প্রদর্শিত হবে না।

সংযুক্ত max7219_server.py কোডটি আপনার হোম ডিরেক্টরিতে ডাউনলোড করুন, অ্যাপাচি রুট ডাইরে নয় যেখানে এটি ওয়েব ব্যবহারকারীদের দ্বারা কার্যকর করা যেতে পারে। এটি রুট হিসাবে চালান:

সুডো পাইথন max7219_server.py

এখন ZeroMQ সার্ভার ওয়েব পেজ থেকে বার্তা গ্রহণের জন্য প্রস্তুত। ওয়েব পেজ থেকে একটি সহজ বার্তা লিখুন এবং জমা দিন। যদি সবকিছু সঠিকভাবে সেটআপ করা হয়, আপনি সেই বার্তাটি জিরোএমকিউ সার্ভার স্ক্রিন এবং LED ম্যাট্রিক্সে দেখতে পাবেন।

আপনি যদি সার্ভারটি শাটডাউন করতে চান তবে সার্ভার স্ক্রিন থেকে বেরিয়ে আসার জন্য শুধু কন্ট্রোল-সি করুন।

এটাই. আশা করি আপনি আমার মতো এই প্রকল্পটি উপভোগ করবেন।

আপনি যে উন্নতি করতে পারেন তা হল সার্ভার এবং ক্লায়েন্টদের মধ্যে অসিঙ্ক্রোনাস জিরোএমকিউ যোগাযোগ তৈরি করা যাতে অন্যান্য বার্তা প্রদর্শিত হওয়ার সময় ওয়েবপেজ অপেক্ষা না করে। এছাড়াও, আপনি ক্যাসকেড মোডে অতিরিক্ত LED ম্যাট্রিক্স সংযুক্ত করতে পারেন। আমি এটা আপনার উপর ছেড়ে দেব।

প্রস্তাবিত: