فهرست مطالب:
- تدارکات
- مرحله 1: آگاهی از برد رله سری 4 DockerPi Series
- مرحله 2: ویژگی ها
- مرحله 3: نقشه آدرس دستگاه
- مرحله 4: رله را به نگهدارنده لامپ متصل به منبع اصلی برق وصل کنید
- مرحله 5: پیکربندی I2C (Raspberry Pi)
- مرحله 6: کنترل مستقیم بدون برنامه نویسی (Raspberry Pi)
- مرحله 7: برنامه به زبان C (تمشک پای)
- مرحله 8: برنامه در پایتون (Raspberry Pi)
- مرحله 9: برنامه در جاوا (Raspberry Pi)
تصویری: سیستم کنترل چراغ: 9 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
اخیراً من برای اهداف تحقیق امنیتی بر روی درک میکروکنترلرها و دستگاه های مبتنی بر IOT کار می کردم. بنابراین ، من به فکر ساختن یک سیستم اتوماسیون خانگی کوچک برای تمرین بودم. من هنوز این را تکمیل نکرده ام ، اما برای راه اندازی نحوه استفاده از Raspberry Pi 2 و برخی دیگر از قطعات الکتریکی برای کنترل روشنایی اتاقم را در این پست به اشتراک خواهم گذاشت. همچنین ، من در مورد راه اندازی اولیه برای تمشک صحبت نمی کنم ، ممکن است آموزش های مختلفی برای آن پیدا کنید.
اما در این پروژه ، من این محصول سری docker pi را به شما معرفی می کنم.
تدارکات
لیست اجزاء:
- 1 عدد Raspberry Pi 3B+/3B/Zero/Zero W/4B/
- کارت TF 1 x 16 گیگابایت
- 1 عدد تخته رله سری 4 DockerPi (HAT)
- منبع تغذیه 1 x [email protected] که از 52Pi است
- 4 x نوار نور
- 1 x اتصال DC
- منبع تغذیه 1 x 12V برای نوارهای نور.
- چندین سیم
مرحله 1: آگاهی از برد رله سری 4 DockerPi Series
رله DockerPi 4 Channel یکی از سری DockerPi است که بیشتر در برنامه های IOT استفاده می شود.
رله DockerPi 4 Channel می تواند AC/DC را به جای سوئیچ های سنتی ، برای دستیابی به ایده های بیشتر رله کند. رله DockerPi 4 Channel می تواند تا 4 را روی هم قرار دهد و می تواند با سایر بردهای توسعه DockerPi روی هم چیده شود. اگر به مدت طولانی نیاز به اجرا دارید ، همچنین توصیه می کنیم از تخته توسعه DockerPi Power ما برای تأمین قدرت بیشتر استفاده کنید.
توجه داشته باشید قبل از ادامه کار ، می خواهم در مورد خطر آزمایش "برق اصلی" به شما هشدار دهم. اگر چیزی خراب شود ، بدترین پیامد ممکن است مرگ یا حداقل سوزاندن خانه شما باشد. بنابراین ، اگر نمی دانید در حال انجام چه کاری هستید یا بهتر است از یک متخصص برق مجرب کمک بگیرید ، سعی نکنید کاری را که در این مقاله ذکر شده انجام دهید. بیایید شروع کنیم.
مرحله 2: ویژگی ها
- سری DockerPi
- قابل برنامه ریزی
- کنترل مستقیم (بدون برنامه نویسی)
- پین های GPIO را گسترش دهید
- رله 4 کانال
- 4 پشتیبانی Alt I2C Addr
- پشتیبانی از وضعیت رله
- پشتیبانی 3A 250V AC
- 3A 30V DC
- می تواند با سایر برد های Stack مستقل از سخت افزار مادربرد (نیاز به پشتیبانی I2C)
مرحله 3: نقشه آدرس دستگاه
این برد آدرس ثبت جداگانه دارد و فقط می توانید هر رله را با یک فرمان کنترل کنید.
ملزومات دیگر:
آشنایی اولیه با پایتون یا C یا پوسته یا جاوا یا هر زبان دیگر (من از C ، پایتون ، پوسته و جاوا استفاده می کنم)
- آشنایی اولیه با سیستم های لینوکس
- حضور ذهن
اکنون ، قبل از حرکت به جلو ، باید اجزای الکتریکی مورد استفاده خود را درک کنید:
1. رله:
رله یک وسیله الکتریکی است که معمولاً برای کنترل ولتاژهای بالا با استفاده از ولتاژ بسیار کم به عنوان ورودی استفاده می شود. این شامل یک سیم پیچ پیچیده در اطراف یک قطب و دو فلپ کوچک (گره) است که برای بستن مدار استفاده می شود. یکی از گره ها ثابت و دیگری متحرک است. هرگاه الکتریسیته ای از سیم پیچ عبور کند ، میدان مغناطیسی ایجاد می کند و گره متحرک را به سمت گره استاتیک جذب می کند و مدار کامل می شود. بنابراین ، فقط با اعمال ولتاژ کوچک برای تقویت سیم پیچ ، ما در واقع می توانیم مدار را برای حرکت ولتاژ بالا تکمیل کنیم. همچنین ، از آنجا که گره استاتیک از نظر فیزیکی به سیم پیچ متصل نیست ، احتمال اینکه میکروکنترلر تغذیه کننده سیم پیچ در صورت خرابی آسیب ببیند بسیار کم است.
مرحله 4: رله را به نگهدارنده لامپ متصل به منبع اصلی برق وصل کنید
حال به قسمت دشوار ، رله را به نگهدارنده لامپ متصل به منبع تغذیه Main Electric متصل می کنیم. اما ، ابتدا می خواهم یک ایده مختصر در مورد نحوه روشن و خاموش کردن چراغ ها از طریق منبع تغذیه مستقیم ارائه دهم.
حال وقتی لامپ به منبع اصلی وصل می شود ، معمولاً این کار را با اتصال دو سیم به لامپ انجام می دهیم. یکی از سیم ها یک سیم "خنثی" و دیگری سیم "منفی" است که در واقع جریان را حمل می کند ، همچنین یک کلید برای کنترل مکانیزم خاموش و روشن کردن به کل مدار اضافه شده است. بنابراین ، هنگامی که سوئیچ متصل است (یا روشن است) جریان از طریق لامپ و سیم خنثی عبور می کند و مدار را تکمیل می کند. با این کار لامپ روشن می شود. وقتی کلید روشن است ، مدار را خراب می کند و لامپ خاموش می شود. در اینجا یک نمودار مدار کوچک برای توضیح این امر آمده است:
اکنون ، برای آزمایش ما ، باید "سیم منفی" را از طریق رله خود عبور دهیم تا مدار را قطع کرده و جریان برق را با استفاده از سوئیچینگ رله کنترل کنیم. بنابراین ، وقتی رله روشن می شود ، باید مدار را کامل کند و لامپ باید روشن شود و برعکس. برای نمودار کامل به نمودار زیر مراجعه کنید.
مرحله 5: پیکربندی I2C (Raspberry Pi)
sudo raspi-config را اجرا کنید و دستورالعمل ها را برای نصب پشتیبانی i2c برای هسته ARM و هسته لینوکس دنبال کنید
به گزینه Interfacing Options بروید
مرحله 6: کنترل مستقیم بدون برنامه نویسی (Raspberry Pi)
رله کانال شماره 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: برنامه به زبان C (تمشک پای)
کد منبع ایجاد کنید و نام آن را "relay.c" بگذارید
#عبارتند از
#عبارتند از
#عبارتند از
#تعریف DEVCIE_ADDR 0x10
#تعریف RELAY1 0x01
#تعریف RELAY2 0x02
#تعریف RELAY3 0x03
#تعریف RELAY4 0x04
#تعریف 0xFF
#تعریف 0x00 خاموش
int main (باطل)
{
printf ("روشن کردن رله ها در C / n") ؛
int fd؛
int i = 0 ؛
fd = wiringPiI2CSetup (DEVICE_ADDR) ؛
برای(؛؛){
برای (i = 1 ؛ i <= 4 ؛ i ++)
{
printf ("روشن کردن رله شماره $ d" ، i) ؛
سیم کشی Pii2CWriteReg8 (fd، i، ON)؛
خواب (200) ؛
printf ("خاموش کردن رله شماره $ d" ، i) ؛
سیم کشیPiI2CWriteReg8 (fd، i، OFF)؛
خواب (200) ؛
}
}
بازگشت 0 ؛
}
آن را کامپایل کنید
رله gcc.c -lwiringPi -o رله
اجرا کنید
./ رله
مرحله 8: برنامه در پایتون (Raspberry Pi)
کد زیر توصیه می شود با استفاده از پایتون 3 اجرا شده و کتابخانه smbus را نصب کنید:
فایلی با نام آن ایجاد کنید: "relay.py" و کد زیر را وارد کنید:
زمان واردات به عنوان t
smbus وارد کنید
واردات سیستم
DEVICE_BUS = 1
DEVICE_ADDR = 0x10
اتوبوس = smbus. SMBus (DEVICE_BUS)
در حالی که True:
تلاش كردن:
برای i در محدوده (1 ، 5):
bus.write_byte_data (DEVICE_ADDR ، i ، 0xFF)
t. خواب (1)
bus.write_byte_data (DEVICE_ADDR ، i ، 0x00)
t. خواب (1)
بجز KeyboardInterrupt as e:
چاپ ("خروج از حلقه")
sys.exit ()
* آن را ذخیره کرده و سپس به عنوان python3 اجرا کنید:
رله python3.py
مرحله 9: برنامه در جاوا (Raspberry Pi)
یک فایل جدید با نام: 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 {
// آدرس ثبت رله.
نهایی عمومی عمومی 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؛
public static void main (String args) 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) ؛
موضوع. خواب (500) ؛
console.println ("خاموش کردن رله!") ؛
device.write (DOCKER_PI_RELAY_1 ، DOCKER_PI_RELAY_OFF) ؛
}
}
توصیه شده:
چراغ قوه چراغ قوه چراغ قرمز با قدرت بالا DIY برای درد: 7 مرحله
چراغ قوه چراغ قوه چراغ قرمز DIY با قدرت بالا 660 نانومتر برای درد: آیا می توانید یک چراغ قوه چراغ قوه نور درمانی قرمز 660 نانومتری با قدرت بالا فقط با 80 دلار تهیه کنید؟ برخی از شرکت ها می گویند سس مخصوص یا دستگاهی با قدرت بالا دارند ، اما حتی آنها برای تظاهرات چشمگیر آنها را تقلب می کنند. یک منطقی d
سیستم مرتب سازی رنگ: سیستم مبتنی بر آردوینو با دو کمربند: 8 مرحله
سیستم مرتب سازی رنگ: سیستم مبتنی بر آردوینو با دو کمربند: حمل و/یا بسته بندی محصولات و اقلام در زمینه صنعتی با استفاده از خطوط ساخته شده با استفاده از تسمه نقاله انجام می شود. این کمربندها به جابجایی مورد از نقطه ای به نقطه دیگر با سرعت خاصی کمک می کند. برخی از وظایف پردازش یا شناسایی ممکن است
ESP8266 RGB LED STRIP WIFI کنترل - NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi - کنترل تلفن هوشمند RGB LED STRIP: 4 مرحله
ESP8266 RGB LED STRIP WIFI کنترل | NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi | RGB LED STRIP Smartphone Control: سلام بچه ها در این آموزش می آموزیم که چگونه از nodemcu یا esp8266 به عنوان ریموت IR برای کنترل نوار LED RGB استفاده کنید و Nodemcu توسط تلفن هوشمند از طریق وای فای کنترل می شود. بنابراین اساساً می توانید RGB LED STRIP را با تلفن هوشمند خود کنترل کنید
چراغ LED سبز (با چراغ چشمک زن کنترل می شود): 9 مرحله
چراغ LED سبز (با چراغ چشمک زن کنترل می شود): چند سال پیش مقاله ای را در مورد روشنایی در کشورهای در حال توسعه خواندم ، که نشان می داد 1.6 میلیارد نفر به برق دسترسی ندارند و منبع روشنایی قابل اعتماد برای آنها یک مشکل بزرگ است. یک شرکت کانادایی lightinâ € ures تولید و توزیع می کند
کنترل چراغ راهنمایی آردوینو W/کنترل از راه دور: 10 مرحله
کنترل چراغ راهنمایی آردوینو W/کنترل از راه دور: من یک چراغ راهنمایی داشتم که در حال پر کردن آن بودم. & nbsp؛ تنها کاری که باید انجام شود ساخت کنترلر برای الگوهای سیگنال نور بود. & nbsp؛ برای چرخاندن آن ، یک کنترل از راه دور را وارد کردم. & nbsp؛ این همچنین فرصتی عالی برای من بود