সুচিপত্র:

লাইট কন্ট্রোল সিস্টেম: 9 টি ধাপ
লাইট কন্ট্রোল সিস্টেম: 9 টি ধাপ

ভিডিও: লাইট কন্ট্রোল সিস্টেম: 9 টি ধাপ

ভিডিও: লাইট কন্ট্রোল সিস্টেম: 9 টি ধাপ
ভিডিও: ফ্লাশ লাইটের আজব 3 টি সেটিং! || smartphones flashlight hidden 3 setting 2024, নভেম্বর
Anonim
লাইট কন্ট্রোল সিস্টেম
লাইট কন্ট্রোল সিস্টেম

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

কিন্তু এই প্রকল্পে, আমি আপনার কাছে এই ডকার পাই সিরিজের পণ্যটি উপস্থাপন করব।

সরবরাহ

উপাদান তালিকা:

  • 1 x রাস্পবেরি পাই 3B+/3B/শূন্য/শূন্য W/4B/
  • 1 x 16GB ক্লাস 10 টিএফ কার্ড
  • 1 x DockerPi সিরিজ 4 চ্যানেল রিলে বোর্ড (HAT)
  • 1 x [email protected] পাওয়ার সাপ্লাই যা 52Pi থেকে
  • 4 x হালকা ফালা
  • 1 এক্স ডিসি সংযোগকারী
  • হালকা স্ট্রিপগুলির জন্য 1 x 12V পাওয়ার সাপ্লাই।
  • বেশ কয়েকটি তার।

ধাপ 1: ডকারপিআই সিরিজ 4 চ্যানেল রিলে বোর্ড সম্পর্কে জানা

ডকারপি সিরিজ 4 চ্যানেল রিলে বোর্ড সম্পর্কে জানা
ডকারপি সিরিজ 4 চ্যানেল রিলে বোর্ড সম্পর্কে জানা
ডকারপি সিরিজ 4 চ্যানেল রিলে বোর্ড সম্পর্কে জানা
ডকারপি সিরিজ 4 চ্যানেল রিলে বোর্ড সম্পর্কে জানা
ডকারপি সিরিজ 4 চ্যানেল রিলে বোর্ড সম্পর্কে জানা
ডকারপি সিরিজ 4 চ্যানেল রিলে বোর্ড সম্পর্কে জানা

DockerPi 4 চ্যানেল রিলে DockerPi সিরিজের সদস্য, IOT অ্যাপ্লিকেশনে বেশি ব্যবহৃত হয়।

DockerPi 4 চ্যানেল রিলে আরো ধারনা অর্জনের জন্য traditionalতিহ্যগত সুইচের পরিবর্তে AC/DC রিলে করতে পারে। DockerPi 4 চ্যানেল রিলে 4 পর্যন্ত স্ট্যাক করতে পারে, এবং অন্যান্য DockerPi সম্প্রসারণ বোর্ডের সাথে স্ট্যাক করা যেতে পারে। যদি আপনাকে দীর্ঘ সময় ধরে চালানোর প্রয়োজন হয়, আমরা আরও সুপারিশ করার জন্য আপনাকে আমাদের ডকারপি পাওয়ার সম্প্রসারণ বোর্ড ব্যবহার করার পরামর্শ দিই।

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

ধাপ 2: বৈশিষ্ট্য

বৈশিষ্ট্য
বৈশিষ্ট্য
বৈশিষ্ট্য
বৈশিষ্ট্য
বৈশিষ্ট্য
বৈশিষ্ট্য
  • ডকারপি সিরিজ
  • প্রোগ্রামযোগ্য
  • সরাসরি নিয়ন্ত্রণ করুন (প্রোগ্রামিং ছাড়া)
  • জিপিআইও পিন প্রসারিত করুন
  • 4 চ্যানেল রিলে
  • 4 Alt I2C Addr সাপোর্ট
  • রিলে স্ট্যাটাস এলইডি সাপোর্ট
  • 3A 250V এসি সাপোর্ট
  • 3A 30V ডিসি
  • মেইনবোর্ড হার্ডওয়্যার থেকে স্বাধীন অন্যান্য স্ট্যাক বোর্ডের সাথে স্ট্যাক করতে পারে (I2C সমর্থন প্রয়োজন)

ধাপ 3: ডিভাইসের ঠিকানা মানচিত্র

ডিভাইসের ঠিকানা মানচিত্র
ডিভাইসের ঠিকানা মানচিত্র
ডিভাইসের ঠিকানা মানচিত্র
ডিভাইসের ঠিকানা মানচিত্র

এই বোর্ডের আলাদা রেজিস্টার ঠিকানা আছে, এবং আপনি কেবল একটি কমান্ড দ্বারা প্রতিটি রিলে নিয়ন্ত্রণ করতে পারেন।

অন্যান্য প্রয়োজনীয়তা:

পাইথন বা সি বা শেল বা জাভা বা অন্য কোন ভাষার প্রাথমিক বোঝার (আমি সি, পাইথন, শেল এবং জাভা ব্যবহার করব)

  • লিনাক্স সিস্টেমের প্রাথমিক ধারণা
  • মনের উপস্থিতি

এখন, এগিয়ে যাওয়ার আগে আপনাকে আমাদের যে বৈদ্যুতিক উপাদানগুলি ব্যবহার করতে হবে তা বুঝতে হবে:

1. রিলে:

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

ধাপ 4: প্রধান বৈদ্যুতিক সরবরাহ দ্বারা চালিত বাল্ব হোল্ডারের সাথে রিলে সংযুক্ত করুন

প্রধান বৈদ্যুতিক সরবরাহ দ্বারা চালিত বাল্ব হোল্ডারের সাথে রিলে সংযুক্ত করুন
প্রধান বৈদ্যুতিক সরবরাহ দ্বারা চালিত বাল্ব হোল্ডারের সাথে রিলে সংযুক্ত করুন
প্রধান বৈদ্যুতিক সরবরাহ দ্বারা চালিত বাল্ব হোল্ডারের সাথে রিলে সংযুক্ত করুন
প্রধান বৈদ্যুতিক সরবরাহ দ্বারা চালিত বাল্ব হোল্ডারের সাথে রিলে সংযুক্ত করুন

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

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

এখন, আমাদের পরীক্ষার জন্য, আমাদের "রিগেটিভ ওয়্যার" কে আমাদের রিলে দিয়ে সার্কিট ভাঙ্গতে এবং রিলে সুইচিং ব্যবহার করে বিদ্যুৎ প্রবাহ নিয়ন্ত্রণ করতে হবে। সুতরাং, যখন রিলে চালু হবে, এটি সার্কিটটি সম্পূর্ণ করবে এবং লাইট বাল্বটি চালু করা উচিত এবং বিপরীতভাবে। ফুল সার্কিটের জন্য নিচের চিত্রটি দেখুন।

ধাপ 5: I2C (রাস্পবেরি পাই) কনফিগার করা

I2C (রাস্পবেরি পাই) কনফিগার করা হচ্ছে
I2C (রাস্পবেরি পাই) কনফিগার করা হচ্ছে
I2C (রাস্পবেরি পাই) কনফিগার করা হচ্ছে
I2C (রাস্পবেরি পাই) কনফিগার করা হচ্ছে
I2C (রাস্পবেরি পাই) কনফিগার করা হচ্ছে
I2C (রাস্পবেরি পাই) কনফিগার করা হচ্ছে
I2C (রাস্পবেরি পাই) কনফিগার করা হচ্ছে
I2C (রাস্পবেরি পাই) কনফিগার করা হচ্ছে

Sudo raspi-config চালান এবং ARM কোর এবং লিনাক্স কার্নেলের জন্য i2c সাপোর্ট ইনস্টল করার অনুরোধগুলি অনুসরণ করুন

ইন্টারফেসিং অপশনে যান

ধাপ 6: প্রোগ্রামিং ছাড়া সরাসরি নিয়ন্ত্রণ (রাস্পবেরি পাই)

চ্যানেল নম্বর 1 রিলে চালু করুন

i2cset -y 1 0x10 0x01 0xFF

চ্যানেল নম্বর 1 রিলে বন্ধ করুন

i2cset -y 1 0x10 0x01 0x00

চ্যানেল নং 2 রিলে চালু করুন

i2cset -y 1 0x10 0x02 0xFF

চ্যানেল নং 2 রিলে বন্ধ করুন

i2cset -y 1 0x10 0x02 0x00

চ্যানেল নম্বর 3 রিলে চালু করুন

i2cset -y 1 0x10 0x03 0xFF

চ্যানেল নং 3 রিলে বন্ধ করুন

i2cset -y 1 0x10 0x03 0x00

চ্যানেল নং 4 রিলে চালু করুন

i2cset -y 1 0x10 0x04 0xFF

চ্যানেল নং 4 রিলে বন্ধ করুন

i2cset -y 1 0x10 0x04 0x00

ধাপ 7: ভাষা সি প্রোগ্রাম (রাস্পবেরি পাই)

সোর্স কোড তৈরি করুন এবং এর নাম দিন "রিলে.সি"

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

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

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

#DEVCIE_ADDR 0x10 নির্ধারণ করুন

#RELAY1 0x01 নির্ধারণ করুন

#RELAY2 0x02 সংজ্ঞায়িত করুন

#RELAY3 0x03 সংজ্ঞায়িত করুন

#RELAY4 0x04 সংজ্ঞায়িত করুন

#0xFF- তে সংজ্ঞায়িত করুন

#0x00 বন্ধ করুন

int প্রধান (শূন্য)

{

printf ("C / n এ রিলে চালু করুন");

int fd;

int i = 0;

fd = wiringPiI2CSetup (DEVICE_ADDR);

জন্য (;;) {

জন্য (i = 1; i <= 4; i ++)

{

printf ("রিলে নং $ d চালু করুন", i);

wiringPiI2CWriteReg8 (fd, i, ON);

ঘুম (200);

printf ("রিলে নং $ d বন্ধ করুন", i);

wiringPiI2CWriteReg8 (fd, i, OFF);

ঘুম (200);

}

}

রিটার্ন 0;

}

কম্পাইল করুন।

gcc relay.c -lwiringPi -o রিলে

এক্সিকিউট ইট

./relay

ধাপ 8: পাইথনে প্রোগ্রাম (রাস্পবেরি পাই)

নিম্নলিখিত কোডটি পাইথন 3 ব্যবহার করে কার্যকর করার এবং smbus লাইব্রেরি ইনস্টল করার সুপারিশ করা হয়েছে:

এটির নামে একটি ফাইল তৈরি করুন: "relay.py" এবং নিম্নলিখিত কোডটি পেস্ট করুন:

আমদানি সময় t হিসাবে

এসএমবিএস আমদানি করুন

আমদানি sys

DEVICE_BUS = 1

DEVICE_ADDR = 0x10

বাস = smbus. SMBus (DEVICE_BUS)

যখন সত্য:

চেষ্টা করুন:

আমি পরিসরে (1, 5):

bus.write_byte_data (DEVICE_ADDR, i, 0xFF)

ঘুম (1)

bus.write_byte_data (DEVICE_ADDR, i, 0x00)

ঘুম (1)

কীবোর্ড ব্যতীত ই হিসাবে বাধা:

মুদ্রণ ("লুপ ছাড়ুন")

sys.exit ()

* এটি সংরক্ষণ করুন এবং তারপর python3 হিসাবে চালান:

python3 relay.py

ধাপ 9: জাভাতে প্রোগ্রাম (রাস্পবেরি পাই)

I2CRelay.java নামে একটি নতুন ফাইল তৈরি করুন এবং নিম্নলিখিত কোড পেস্ট করুন:

java.io. IOException আমদানি করুন;

আমদানি java.util. Arrays;

আমদানি com.pi4j.io.i2c. I2CBus;

com.pi4j.io.i2c. I2CDevice আমদানি করুন;

আমদানি com.pi4j.io.i2c. I2CFactory;

আমদানি com.pi4j.io.i2c. I2CFactory. UnsupportedBusNumberException;

আমদানি com.pi4j.platform. PlatformAlreadyAssignedException;

আমদানি com.pi4j.util. Console;

পাবলিক ক্লাস I2CRelay {

// রিলে এর রেজিস্টার ঠিকানা।

পাবলিক স্ট্যাটিক ফাইনাল int DOCKER_PI_RELAY_ADDR = 0x10;

// রিলে চ্যানেল।

পাবলিক স্ট্যাটিক ফাইনাল বাইট DOCKER_PI_RELAY_1 = (বাইট) 0x01;

পাবলিক স্ট্যাটিক ফাইনাল বাইট DOCKER_PI_RELAY_2 = (বাইট) 0x02;

পাবলিক স্ট্যাটিক ফাইনাল বাইট DOCKER_PI_RELAY_3 = (বাইট) 0x03;

পাবলিক স্ট্যাটিক ফাইনাল বাইট DOCKER_PI_RELAY_4 = (বাইট) 0x04;

// রিলে অবস্থা

পাবলিক স্ট্যাটিক ফাইনাল বাইট DOCKER_PI_RELAY_ON = (বাইট) 0xFF;

পাবলিক স্ট্যাটিক ফাইনাল বাইট DOCKER_PI_RELAY_OFF = (বাইট) 0x00;

পাবলিক স্ট্যাটিক ভয়েড মেইন (স্ট্রিং আর্গস) InterruptException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {

চূড়ান্ত কনসোল কনসোল = নতুন কনসোল ();

I2CBus i2c = I2CFactory.getInstance (I2CBus. BUS_1);

I2CDevice ডিভাইস = i2c.getDevice (DOCKER_PI_RELAY_ADDR);

console.println ("রিলে চালু করুন!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

Thread.sleep (500);

console.println ("রিলে বন্ধ করুন!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

প্রস্তাবিত: