সুচিপত্র:

হোম অ্যালার্ট: একটি বড় ডিসপ্লেতে আরডুইনো + ক্লাউড মেসেজিং: 14 টি ধাপ (ছবি সহ)
হোম অ্যালার্ট: একটি বড় ডিসপ্লেতে আরডুইনো + ক্লাউড মেসেজিং: 14 টি ধাপ (ছবি সহ)

ভিডিও: হোম অ্যালার্ট: একটি বড় ডিসপ্লেতে আরডুইনো + ক্লাউড মেসেজিং: 14 টি ধাপ (ছবি সহ)

ভিডিও: হোম অ্যালার্ট: একটি বড় ডিসপ্লেতে আরডুইনো + ক্লাউড মেসেজিং: 14 টি ধাপ (ছবি সহ)
ভিডিও: ফোনের ডিসপ্লেতে 5 টি অসাধারন সেটিংস | Shohag Khandokar !! 2024, নভেম্বর
Anonim
হোম অ্যালার্ট: একটি বড় ডিসপ্লেতে আরডুইনো + ক্লাউড মেসেজিং
হোম অ্যালার্ট: একটি বড় ডিসপ্লেতে আরডুইনো + ক্লাউড মেসেজিং
হোম অ্যালার্ট: একটি বড় ডিসপ্লেতে আরডুইনো + ক্লাউড মেসেজিং
হোম অ্যালার্ট: একটি বড় ডিসপ্লেতে আরডুইনো + ক্লাউড মেসেজিং
হোম অ্যালার্ট: একটি বড় ডিসপ্লেতে আরডুইনো + ক্লাউড মেসেজিং
হোম অ্যালার্ট: একটি বড় ডিসপ্লেতে আরডুইনো + ক্লাউড মেসেজিং

মোবাইল ফোনের যুগে, আপনি আশা করবেন যে লোকেরা আপনার কল 24/7 এর জন্য প্রতিক্রিয়াশীল হবে।

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

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

হোম অ্যালার্ট এই অংশগুলি দিয়ে তৈরি:

  • একটি ফ্রিট্রনিক্স ডট ম্যাট্রিক্স ডিসপ্লে, যা 16x32 LEDs এর একটি অ্যারে। তারা বিভিন্ন রঙে আসে, কিন্তু আমি এই গ্যাজেটটি "সমালোচনামূলক" বিজ্ঞপ্তির জন্য জোর দিয়ে লাল ব্যবহার করি।
  • একটি ইথারনেট শিল্ড সহ একটি Arduino Uno।
  • একটি বাস্তব সময় ঘড়ি ব্রেকআউট, এই বা এই মত।
  • একটি পাইজো বুজার
  • একটি DHT22 তাপমাত্রা এবং আর্দ্রতা সেন্সর।

হোম অ্যালার্ট একটি ওয়েব পেজের মাধ্যমে নিয়ন্ত্রিত হয় যা হেরোকু, ক্লাউড-ভিত্তিক অ্যাপ্লিকেশন হোস্টে হোস্ট করা হয়। সিনেট্রা ওয়েব অ্যাপ ফ্রেমওয়ার্ক এবং রেডিস কী-ভ্যালু স্টোর ব্যবহার করে ওয়েব পেজটি রুবিতে কোড করা হয়েছে।

হোম পেজটি দেখুন (এই ধাপে প্রথম সংযুক্ত ছবিতে দেখান), যেখানে ফর্মটি ব্যবহারকারীর কাছ থেকে একটি নতুন বার্তার জন্য অপেক্ষা করছে।

প্রথম ক্ষেত্রটি একটি সাংখ্যিক হার্ডওয়্যার কোড গ্রহণ করে। এটি একটি কোড যা আপনাকে একটি নির্দিষ্ট হোম অ্যালার্ট সিস্টেম টার্গেট করতে দেয়, কারণ প্রত্যেককে একটি অনন্য কোড দেওয়া যেতে পারে। অথবা, আপনি একই কোড ভাগ করে একাধিক হোম সতর্কতা পেতে পারেন, যাতে একই বার্তা একাধিক স্থানে প্রদর্শিত হয়।

আপনি যে বার্তাটি প্রদর্শন করতে চান তা দ্বিতীয় ক্ষেত্রে যায়। আপনি যে কোন লেখা সেখানে লিখবেন তা DMD- এ প্রদর্শিত হবে।

আপনি যদি কিছু শব্দ করতে চান, হ্যাঁ চেক করুন! চেকবক্স, এবং বজারটি আশেপাশের কারও দৃষ্টি আকর্ষণ করবে তা নিশ্চিত।

এই নিবন্ধে, আমি আপনাকে দেখাব কিভাবে আপনার নিজের হোম অ্যালার্ট সিস্টেম, উভয় Arduino হার্ডওয়্যার এবং সফ্টওয়্যার, সেইসাথে সিনাত্রা মিনি ওয়েব অ্যাপ্লিকেশন তৈরি করতে।

চল শুরু করি!

ধাপ 1: হার্ডওয়্যার

হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার

DMD গ্যাজেটের কেন্দ্রবিন্দু। আমি একটি ছোট এলসিডি স্ক্রিন নিয়ে যেতে পারতাম, কিন্তু এই প্রকল্পের মূল ধারণা ছিল এমন কিছু তৈরি করা যা দূর থেকে দেখা যায় এবং শোনা যায়। ভিজ্যুয়াল অংশের জন্য, আমার বড় এবং উজ্জ্বল কিছু দরকার ছিল এবং এই ফ্রিট্রনিক্স ডিসপ্লেটি ঠিক আমার প্রয়োজন। প্রতিটি প্যানেলে 16x32 LEDs এর একটি অ্যারে থাকে, এবং আপনি অনেকগুলি বড় ডিসপ্লে তৈরি করতে এর মধ্যে কয়েকটিকে একসাথে আটকে রাখতে পারেন। এটি এমন কিছু যা আমি অদূর ভবিষ্যতে করতে চাই।

DMD একটি Arduino লাইব্রেরি ব্যবহার করা সহজ সঙ্গে আসে। এটি উচ্চ গতির SPI এর মাধ্যমে Arduino এর সাথে যোগাযোগ করে। আমি ফ্রিট্রনিক্স গিথুব পৃষ্ঠা থেকে লাইব্রেরি পেতে সক্ষম হয়েছিলাম, তারপরে ডেমো স্কেচটি জ্বালিয়েছিলাম এবং বাক্সটি খোলার কয়েক মিনিটের মধ্যে এটি কাজ করতে পেরেছিলাম। আমি আরডুইনো থেকে কেবল শক্তি ব্যবহার করে এমন একটি উজ্জ্বল প্রদর্শন দেখে অবাক হয়েছি। আপনি যদি আপনার দর্শকদের সাময়িকভাবে অন্ধ করতে চান, তাহলে আপনি এই DMD- এর জন্য একটি নিবেদিত বিদ্যুৎ সরবরাহ সংযুক্ত করতে পারেন। যদি এটি তাদের মনোযোগ না পায় তবে কিছুই হবে না!

শারীরিকভাবে, এই ডিসপ্লেটির পরিমাপ 320mm (W), 160mm (H) এবং 14mm (D)।

পিছনের প্যানেলে বাহ্যিক শক্তির জন্য সংযোজক, কমপক্ষে 4Amps ধারণক্ষমতার 5V, Arduino সংযোগকারী HUB1 চিহ্নিত, এবং বিপরীত দিকে ডেজি-শৃঙ্খলিত অতিরিক্ত প্রদর্শনের জন্য সংযোগকারী রয়েছে। ডকুমেন্টেশন অনুযায়ী, আপনি চারটি DMD পর্যন্ত ডেইজি-চেইন করতে পারেন।

DMD একটি Arduino Uno দ্বারা নিয়ন্ত্রিত হয়। ফ্রিট্রনিক্স একটি খুব সুবিধাজনক "DMDCON" সংযোগকারী প্রদান করে যা সরাসরি SPI এবং ডেটা পিনগুলিতে সরাসরি স্ন্যাপ করে।

DMD ব্যতীত, আমি একটি Arduino Uno, একটি ইথারনেট শিল্ড, একটি রিয়েল-টাইম ক্লক ব্রেকআউট, একটি বুজার এবং একটি DHT22 ব্যবহার করেছি। এই সমস্ত উপাদানগুলির জন্য, আমি আমার উদেমি কোর্সে তাদের অপারেশন বর্ণনা করে বক্তৃতা তৈরি করেছি। (নির্লজ্জ স্ব-প্রচার: arduinosbs.com এ আমার ইমেল তালিকায় সাইন আপ করুন এবং একটি কুপন পান যা আপনাকে 55 টি বক্তৃতায় ছাড়ের অ্যাক্সেস দেয়)।

রিয়েল-টাইম ক্লক, DS18072 ক্লক আইসি এর উপর ভিত্তি করে একটি ব্রেকআউট, একটি I2C ডিভাইস তাই এটি ইউনোর এনালগ পিন 1 এবং 2 এর সাথে সংযুক্ত, যা I2C বাস বাস্তবায়ন করে।

বজার ডিজিটাল পিন 3 এর সাথে সংযুক্ত, যেখান থেকে আমি টোন () ফাংশন ব্যবহার করে এটি নিয়ন্ত্রণ করি।

DHT22 সেন্সরটি ডিজিটাল পিন-এর সাথে সংযুক্ত।

ধাপ 2: Arduino স্কেচ

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

এখানে স্কেচ, এমবেডেড মন্তব্য সহ (পিডিএফ সংযুক্তি দেখুন)।

এই স্কেচের মূল দায়িত্ব হল Arduino কে একটি ওয়েব সেবার ভোক্তা বানানো। ওয়েব সার্ভিস হল একটি সাধারণ ওয়েব সাইট যেখানে দুটি এন্ড-পয়েন্ট রয়েছে, একটি হল একটি মানব ব্যবহারকারীর জন্য একটি ওয়েব ব্রাউজারের মাধ্যমে অ্যাক্সেস এবং একটি টেক্সট স্ট্রিং যা তারা DMD- এ প্রদর্শন করতে চায় এবং অন্যটি যেখানে Arduino অ্যাক্সেস করবে সেই পাঠ্য স্ট্রিংটি পুনরুদ্ধার করুন।

অনুগ্রহ করে সংযুক্ত পিডিএফ ফাইলটি ডাউনলোড করুন এবং পড়ুন, এতে এমবেডেড মন্তব্য রয়েছে যা এর কার্যকারিতা বর্ণনা করে।

ধাপ 3: সিনাত্রা স্টেজ নেয়

সিনাত্রা স্টেজ নেয়!
সিনাত্রা স্টেজ নেয়!

ওয়েব সাইট এবং ওয়েব সার্ভিস তৈরির অনেক উপায় আছে। ওয়েব-সাপোর্টিং লাইব্রেরি সহ প্রোগ্রামিং ল্যাঙ্গুয়েজ থেকে শুরু করে পূর্ণ বৈশিষ্ট্যযুক্ত ফ্রেমওয়ার্ক পর্যন্ত, এই কাজের জন্য একটি বেছে নেওয়া বিভ্রান্তিকর এবং কঠিন হতে পারে।

আমি বেশ কিছু ওয়েব অ্যাপ্লিকেশন প্রযুক্তি ব্যবহার করেছি এবং খেলেছি এবং দেখেছি যে সিনাত্রা ওয়েব পরিষেবা এবং ছোট ওয়েব সাইট তৈরির জন্য আদর্শ। বিশেষ করে, যখন আমি একটি Arduino গ্যাজেট সমর্থন করার জন্য একটি ওয়েব পরিষেবা তৈরি করি, সিনাত্রা সত্যিই একটি ভাল পছন্দ।

সিনাট্রা কী এবং কেন এটি এত ভাল পছন্দ? আমি খুশি যে আপনি জিজ্ঞাসা করেছেন!

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

এমন সময়ে যেখানে রুবি অন রেলস এবং জ্যাঙ্গোর মতো ওয়েব অ্যাপ ডেভেলপমেন্টের জন্য তথাকথিত "মতামতযুক্ত" কাঠামোগুলি অত্যন্ত জনপ্রিয়, সিনাত্রা বর্ণালীটির বিপরীত প্রান্তকে ধারণ করে। যদিও রুবি অন রেলস এবং জ্যাঙ্গো প্রোগ্রামারকে একটি নির্দিষ্ট কনভেনশন এবং কাজ করার পদ্ধতি অনুসরণ করার প্রয়োজন করে (যা, পরিবর্তে, একটি খাড়া এবং দীর্ঘ শেখার বক্ররেখা বোঝায়), সিনাত্রা এমন কোন প্রয়োজনীয়তা তৈরি করে না।

সিনেট্রা বিশ্বের রেল এবং জ্যাঙ্গোসের তুলনায় ধারণাগতভাবে অনেক সহজ। আপনি একটি ওয়েব অ্যাপ্লিকেশন দিয়ে উঠতে এবং চালাতে পারেন যা কয়েক মিনিটের মধ্যে আপনার আরডুইনোর সাথে যোগাযোগ করতে পারে।

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

একটি ফাইলে, আসুন এটিকে my_app.rb বলি, এই পাঠ্যটি যুক্ত করুন:

'sinatra'get'/'do "Hello, world!" শেষ প্রয়োজন

কমান্ড লাইনে, অ্যাপটি এভাবে শুরু করুন:

রুবি my_app.rb

আপনার অ্যাপ শুরু হবে, এবং আপনি কনসোলে এই লেখাটি দেখতে পাবেন:

পিটার@উবুন্টু-দেব: ~/arduino/sinatra_demo $ ruby my_app.rbPuma 2.8.1 শুরু হচ্ছে …* ন্যূনতম থ্রেড: 0, সর্বোচ্চ থ্রেড: 16* পরিবেশ: উন্নয়ন* tcp: // localhost: 4567 == Sinatra/1.4.4 পুমা থেকে ব্যাকআপ নিয়ে ডেভেলপমেন্টের জন্য 4567 তে মঞ্চ নিয়েছে

অ্যাপটি এখন ক্লায়েন্টের অনুরোধ পাওয়ার জন্য প্রস্তুত। একটি ব্রাউজার খুলুন, এটি https:// localhost: 4567 এর দিকে নির্দেশ করুন এবং এটি আপনি দেখতে পাবেন (সংযুক্ত স্ক্রিনশট দেখুন)।

এটি একটি একক ফাইলে কোডের চারটি সাধারণ লাইন। বিপরীতে, রেলগুলির একশটিরও বেশি ফাইলের প্রয়োজন হত, যা কেবলমাত্র কাঠামোর প্রয়োজনীয়তা পূরণের জন্য তৈরি করা হয়েছিল। আমাকে ভুল বুঝবেন না, আমি রেলকে ভালোবাসি, কিন্তু সত্যিই?…

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

ধাপ 4: আপনার ডেভেলপমেন্ট মেশিন সেটআপ করুন

সিনাত্রা রুবি প্রোগ্রামিং ভাষার উপর ভিত্তি করে। সুতরাং, সিনেট্রা ইনস্টল করার আগে আপনাকে রুবি ইনস্টল করতে হবে।

আপনাকে রেডিস নামে একটি কী-ভ্যালু স্টোর সার্ভারও ইনস্টল করতে হবে। রেডিসকে একটি ডাটাবেস হিসাবে ভাবুন যা একটি কী এর বিপরীতে ডেটা সঞ্চয় করে। আপনি ডেটা পুনরুদ্ধারের জন্য কীটি ব্যবহার করেন এবং এটি একটি traditionalতিহ্যগত রিলেশনাল ডাটাবেসের জন্য ডিজাইন করা ডেটা স্ট্রাকচারের নমনীয়তার পরিবর্তে গতির জন্য অপ্টিমাইজ করা হয়। হোম অ্যালার্ট রেডিসে তার বার্তা সংরক্ষণ করে।

ধাপ 5: ম্যাক বা লিনাক্সে রুবি

আপনি যদি ম্যাক বা লিনাক্স কম্পিউটার ব্যবহার করেন, আমি আপনাকে আপনার রুবি ইনস্টলেশন (RVM: রুবি ভার্সন ম্যানেজার) ইনস্টল এবং পরিচালনা করতে RVM ব্যবহার করার পরামর্শ দিচ্ছি। RVM দিয়ে রুবি ইনস্টল করার নির্দেশাবলী এই পৃষ্ঠায় রয়েছে, অথবা শুধু আপনার শেল এ এই কমান্ডটি কপি এবং পেস্ট করুন:

কার্ল -এসএসএল https://get.rvm.io | bash -s স্থিতিশীল -রবি

বসুন, ফিরে যান, আরাম করুন এবং আরভিএম এবং রুবি ডাউনলোড, সংকলন এবং ইনস্টলেশনের জন্য অপেক্ষা করুন।

ধাপ 6: উইন্ডোজ এ রুবি

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

ধাপ 7: আপনার রুবি পরীক্ষা করুন এবং সেট করুন

লেখার সময়, সর্বশেষ স্থিতিশীল রুবি রিলিজ হল 2.1.1.p76। আপনি এই টাইপ করে RVM দিয়ে ইনস্টল করা সংস্করণটি পরীক্ষা করতে পারেন:

rvm তথ্য

RVM এবং রুবি সম্পর্কে অনেক তথ্য উপস্থিত হবে। আমার ক্ষেত্রে, এটি রুবি বিভাগ:

রুবি: দোভাষী: "রুবি" সংস্করণ: "2.1.1p76" তারিখ: "2014-02-24" প্ল্যাটফর্ম: "x86_64-linux" প্যাচলেভেল: "2014-02-24 সংশোধন 45161" ফুল_ভার্সন: "রুবি 2.1.1p76 (2014 -02-24 সংশোধন 45161) [x86_64-linux]"

আমি সুপারিশ করি যে আপনি রুবি 2.1.1 ব্যবহার করুন, তাই যদি আপনি এর চেয়ে পুরোনো কিছু দেখতে পান তবে এইভাবে আপগ্রেড করুন:

rvm 2.1.1 ইনস্টল করুন

এটি রুবি 2.1.1 ইনস্টল করবে। RVM প্রজেক্ট সাইটে RVM এবং কিভাবে আপনার রুবি ইনস্টলেশন পরিচালনা করা যায় সে সম্পর্কে অনেক তথ্য রয়েছে।

ধাপ 8: সিনাট্রা ইনস্টল করুন (সমস্ত প্ল্যাটফর্ম)

রুবিতে, কোড "রত্ন" নামে প্যাকেজ হিসাবে ভাগ করা হয়। যে কোডটি সিনাত্রা তৈরি করে তা আপনার কম্পিউটারে একটি মণি হিসাবে ইনস্টল করা যেতে পারে:

মণি সিনাত্রা ইনস্টল করুন

এই লাইনটি সমস্ত কোড এবং ডকুমেন্টেশন নিয়ে আসবে এবং এটি আপনার কম্পিউটারে ইনস্টল করবে।

ধাপ 9: ম্যাক বা লিনাক্সে রেডিস

ম্যাক বা লিনাক্সে রেডিস সেট করা সহজ। প্রক্রিয়াটি রেডিস ওয়েব সাইটে ব্যাখ্যা করা হয়েছে। শেল টার্মিনাল খুলুন এবং এই কমান্ডগুলি টাইপ করুন:

$ wget https://download.redis.io/releases/redis-2.8.7.tar… $ tar xzf redis-2.8.7.tar.gz $ cd redis-2.8.7 $ make

টাইপ করে রেডিস চালান:

$ src/redis-server

… এবং আপনি সম্পন্ন করেছেন!

ধাপ 10: উইন্ডোজে রেডিস

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

ধাপ 11: ওয়েব সার্ভিস অ্যাপ্লিকেশন তৈরি করুন

ওয়েব সার্ভিস অ্যাপ্লিকেশন তৈরি করুন
ওয়েব সার্ভিস অ্যাপ্লিকেশন তৈরি করুন

আসুন অ্যাপ্লিকেশনটি তৈরি করি এবং এটি আপনার ডেভেলপমেন্ট মেশিনে চালাই। যখন আমরা এটি পরীক্ষা করি তখন অ্যাপ্লিকেশনের এই দৃষ্টান্তের সাথে সংযুক্ত হওয়ার জন্য আমরা Arduino স্কেচ সমন্বয় করব। একবার আমরা সন্তুষ্ট হয়ে যাই যে সবকিছু ভালভাবে কাজ করছে, আমরা ক্লাউডে স্থাপন করব এবং ক্লাউড উদাহরণ ব্যবহার করার জন্য স্কেচ আপডেট করব।

এখানে হল রুবি কোড, সবই "web.rb" নামে একটি একক ফাইলে (এই কোডটি Github এ উপলব্ধ)।

গুরুত্বপূর্ণ: সংযুক্ত পিডিএফ ফাইলটি ডাউনলোড করুন এবং পড়ুন, এতে বিস্তারিত এমবেডেড মন্তব্য রয়েছে (দয়া করে চালিয়ে যাওয়ার আগে এটি করুন!)।

আপনি এখন আপনার হোম অ্যালার্ট সিস্টেম ব্যবহার করে দেখতে পারেন। আপনার স্কেচে, আপনার ডেভেলপমেন্ট সিনেট্রা সার্ভারের জন্য আপনার ডেভেলপমেন্ট মেশিন এবং পোর্ট নম্বর নির্দেশ করার জন্য ওয়েবসাইট এবং ওয়েবপেজ ধ্রুবক পরিবর্তন করুন। আমার ক্ষেত্রে, আমার আইপি 172.16.115.136 এ একটি ডেভেলপমেন্ট মেশিন আছে, এবং ডেভেলপমেন্ট সিনাত্রা সার্ভার 5000 পোর্ট শুনছে, তাই আমার স্কেচ সেটিংস হল:

#HW_ID "123" নির্ধারণ করুন#ওয়েবসাইটের সংজ্ঞা দিন "172.16.115.136:5000”

এই IP ঠিকানা শুধুমাত্র আমার হোম নেটওয়ার্কের ডিভাইসের জন্য অ্যাক্সেসযোগ্য।

HW_ID সেটিংটি "হার্ডওয়্যার আইডি" কে উপস্থাপন করে, অর্থাৎ, যে আইডিতে DMD কে নিয়ন্ত্রণ করে Arduino নিজেকে সিনাত্রা অ্যাপ্লিকেশনে চিহ্নিত করবে। এটি একটি খুব মৌলিক ধরনের প্রমাণীকরণ। প্রদত্ত HW_ID এর উপর ভিত্তি করে ওয়েব অ্যাপ্লিকেশনটি একটি Arduino এর কাছে একটি বার্তা হস্তান্তর করবে। আপনার একই HW_ID সহ একাধিক ডিভাইস থাকতে পারে, সেক্ষেত্রে সব ডিভাইস একই বার্তা প্রদর্শন করবে। আপনি যদি "গোপনীয়তা" চান, তাহলে অনেক এলোমেলো অক্ষরের একটি আইডি বেছে নিন যা অন্য লোকেরা অনুমান করতে পারবে না। এছাড়াও সতর্ক থাকুন, কোন যোগাযোগ এনক্রিপ্ট করা হয় না।

এখন এগিয়ে যান এবং আপনার সিনাট্রা অ্যাপটি শুরু করুন, এটি টাইপ করুন (ধরে নিন আপনি সিনাট্রা প্রকল্প ফোল্ডারে আছেন):

রুবি web.rb

… এবং আপনি এরকম কিছু দেখতে পাবেন (কিছু বিবরণ পরিবর্তিত হতে পারে, যতক্ষণ না এটি ক্র্যাশ না হয়, আপনি ঠিক আছেন):

10:42:18 ওয়েব 1 | pid 4911910: 42: 18 web.1 দিয়ে শুরু পুমা 2.8.1 শুরু হচ্ছে … 10: 42: 18 ওয়েব.1 | * ন্যূনতম থ্রেড: 0, সর্বোচ্চ থ্রেড: 1610: 42: 18 ওয়েব 1 | * পরিবেশ: উন্নয়ন 10: 42: 18 ওয়েব.1 | * Tcp: //0.0.0.0: 5000 এ শোনা

আপনার ওয়েব ব্রাউজারটিকে সেই অবস্থানে নির্দেশ করুন যেখানে সার্ভার শুনছে, এবং আপনি এটি দেখতে পাবেন (দ্বিতীয় সংযুক্তি দেখুন)।

Arduino এ আপনার স্কেচ আপলোড করুন, নিশ্চিত করুন যে এটি আপনার স্থানীয় নেটওয়ার্কের সাথে সংযুক্ত। যদি সবকিছু ঠিক থাকে, Arduino আপনার ওয়েব পরিষেবা প্রতি মিনিটে একবার ভোট দেবে। এটি দেখানোর জন্য একটি বার্তা দিন: HW কোড ক্ষেত্রটিতে, স্কেচে HW_ID ধ্রুবকটির জন্য আপনি সেট করা একই আইডি টাইপ করুন। "আপনার বার্তা" ক্ষেত্রটিতে কিছু টাইপ করুন এবং "বাজ?" চেকবক্স।

জমা দিন, এক মিনিট অপেক্ষা করুন, এবং দেখুন আপনার বার্তা DMD- এ উপস্থিত হচ্ছে!

ধাপ 12: হেরোকু ব্যবহার করে ক্লাউডে স্থাপন করুন

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

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

* config.ru: এটি হেরোকুকে বলে যে কোন ফাইলটিতে অ্যাপ্লিকেশন রয়েছে। এখানে বিষয়বস্তু আছে:

প্রয়োজন './web'run Sinatra:: আবেদন

প্রথম লাইন web.rb এর দিকে নির্দেশ করে, এবং দ্বিতীয় লাইনটি আসলে আপনার আবেদন চালায়।

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

উৎস "https://rubygems.org" রুবি "2.1.1" রত্ন 'সিনাত্রা'গেম' পুমা'গেম 'রেডিস'

প্রথমত, এটি সমস্ত জেম কোডের উৎস সংগ্রহস্থলকে rubygems.org হিসাবে সেট করে। পরবর্তী, এটির প্রয়োজন রুবি সংস্করণ 2.1.1 অ্যাপ্লিকেশন চালানোর জন্য ব্যবহৃত হয়। তারপরে এটি প্রয়োজনীয় রত্নগুলি তালিকাভুক্ত করে: সিনাত্রা, পুমা (একটি দুর্দান্ত রুবি ওয়েব অ্যাপ্লিকেশন সার্ভার) এবং রেডিস।

* Procfile: এটি Heroku কে বলে কিভাবে আপনার সার্ভার স্টার্টআপ করতে হয়। এখানে কেবল একটি লাইন আছে:

ওয়েব: rackup -s puma -p $ PORT

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

আপনি আপনার ডেভেলপমেন্ট মেশিনে এই ক্রমটি অনুসরণ করে হেরোকু কী করতে চলেছেন তা অনুকরণ করতে পারেন (কেবল তীরের আগে পরীক্ষাটি টাইপ করুন; যা তীর অনুসরণ করে তা কেবল কমান্ডের বিবরণ):

$> মণি ইনস্টল বান্ডলার -> বান্ডলার ইনস্টল করে, যা জেমফিল পরিচালনা করতে জানে। $> বান্ডেল ইনস্টল -> বান্ডলার Gemfile প্রক্রিয়া করে এবং নির্ভরতা ইনস্টল করে। $> rackup config.ru -> Rackup হল একটি টুল যা config.ru ফাইল প্রসেস করতে পারে। এটি সাধারণত রুবির পরবর্তী সংস্করণের সাথে আসে, যদি এটি এটিকে এইভাবে ইনস্টল না করে: রত্ন ইনস্টল র্যাক।

শেষ ধাপটি আসলে আপনার অ্যাপ্লিকেশন চালু করার ফলাফল দেয়। আপনি যখন রুবি web.rb দিয়ে শুরু করেছিলেন তখন ঠিক একই আউটপুট দেখতে হবে। এটি একই অ্যাপ্লিকেশন চলমান, শুধুমাত্র পার্থক্য যে দ্বিতীয় পদ্ধতি হেরোকু কিভাবে এটি শুরু করে।

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

হেরোকু টুলবেল্ট হেরোকু কমান্ড লাইন ক্লায়েন্ট, গিট (ওপেন সোর্স সোর্স কোড ম্যানেজমেন্ট সিস্টেম), এবং ফোরম্যান (একটি রুবি টুল যা প্রোকফাইল-ভিত্তিক অ্যাপ্লিকেশনগুলি পরিচালনা করতে সহায়তা করে) ইনস্টল করে।

একবার আপনি হেরোকু ওয়েব সাইটে নির্দেশাবলী অনুসরণ করে হেরোকু টুলবেল্টের ইনস্টলেশন সম্পন্ন করার পরে, আপনার অ্যাপ্লিকেশন স্থাপনের জন্য এই পদক্ষেপগুলি অনুসরণ করুন (অ্যাপের ডিরেক্টরিতে কমান্ড লাইনে সবকিছু টাইপ করা আছে):

$> হেরকু লগইন -> কমান্ড লাইনের মাধ্যমে হেরোকুতে লগইন করুন $> git init -> আপনার অ্যাপ্লিকেশনের জন্য একটি গিট রিপোজিটরি শুরু করুন ->> Heroku- এ অ্যাপ। নাম এবং URL টি নোট করুন যাতে আপনি পরে আপনার ওয়েব ব্রাউজারের মাধ্যমে এটি অ্যাক্সেস করতে পারেন।এই URL টি এইরকম দেখাবে: “https://blazing-galaxy-997.herokuapp.com/”। আপনার Arduino স্কেচের ওয়েবসাইট ধ্রুবকটিতে আপনার নতুন অ্যাপ্লিকেশনের হোস্টনাম ("blazing-galaxy-997.herokuapp.com" অংশ) অনুলিপি করতে হবে। এটি এখনই করুন যাতে আপনি পরে ভুলে না যান। $> হেরকু অ্যাডনস: rediscloud যোগ করুন -> আপনার অ্যাপ্লিকেশনে Rediscloud Redis পরিষেবার বিনামূল্যে স্তর যোগ করে। কনফিগারেশন সেটিংস স্বয়ংক্রিয়ভাবে তৈরি এবং আপনার অ্যাপ্লিকেশনের জন্য উপলব্ধ করা হয়। $> git push heroku master -> হেরোকুতে আপনার কোড স্থাপন করুন। এটি স্বয়ংক্রিয়ভাবে কোডটি স্থানান্তর করবে, হেরোকুর উপর নির্ভরতা সেটআপ করবে এবং অ্যাপ্লিকেশনটি শুরু করবে। প্রক্রিয়া শেষে, আপনি এরকম কিছু দেখতে পাবেন: "https://blazing-galaxy-997.herokuapp.com হেরোকুতে মোতায়েন করা হয়েছে", যার অর্থ আপনার অ্যাপ্লিকেশন এখন পাবলিক ক্লাউডে লাইভ! অভিনন্দন!

এগিয়ে যান, এটি একটি স্পিন দিন!

ধাপ 13: সব একসাথে রাখা

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

হেরোকুতে আপনার অ্যাপ অ্যাক্সেস করতে আপনার ব্রাউজার ব্যবহার করুন। সূচনার মতোই, প্রথম টেক্সট বক্সে আপনার হার্ডওয়্যার আইডি টাইপ করুন, দ্বিতীয়টিতে আপনার মেসেজ, এবং বুজার সক্রিয় করতে চেক বক্স চেক করুন।

সবকিছু ঠিকঠাক থাকলে আপনার বার্তাটি DMD- এ প্রায় এক মিনিট পরে উপস্থিত হবে!

ধাপ 14: সম্ভাব্য

আপনার হোম অ্যালার্ট সিস্টেমের সাথে আপনি আরও অনেক কিছু করতে পারেন …

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

উপভোগ করুন!

প্রস্তাবিত: