সুচিপত্র:

নোডএমসিইউ (আরডুইনো), গুগল ফায়ারবেস এবং লারাভেল ব্যবহার করে রিয়েলটাইম ইভেন্ট বিজ্ঞপ্তি: 4 টি ধাপ (ছবি সহ)
নোডএমসিইউ (আরডুইনো), গুগল ফায়ারবেস এবং লারাভেল ব্যবহার করে রিয়েলটাইম ইভেন্ট বিজ্ঞপ্তি: 4 টি ধাপ (ছবি সহ)

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

ভিডিও: নোডএমসিইউ (আরডুইনো), গুগল ফায়ারবেস এবং লারাভেল ব্যবহার করে রিয়েলটাইম ইভেন্ট বিজ্ঞপ্তি: 4 টি ধাপ (ছবি সহ)
ভিডিও: ESP8266 নোডএমসিইউ ডি 1 মিনি সহ ওয়াইফাইয়ের উপরে MAX6675 তাপীয় তাপমাত্রা 2024, জুন
Anonim
Image
Image
NodeMCU (Arduino), Google Firebase এবং Laravel ব্যবহার করে রিয়েলটাইম ইভেন্ট বিজ্ঞপ্তি
NodeMCU (Arduino), Google Firebase এবং Laravel ব্যবহার করে রিয়েলটাইম ইভেন্ট বিজ্ঞপ্তি

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

এই ডিভাইসটি রিয়েল টাইমে আপনাকে যে কোন কিছু সম্পর্কে সতর্ক করতে পারে।

ধাপ 1: সার্কিট তারে

সার্কিট আপ ওয়্যার
সার্কিট আপ ওয়্যার
সার্কিট আপ ওয়্যার
সার্কিট আপ ওয়্যার

আমি যে ডিভাইসটি তৈরি করেছি তাতে একটি নোডএমসিইউ বোর্ড রয়েছে যার মধ্যে একটি বুজার রয়েছে যা আমাকে একটি ওয়েবসাইটে বিক্রির বিষয়ে সতর্ক করে। মাইক্রোকন্ট্রোলারটি Arduino সফটওয়্যার ব্যবহার করে প্রোগ্রাম করা হয় এবং ট্রিগারিং অংশ যেকোনো ওয়েব, iOS বা Android অ্যাপ্লিকেশন হতে পারে। আমি দুটি সাধারণ ওয়েব অ্যাপ্লিকেশন তৈরি করেছি, একটি লারাভেলে এবং অন্যটি উদাহরণস্বরূপ সাধারণ HTML এবং জাভাস্ক্রিপ্টে।

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

সার্কিটটি তারের জন্য, ট্রানজিস্টরের সংগ্রাহককে বোর্ডের ভিন পিনের সাথে সংযুক্ত করুন। বুজার 5V এ কাজ করে এবং যেহেতু আমরা USB থেকে ডিভাইসটি পাওয়ার করছি, এই পিনটি বোর্ডে 3.3V নিয়ন্ত্রকের আগে আমাদের ভোল্টেজ দেবে।

পরবর্তীতে ট্রানজিস্টরের এমিটারে বাজারের ইতিবাচক দিক এবং বোর্ডের গ্রাউন্ড পিনের যেকোনো একটিতে বাজারের নেগেটিভ পিন সংযুক্ত করুন। আমি পিন 2 ব্যবহার করেছি, কিন্তু আপনি এটি পিন 9, 25 বা 29 এ সংযুক্ত করতে পারেন।

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

ধাপ 2: ওয়েব অ্যাপস প্রস্তুত করুন

ওয়েব অ্যাপস প্রস্তুত করুন
ওয়েব অ্যাপস প্রস্তুত করুন
ওয়েব অ্যাপস প্রস্তুত করুন
ওয়েব অ্যাপস প্রস্তুত করুন
ওয়েব অ্যাপস প্রস্তুত করুন
ওয়েব অ্যাপস প্রস্তুত করুন

ডিভাইসের ট্রিগারিং এবং রিয়েল টাইম অংশের জন্য, আমরা গুগলের ফায়ারবেস রিয়েলটাইম ডেটাবেস ব্যবহার করব। এটি গুগলের তৈরি একটি চমৎকার NoSQL ক্লাউড ডাটাবেস যা এটি ব্যবহৃত প্রতিটি প্ল্যাটফর্মের মধ্যে রিয়েল টাইম ডেটা সিঙ্ক্রোনাইজেশন প্রদান করে।

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

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

ফায়ারবেস দৃষ্টান্ত পুনরুদ্ধার করতে আপনার একটি json ফাইল দরকার যা আপনার ফায়ারবেস কনসোল থেকে ডাউনলোড করতে হবে। এই ফাইলটিকে আপনার লারাভেল প্রকল্পের মূলে রাখুন এবং এর নাম দিন firebase.json। ফায়ারবেস উদাহরণ পুনরুদ্ধার করার সময়, আমরা withCredentials পদ্ধতি ব্যবহার করে এই ফাইলের পথ প্রদান করতে হবে।

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

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

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

ধাপ 3: NodeMCU বোর্ড প্রোগ্রাম করুন

NodeMCU বোর্ড প্রোগ্রাম
NodeMCU বোর্ড প্রোগ্রাম
NodeMCU বোর্ড প্রোগ্রাম
NodeMCU বোর্ড প্রোগ্রাম
NodeMCU বোর্ড প্রোগ্রাম
NodeMCU বোর্ড প্রোগ্রাম

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

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

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

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

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

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

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

ধাপ 4: আপনার ডিভাইস উপভোগ করুন

আপনার ডিভাইস উপভোগ করুন!
আপনার ডিভাইস উপভোগ করুন!

আমি যে সম্পূর্ণ কোডটি ব্যবহার করেছি তা আমার গিটহাব অ্যাকাউন্টে প্রকল্পের পরিকল্পনার লিঙ্কের সাথে লিঙ্ক করা আছে।

সোর্স কোড

পরিকল্পিত

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

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

আপনি যদি প্রকল্পটি পছন্দ করেন তবে দয়া করে আমার ইউটিউব চ্যানেলটি সাবস্ক্রাইব করুন:

কোডের স্বাদ নিন

প্রস্তাবিত: