সুচিপত্র:

ভার্চুয়াল ডোর বোতাম Mongoose OS এবং XinaBox ব্যবহার করে: 10 টি ধাপ
ভার্চুয়াল ডোর বোতাম Mongoose OS এবং XinaBox ব্যবহার করে: 10 টি ধাপ

ভিডিও: ভার্চুয়াল ডোর বোতাম Mongoose OS এবং XinaBox ব্যবহার করে: 10 টি ধাপ

ভিডিও: ভার্চুয়াল ডোর বোতাম Mongoose OS এবং XinaBox ব্যবহার করে: 10 টি ধাপ
ভিডিও: #9 Creating Node Server In Depth | Mern Stack Tutorials(Hindi/Urdu) 2024, নভেম্বর
Anonim
ভার্চুয়াল ডোর বোতাম Mongoose OS এবং XinaBox ব্যবহার করে
ভার্চুয়াল ডোর বোতাম Mongoose OS এবং XinaBox ব্যবহার করে

Mongoose এবং কিছু xChips ব্যবহার করে, আমরা একটি ভার্চুয়াল দরজা বোতাম তৈরি করেছি। কর্মীদের গুঞ্জন করার জন্য একটি শারীরিক বোতামের পরিবর্তে, তারা এখন এটি নিজেরাই করতে পারে।

ধাপ 1: এই প্রকল্পে ব্যবহৃত জিনিসগুলি

হার্ডওয়্যার উপাদান

  • XinaBox CW02 x 1 এর পরিবর্তে আপনি CW01 ব্যবহার করতে পারেন
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 যদি আপনি আরো মডিউল প্রোগ্রাম করার ইচ্ছা না করেন তবে আপনি কেবল ক্ষমতার জন্য IP01 ব্যবহার করতে পারেন।
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 "আঠালো" যা সব কাজ করে!

সফটওয়্যার অ্যাপ এবং অনলাইন সেবা

Mongoose OS সত্যিই অসাধারণ এবং সহজ IoT ডেভেলপমেন্ট টুল… এবং বিনামূল্যে

ধাপ 2: গল্প

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

ধাপ 3: প্রস্তুতি

  • Mongoose-OS ইনস্টল করুন: সরাসরি এগিয়ে, এখানে আপনার OS এর জন্য এই খুব সহজ ধাপগুলি অনুসরণ করুন:
  • XC10 সংযোগকারী ব্যবহার করে IP01 এবং CW02 একসাথে ক্লিক করুন। নীচের ছবি দেখুন:
ছবি
ছবি
  • আপনার USB পোর্টে IP01 োকান
  • নিশ্চিত করুন যে IP01 সুইচগুলি অবস্থান B এবং DCE এ রয়েছে।
  • আপনার কমান্ড লাইন থেকে CW02 তে Mongoose-OS ফ্ল্যাশ করুন। এটার মত:

সিডি

MOS_PORT = bin/mos flash esp32 রপ্তানি করুন

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

সিডি

বিন/এমএস

ধাপ 4: কনফিগারেশন

যদিও এই পদক্ষেপগুলি একটি দীর্ঘ বিবৃতিতে করা যেতে পারে, আমরা সেগুলিকে বিভক্ত করার সিদ্ধান্ত নিয়েছি, এবং যেহেতু আপনি যে কোনও উপায়ে কপি এবং পেস্ট করবেন, এটি সহজ করে তুলুন:

XChips মান I2C পিন সেট করুন:

বিন/এমএস কনফিগ-সেট i2c.scl_gpio = 14 i2c.sda_gpio = 2

আপনার CW02 কে আপনার ওয়াইফাই এর সাথে সংযুক্ত করুন:

বিন/মোস ওয়াইফাই

এপি মোডে ওয়াইফাই সংযোগ বিচ্ছিন্ন করুন এবং একটি ডোমেইন নাম সেট করুন, যাতে আপনি সঠিক আইপি ঠিকানা খোঁজার পরিবর্তে হোস্টনাম দ্বারা CW01 এর সাথে সংযোগ স্থাপন করতে পারেন। এটি কেবল তখনই কাজ করবে যদি:

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

বিন/মোস কল কনফিগ সেট করুন '{"config": {"wifi": {"ap": {"enable": false}}}}'

bin/mos call Config. Set '{"config": {"dns_sd": {"enable": true}}}' bin/mos call Config. Set '{"config": {"dns_sd": {"host- নাম ":" xinabox_switch "}}}

এবং অবশেষে আপনাকে কনফিগ কাজ করার জন্য CW02 পুনরায় বুট করতে হবে

বিন/মোস কল কনফিগ। '{"রিবুট": সত্য}' সংরক্ষণ করুন

খুব দ্রুত এর পরে আপনি xinabox_switch.local পিং করতে সক্ষম হবেন

ধাপ 5: ইনস্টল করা

আপনার কম্পিউটার থেকে IP01 আনপ্লাগ করুন এবং উপরের চিত্র অনুযায়ী একটি সার্কিট একত্রিত করুন।

PU01 (অথবা যদি আপনি IP01 এর সাথে লেগে থাকার সিদ্ধান্ত নেন) একটি USB পাওয়ার সোর্সে প্লাগ করুন। আপনার বিদ্যমান সুইচ থেকে সমান্তরাল তারের সংযোগ করুন (এটি ছেড়ে দিন, শুধু ক্ষেত্রে) OC03 (পোলারিটি কোন ব্যাপার না)। Fritzing অঙ্কন দেখুন।

একবার চালিত হয়ে গেলে এবং দেখতে যে আপনি আসলে আপনার xCW02 এর সাথে কথা বলছেন, BUS স্ক্যান করার বিষয়ে কি, যেমন I2C বাস:

bin/mos --port ws: //xinabox_switch.local/rpc কল I2C. Scan

যদি এটি সব কাজ করে এবং আপনার xOC03 সঠিকভাবে ইনস্টল করা হয়, তাহলে আপনাকে '56' নম্বরটি ফেরত দেখতে হবে। এটি OC03 এর দশমিকের I2C ঠিকানা (হেক্সে এটি 0x38)।

ধাপ 6: প্রোগ্রামিং

  • এখন কনসোল মোডে Mongoose খুলুন, উপরে দেখুন। এটি একটি উইন্ডো দিয়ে খোলা উচিত যেখানে এটি একটি পোর্ট নম্বর জিজ্ঞাসা করে, লিখুন: ws: //xinabox_switch.local/rpc
  • এটি CW02 এর সাথে যোগাযোগ করবে, এবং বুঝতে পারবে যে ইউনিটটি ইতিমধ্যেই ফ্ল্যাশ এবং ওয়াইফাই এর সাথে সংযুক্ত, তাই এটি মাত্র 3 টি চেক চিহ্ন দেবে। উইন্ডো বন্ধ করুন এবং ফাইলের তালিকা রিফ্রেশ করুন
  • নীচের কোডটি init.js এ কপি এবং পেস্ট করুন এবং সেভ+রিবুট এ ক্লিক করুন
  • আপনি সার্কিট এখন প্রোগ্রাম করা হয়।

ধাপ 7: পরীক্ষা

আপনি এখন আরেকটি RPC কল বাস্তবায়ন করেছেন তাই আপনার টার্মিনাল থেকে আপনি প্রবেশ করতে পারেন:

bin/mos --port ws: //xinabox_switch.local/rpc কল সুইচ

… এবং আপনার বাজার 2 সেকেন্ডের জন্য যেতে হবে। আপনি এটি প্রায় - যেকোনো ব্রাউজার থেকে করতে পারেন:

xinabox_switch.local/rpc/Switch

… একই প্রভাব সহ।

ধাপ 8: পরবর্তী ধাপ

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

ছবি
ছবি

অ্যাপল অ্যাপ: ওয়ার্কফ্লো - এখানে হার্ডকোডেড আইপি অ্যাড্রেস আছে

ধাপ 9: স্কিম্যাটিক্স

বুজার সার্কিট বিদ্যমান পুশ বোতামের সাথে সমান্তরালে OC03 ইনস্টল করুন।

এখানে ডাউনলোড করুন।

OC03 সার্কিট বিদ্যমান পুশ বোতামের সমান্তরালে OC03 ইনস্টল করুন।

এখানে ডাউনলোড করুন।

ছবি
ছবি

ধাপ 10: কোড

init.js জাভাস্ক্রিপ্ট এই প্রকল্পের জন্য আপনার প্রধান এবং একমাত্র কোড।

লোড ('api_config.js');

লোড ('api_gpio.js'); লোড ('api_i2c.js'); লোড ('api_net.js'); লোড ('api_sys.js'); লোড ('api_timer.js'); লোড ("api_rpc.js"); let led = Cfg.get ('pins.led'); যাক adr = 0x38; let bus = I2C.get (); I2C.writeRegB (বাস, adr, 3, 0); I2C.writeRegB (বাস, adr, 1, 0); / * শুধু নিশ্চিত হওয়ার জন্য বন্ধ করুন */ বিলম্ব = 2000; GPIO.set_mode (নেতৃত্বাধীন, GPIO. MODE_OUTPUT); RPC.addHandler ('Switch', function (args) {GPIO.toggle (led); I2C.writeRegB (bus, adr, 3, 0); / * যদি OC03 পুনরায় সংযোগ পায় * / I2C.writeRegB (বাস, adr, 1, 1); টাইমারসেট (বিলম্ব, মিথ্যা, ফাংশন () {GPIO.toggle (led); I2C.writeRegB (bus, adr, 1, 0);}, null); true return;});

প্রস্তাবিত: