সুচিপত্র:

আইওটি স্কুল প্রকল্প ফিলিপস হিউ: 19 টি ধাপ
আইওটি স্কুল প্রকল্প ফিলিপস হিউ: 19 টি ধাপ

ভিডিও: আইওটি স্কুল প্রকল্প ফিলিপস হিউ: 19 টি ধাপ

ভিডিও: আইওটি স্কুল প্রকল্প ফিলিপস হিউ: 19 টি ধাপ
ভিডিও: Project Work - A Complete Guide. প্রকল্প পদ্ধতি । 2024, জুলাই
Anonim
আইওটি স্কুল প্রকল্প ফিলিপস হিউ
আইওটি স্কুল প্রকল্প ফিলিপস হিউ

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

আমি কিভাবে একটি Arduino সঙ্গে একটি ফিলিপস হিউ বাতি প্রোগ্রাম করতে পারে তাকিয়ে। এতে আমি আমার সমস্ত পদক্ষেপ এবং আমি কতদূর এসেছি তা ব্যাখ্যা করি। আমি আরডুইনো দিয়ে হিউ প্রোগ্রামিংয়ে সফল হইনি কিন্তু আমি মনে করি এটি একটি ভাল শুরু।

আমার এটি প্রয়োজন: একটি Arduino একটি হিউ ল্যাম্প একটি সেতু ফিলিপস হিউ ডেভেলপার অ্যাকাউন্ট

সূত্র: https://www.developers.meethue.com/documentation/g… https://github.com/bsalinas/ArduinoHue www.makeuseof.com/tag/control-philips-hue-…

ধাপ 1: শুরু করুন

API ডকুমেন্টেশন অ্যাক্সেস করার আগে, আপনাকে ডেভেলপার হিসেবে নিবন্ধন করতে হবে। এটি বিনামূল্যে, কিন্তু আপনাকে শর্তাবলী মেনে নিতে হবে। আপনি এখানে একটি তৈরি করতে পারেন>

ধাপ 2: হিউ অ্যাপ

অফিসিয়াল ফিলিপস হিউ অ্যাপটি ডাউনলোড করুন। হিউ ব্রিজ চালু আছে এমন নেটওয়ার্কের সাথে আপনার ফোন সংযুক্ত করুন।

ধাপ 3: সেতু সংযুক্ত করুন

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

ধাপ 4: আইপি ঠিকানা

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

ধাপ 5:

যদি এটি সব কাজ করে তবে অ্যাপের সেটিংস মেনুতে যান। "মাই ব্রিজ" এ যাওয়ার চেয়ে "নেটওয়ার্ক সেটিংস" এ যান। ডিএইচসিপি টগল বন্ধ করুন এবং আপনি সেতুর আইপি ঠিকানা দেখতে পাবেন। আইপি ঠিকানাটি নোট করুন, তারপরে ডিএইচসিপি আবার চালু করুন।

ধাপ 6: আপনার রঙ ডিবাগ করুন

আপনার রং ডিবাগ করুন
আপনার রং ডিবাগ করুন

যখন আপনি এটি লিখেছিলেন তখন আপনাকে আপনার হিউ ডিবাগ করতে হবে। এই পদক্ষেপের জন্য আপনার আইপি-ঠিকানা প্রয়োজন। আপনাকে পরের সাইট ভিজিট করতে হবে।

/debug/clip.html

ছবিতে ইন্টারফেসটি এইরকম দেখাবে। এটি সমস্ত ওয়েব ট্র্যাফিক এবং হিউ RESTful ইন্টারফেসের ভিত্তি।

আমি ফিলিপস হিউ সাইটের বিশুদ্ধ ইন্টারফেস সম্পর্কে এই তথ্য পেয়েছি।

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

একটি দেহ: এটি বার্তার অংশ যা বর্ণনা করে আপনি কী পরিবর্তন করতে চান এবং কিভাবে। এখানে আপনি JSON ফর্ম্যাটে প্রবেশ করুন, সম্পদের নাম এবং মান যা আপনি পরিবর্তন/যোগ করতে চান।

একটি পদ্ধতি: এখানে আপনার কাছে 4 টি HTTP পদ্ধতি আছে যা হিউ কল ব্যবহার করতে পারে।

GET: এড্রেসড রিসোর্স সম্পর্কে সমস্ত তথ্য আনার কমান্ড

PUT: এটি একটি ঠিকানা সম্পদ সংশোধন করার কমান্ড

পোস্ট: এই ঠিকানাটি সম্পদের ভিতরে একটি নতুন সম্পদ তৈরি করার আদেশ

মুছে ফেলুন: এই ঠিকানা রিসোর্স প্রতিক্রিয়া মুছে ফেলার কমান্ড: এই এলাকায়, আপনি আপনার কমান্ডের প্রতিক্রিয়া দেখতে পাবেন। এছাড়াও JSON বিন্যাসে।

ধাপ 7: আসুন শুরু করা যাক

চল শুরু করি
চল শুরু করি

এখন আমাদের একটি এলোমেলোভাবে উত্পন্ন ব্যবহারকারীর নাম প্রয়োজন যা সেতু আপনার জন্য তৈরি করে। আপনি এটি পূরণ করে একটি পাবেন।

URL- এ রাখুন:

/api/

শরীরে রাখুন:

এবং GET চাপুন

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

ধাপ 8:

ছবি
ছবি

এখন ব্রিজের বোতাম টিপুন এবং আবার পোস্টে ক্লিক করুন।

এখন আপনি একটি ব্যবহারকারীর নাম পাবেন যা সেতু আপনার জন্য তৈরি করেছে।

ধাপ 9: চলো আলো দিয়ে কিছু করি

চলো আলো দিয়ে কিছু করি
চলো আলো দিয়ে কিছু করি

আপনার ব্যবহারকারীর নাম কপি করুন এবং নিচের লাইনে রাখুন।

এটি আপনার ইউআরএলে রাখুন

/api//লাইট

GET চাপুন

আপনার সিস্টেমের সমস্ত লাইট এবং তাদের নাম সহ আপনার একটি JSON প্রতিক্রিয়া পাওয়া উচিত।

ধাপ 10:

ছবি
ছবি

আমি স্কুল থেকে কিছু হিউ লাইট ধার করেছিলাম, যেটা আমি ব্যবহার করি তা হল আইডি 3.। আমি এই আলো সম্পর্কে নির্দিষ্ট তথ্য চাই।

আপনার ইতিমধ্যে থাকা URL এর পাশে এটি রাখুন:

/api//আলো/3

GET চাপুন

এখন আপনি এলইডি 3 সম্পর্কে তথ্য পাবেন (যদি আপনার কাছে 1 এর মতো অন্য নম্বর থাকে তবে আপনি সেই সম্পর্কে তথ্য দেখতে পাবেন)।

ধাপ 11: আসুন আলোকে নিয়ন্ত্রণ করি

আসুন আলোকে নিয়ন্ত্রণ করি
আসুন আলোকে নিয়ন্ত্রণ করি

আপনি "অবস্থায়" দেখেন যে আমার নেতৃত্ব "চালু"। আমরা "রাজ্যে" আলোকে নিয়ন্ত্রণ করতে চাই।

আপনার ইতিমধ্যে থাকা URL এর পাশে এটি রাখুন: https:/// api// lights/ 3/ state

শরীরে পরবর্তী লাইনটি রাখুন

PUT চাপুন

এখন আপনার আলো নিভে যাবে! শরীরের মানটি সত্যে পরিবর্তন করুন এবং আলো আবার চালু হবে।

ধাপ 12:

এখন সবকিছু কাজ করছে আমি আমার আরডুইনো দিয়ে এটি করতে চাই। আমি হালকা রঙ পরিবর্তন করার জন্য ফিলিপস হিউ যে লিঙ্কটি দিয়েছিলাম তা দেখলাম। কিন্তু এর জন্য আপনার পাইথন দরকার, আমি কখনো পাইথনের সাথে কাজ করিনি তাই আমি অন্য কিছু খুঁজছিলাম।

আপনি যদি এই কোডটি দেখতে চান তবে আমার এখানে গিথুব লিঙ্ক রয়েছে:

github.com/bsalinas/ArduinoHue

ধাপ 13:

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

এটি ওয়েবসাইটের লিঙ্ক।

www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/

ধাপ 14:

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

আমি প্রথমে ইন্টারনেটের জন্য এই লাইব্রেরি যোগ করেছি।

#অন্তর্ভুক্ত

এটি আপনার নেটওয়ার্কের জন্য (এটি হিউ লাইট বাল্বের মতো হতে হবে)

const char* ssid = ""; // এখানে আপনার ওয়াইফাই নেটওয়ার্ক SSIDconst char* password = "" রাখুন; // এখানে আপনার ওয়াইফাই নেটওয়ার্ক পাসওয়ার্ড দিন

এগুলি হল আপনার সেতুর আইডি এবং আপনার সেতুর ব্যবহারকারীর নাম। (আমি জানি না where০ টি কোথায় দাঁড়িয়ে আছে কিন্তু যখন আমি কিছু গবেষণা করলাম তখন দেখলাম যে এটি নেটওয়ার্কের জন্য ব্যবহার করা হয়েছে)।

// Hue constants const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // হিউ ব্যবহারকারীর নাম const int hueHubPort = 80;

// হিউ ভেরিয়েবল বুল হিউঅন; // চালু/বন্ধ int hueBri; // উজ্জ্বলতার মান লম্বা রঙ // হিউ মান স্ট্রিং hueCmd; // হিউ কমান্ড

স্বাক্ষরবিহীন দীর্ঘ বাফার = 0; // প্রাপ্ত ডেটা স্টোরেজের জন্য বাফার স্বাক্ষরবিহীন দীর্ঘ সংযোজন;

ধাপ 15:

অকার্যকর সেটআপের জন্য, আমি ইন্টারনেট সংযোগের জন্য সবচেয়ে বেশি করেছি। এই কোডে, Arduino খুঁজছে যে সে নেটওয়ার্কের সাথে সংযোগ স্থাপন করতে পারে কিনা।

অকার্যকর সেটআপ () {Serial.begin (9600);

Serial.println ();

Serial.printf (" %s এর সাথে সংযুক্ত হচ্ছে", ssid);

WiFi.begin (ssid, password);

যখন (WiFi.status ()! = WL_CONNECTED) {

বিলম্ব (500);

সিরিয়াল.প্রিন্ট ("।"); }

Serial.println ("সংযুক্ত"); }

ধাপ 16:

জেমসের লুপে, আমি দেখলাম যে তার একটি if এবং else বক্তব্য ছিল। কিন্তু এটি ইথারনেট ক্যাবলের জন্য ছিল, তাই আমি এটিকে ছেড়ে দেওয়ার চেষ্টা করেছি। আমি মাঝে মাঝে এটি সামঞ্জস্য করার চেষ্টা করেছি, কিন্তু আমি এখনও অনেক তথ্য দিয়ে জানি না। কোডের কিছু জিনিস যা আমি বুঝতে পেরেছি, স্ট্রিংটিতে হিউ লাইটকে দেওয়া ডেটা।

অকার্যকর লুপ () {

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

স্ট্রিং কমান্ড = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":"+স্ট্রিং (এলোমেলো (15, 25))+"}"; setHue (1, কমান্ড);

কমান্ড = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":"+স্ট্রিং (এলোমেলো (15, 25))+"}"; setHue (2, কমান্ড);

command = "{" hue / ": 65280, sat" sat / ": 255, \" bri / ": 255, transition" transitiontime / ":"+স্ট্রিং (এলোমেলো (15, 25))+"}"; setHue (1, কমান্ড);

command = "{" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":"+স্ট্রিং (এলোমেলো (15, 25))+"}"; setHue (2, কমান্ড);

}

ধাপ 17:

পরবর্তী কোডটি ছিল বুলিয়ান, কিন্তু আরডুইনোতে আপনাকে বুল লিখতে হবে। প্রথমে ক্লায়েন্ট শব্দটির কারণে আমি অনেক ত্রুটি পেয়েছি। তাই আমি এটি দেখেছি এবং দেখেছি যে কিছু কোড "ওয়াইফাই ক্লায়েন্ট ক্লায়েন্ট;" লাইন ব্যবহার করেছে। তাই আমি এটি ব্যবহার করেছি এবং এটি কাজ করেছে।

If স্টেটমেন্টে আপনি প্রায়ই client.print দেখতে পান। আপনি যদি কোডটি দেখেন, আপনি দেখতে পাবেন যে আপনি আগে যে URL টি প্রবেশ করেছিলেন তা টুকরো টুকরো হয়ে গেছে। এখন আপনার নিজের কোড লিখুন। আমাকে আমার LED য় এলইডি লাইট বেছে নিতে হয়েছিল।

/ * setHue () হল আমাদের প্রধান কমান্ড ফাংশন, যা JSON ফরম্যাটে একটি হালকা নম্বর এবং একটি * সঠিকভাবে ফরম্যাট করা কমান্ড স্ট্রিং পাস করতে হবে (মূলত ভেরিয়েবল * এবং মানগুলির একটি জাভাস্ক্রিপ্ট স্টাইল অ্যারে। এটি তারপর একটি সহজ HTTP PUT অনুরোধ করে শুরুতে নির্দিষ্ট আইপি -তে সেতু। */

বুল setHue (int lightNum, স্ট্রিং কমান্ড) {

ওয়াইফাই ক্লায়েন্ট ক্লায়েন্ট;

যদি (client.connect (hueHubIP, hueHubPort)) {

while (client.connected ()) {

client.print ("PUT /api /"); client.print (hueUsername); client.print ("/লাইট/"); client.print (lightNum); // হিউলাইট শূন্য ভিত্তিক, 1 client.println ("3/state") যোগ করুন; // এখানে আমি রঙের নাম এবং stateclient.print ("Host:") পরিবর্তন করেছি; client.println (hueHubIP); client.print ("বিষয়বস্তু-দৈর্ঘ্য:"); client.println (command.length ()); client.println ("কন্টেন্ট-টাইপ: টেক্সট/প্লেইন; চারসেট = UTF-8"); client.println (); // বডি ক্লায়েন্টের আগে ফাঁকা লাইন।প্রিন্টলন (কমান্ড); // হিউ কমান্ড

} client.stop (); সত্য ফিরে; // কমান্ড কার্যকর করা হয়েছে}

অন্যথায় মিথ্যা ফিরে; // কমান্ড ব্যর্থ হয়েছে}

ধাপ 18:

দ্বিতীয় বুলিয়ানে, আমি কিছু শব্দ পরিবর্তন করে একই কাজ করেছি। আমি এটি আপলোড করেছি এটি কাজ করে কিনা তা দেখতে।

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

বুল getHue (int lightNum) {

ওয়াইফাই ক্লায়েন্ট ক্লায়েন্ট;

যদি (client.connect (hueHubIP, hueHubPort)) {

client.print ("GET /api /"); client.print (hueUsername); client.print ("/লাইট/"); client.print (lightNum); client.println ("3/state"); client.print ("হোস্ট:"); client.println (hueHubIP); client.println ("বিষয়বস্তু-প্রকার: অ্যাপ্লিকেশন/json"); client.println ("জীবিত রাখুন"); client.println ();

while (client.connected ()) {if (client.available ()) {client.findUntil ("\" on / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "সত্য"); // যদি আলো জ্বলতে থাকে, সত্যিকারের client.findUntil ("\" bri / ":", "\ 0") তে পরিবর্তনশীল সেট করুন; hueBri = client.readStringUntil (',').toInt (); // ব্রাইটনেস ভ্যালুতে পরিবর্তনশীল সেট করুন client.findUntil ("\" hue / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // হিউ মান বিরতিতে পরিবর্তনশীল সেট করুন; // এখনও অন্যান্য হালকা গুণাবলী ক্যাপচার না করা}} client.stop (); সত্য ফিরে; // ক্যাপচার অন, ব্রি, হিউ} অন্যথায় মিথ্যা রিটার্ন করুন; // পড়ার ত্রুটি, ব্রি, হিউ}

ধাপ 19:

ছবি
ছবি

আমি মনে করি আমি ফিলিপস হিউ এর সাথে সংযোগ স্থাপন করতে পারতাম। আমি তথ্য পেয়েছি কিন্তু এটি এখনও ব্যবহার করা প্রয়োজন।

দুর্ভাগ্যবশত, আমি যা কোড করতে পারি তা অতিক্রম করে। যদি আপনি উত্তরটি জানেন, অথবা যদি সত্যিকারের ত্রুটি থাকে যা সংশোধন করা প্রয়োজন, আমি এটি শুনতে চাই।:-)

প্রস্তাবিত: