فهرست مطالب:

وای فای کنترل شده 12V Led Strip با استفاده از Raspberry Pi With Tasker، Ifttt Integration .: 15 مرحله (همراه با تصاویر)
وای فای کنترل شده 12V Led Strip با استفاده از Raspberry Pi With Tasker، Ifttt Integration .: 15 مرحله (همراه با تصاویر)

تصویری: وای فای کنترل شده 12V Led Strip با استفاده از Raspberry Pi With Tasker، Ifttt Integration .: 15 مرحله (همراه با تصاویر)

تصویری: وای فای کنترل شده 12V Led Strip با استفاده از Raspberry Pi With Tasker، Ifttt Integration .: 15 مرحله (همراه با تصاویر)
تصویری: ESP32 Tutorial 47 - WS2812 CheerLights using MQTT over Internet | SunFounder's ESP32 IoT Learnig kit 2024, جولای
Anonim
وای فای با نوار LED 12 ولت با استفاده از Raspberry Pi With Tasker ، Ifttt Integration کنترل می شود
وای فای با نوار LED 12 ولت با استفاده از Raspberry Pi With Tasker ، Ifttt Integration کنترل می شود
وای فای با نوار LED 12 ولت با استفاده از Raspberry Pi With Tasker ، Ifttt Integration کنترل می شود
وای فای با نوار LED 12 ولت با استفاده از Raspberry Pi With Tasker ، Ifttt Integration کنترل می شود

در این پروژه به شما نشان خواهم داد که چگونه می توانید یک نوار LED ساده 12 ولت را روی وای فای با استفاده از تمشک pi کنترل کنید.

برای این پروژه به موارد زیر نیاز دارید:

  • 1x Raspberry Pi (من از Raspberry Pi 1 Model B+استفاده می کنم)
  • 1x RGB 12v Led Strip [Ebay استرالیا]
  • 3x IRFZ44N N-Channel Mosfet's [Ebay Australia]
  • 1x آداپتور جک تغذیه DC زنانه [Ebay Australia]
  • برخی از سیم ها
  • صفحه نمایش ، صفحه کلید (فقط برای راه اندازی)

مرحله 1: سیستم عامل Raspbian را با استفاده از ویندوز نصب کنید

سیستم عامل Raspbian را با استفاده از ویندوز نصب کنید
سیستم عامل Raspbian را با استفاده از ویندوز نصب کنید
سیستم عامل Raspbian را با استفاده از ویندوز نصب کنید
سیستم عامل Raspbian را با استفاده از ویندوز نصب کنید
سیستم عامل Raspbian را با استفاده از ویندوز نصب کنید
سیستم عامل Raspbian را با استفاده از ویندوز نصب کنید

برای نصب Raspbian با ویندوز به موارد زیر نیاز دارید:

  • Win32 Disk Imager: [بارگیری]
  • Raspbian OS Lite: [Zip] ، [Torrent]

** مهم است که اگر اشتباه انجام دهید ممکن است تمام داده های خود را از دست بدهید ، لطفاً قبل از ادامه از داده های خود نسخه پشتیبان تهیه کنید **

  1. کارت SD خود را به کارت خوان وصل کرده و My Computer را باز کنید
  2. دنبال Drive Drive بگردید
  3. روی Win32DiskImager راست کلیک کرده و روی "Run as Administrator" کلیک کنید.
  4. سپس روی پوشه آبی کوچک کلیک کرده و تصویر RaspbianOS خود را مرور کنید
  5. همچنین روی کادر کشویی در قسمت Device کلیک کرده و آن را به درایو نامه SD Card تغییر دهید
  6. سپس روی "نوشتن" کلیک کنید
  7. یک کادر محاوره ای باز می شود قبل از فشار دادن Yes تأیید کنید که دستگاه مورد نظر صحیح است
  8. سپس کارت SD را بردارید و آن را در pi وارد کنید

مرحله 2: سیستم عامل Raspbian را با استفاده از Mac OS X نصب کنید

سیستم عامل Raspbian را با استفاده از Mac OS X نصب کنید
سیستم عامل Raspbian را با استفاده از Mac OS X نصب کنید
سیستم عامل Raspbian را با استفاده از Mac OS X نصب کنید
سیستم عامل Raspbian را با استفاده از Mac OS X نصب کنید
سیستم عامل Raspbian را با استفاده از Mac OS X نصب کنید
سیستم عامل Raspbian را با استفاده از Mac OS X نصب کنید
سیستم عامل Raspbian را با استفاده از Mac OS X نصب کنید
سیستم عامل Raspbian را با استفاده از Mac OS X نصب کنید

برای نصب Raspbian با Mac به موارد زیر نیاز دارید:

  • ApplePi-Baker [بارگیری]
  • Raspbian OS Lite: [Zip] ، [Torrent]

** مهم است که اگر اشتباه انجام دهید ممکن است تمام داده های خود را از دست بدهید ، لطفاً قبل از ادامه از داده های خود نسخه پشتیبان تهیه کنید **

  1. Disk Utility را باز کنید و کارت SD خود را در سمت چپ جستجو کنید و سپس روی آن کلیک کنید
  2. "Device" را در پایین پنجره جستجو کنید ، باید چیزی مانند diskXsX را مشاهده کنید که x یک عدد است
  3. شماره "دستگاه" را به خاطر بسپارید و ApplePi-Baker را باز کنید
  4. به دلیل نیاز به فرمت SD-Card ، از شما رمز عبور می خواهد
  5. روی "Device" Number که After / dev / در سمت چپ قرار دارد کلیک کنید
  6. روی "بازگردانی پشتیبان" کلیک کنید تا تصویر RaspbianOS خود را مرور کنید.
  7. شروع به پاک کردن کارت SD و نصب Raspbian بر روی آن می کند
  8. پس از اتمام کار ، یک جعبه هشدار ظاهر می شود که به شما می گوید می توانید کارت SD را حذف کنید ، آن را حذف کرده و در pi خود قرار دهید.

مرحله 3: تنظیم Pi

قبل از فعال کردن pi ، باید یک صفحه نمایش HDMI ، صفحه کلید و کابل اترنت یا وای فای usb را وصل کنید (این کار را در مرحله بعدی تنظیم می کنیم).

pi را روشن کنید ، خواهید دید که تعدادی متن صفحه را پر می کند ، این طبیعی است و بخشی از راه اندازی هسته لینوکس است. فقط کمی صبر کنید تا ببینید

ورود به تمشک:

نام کاربری شما pi است و رمز عبور تمشک است (در حین تایپ چیزی روی صفحه نمی بینید اما همچنان در حال وارد شدن است)

سپس هنگام ورود به سیستم خواهید دید:

pi@raspberrypi: ~ $

سپس باید وارد کنید:

sudo raspi-config

سپس صفحه شما با یک صفحه آبی با گزینه هایی در یک کادر خاکستری در مرکز پر می شود ،

  1. با استفاده از کلیدهای بالا و پایین ، گزینه "Expand Filesystem" را برجسته کرده و Enter را فشار دهید. پس از چند ثانیه به هشدار منتقل می شوید که می گوید "سیستم فایل ریشه تغییر اندازه داده است" ، روی Enter کلیک کنید.
  2. سپس پیکان رو به پایین را فشار دهید و به Boot Options بروید و روی enter کلیک کنید ، سپس با انتخاب "Desktop / CLI" روی enter کلیک کنید ، سپس "Console Autologin" را برجسته کرده و روی enter کلیک کنید.
  3. سپس Advanced options را انتخاب کرده و Enter را بزنید
  4. سپس به سمت پایین به ssh بروید و روی enter کلیک کنید سپس yes را انتخاب کنید
  5. سپس پیکان سمت راست را فشار دهید تا قسمت پشت برجسته شود و Enter را فشار دهید
  6. سپس دوباره به قسمت پایینی بروید و روی finish کلیک کنید سپس برای راه اندازی مجدد بله بگویید

پس از راه اندازی مجدد ، اگر از طریق اترنت متصل شده اید ، باید این دستور را وارد کنید تا آدرس IP خود را بیابید تا بتوانیم در pi ssh کنیم.

IP را پیدا کنید:

نام میزبان -I

مرحله 4: Wifi را راه اندازی کنید

برای راه اندازی wifi در pi ما باید یک فایل را ویرایش کنیم

1. وارد خط فرمان شوید

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

2. به انتهای فایل بروید و وارد کنید

شبکه = {

ssid = "Your_Wifi_Name" psk = "Your_wifi_password"}

3. سپس pi خود را مجدداً راه اندازی کنید

راه اندازی مجدد sudo

پس از راه اندازی مجدد pi ، آدرس IP خود را با تایپ دریافت کنید

نام میزبان -I

شما باید آدرس IP خود را دریافت کنید اما اگر متن بازگردانده شده خالی باشد به این معنی است که pi نمی تواند به شبکه شما متصل شود. اگر نام و رمز عبور وای فای خود را به درستی وارد کرده اید ، به دلیل حساس به حروف ، دوباره بررسی کنید.

مرحله 5: با استفاده از ویندوز از راه دور به Pi خود متصل شوید

با استفاده از ویندوز از راه دور به Pi خود متصل شوید
با استفاده از ویندوز از راه دور به Pi خود متصل شوید
با استفاده از ویندوز از راه دور به Pi خود متصل شوید
با استفاده از ویندوز از راه دور به Pi خود متصل شوید
با استفاده از ویندوز از راه دور به Pi خود متصل شوید
با استفاده از ویندوز از راه دور به Pi خود متصل شوید
با استفاده از ویندوز از راه دور به Pi خود متصل شوید
با استفاده از ویندوز از راه دور به Pi خود متصل شوید

اکنون که pi را به اینترنت متصل کرده ایم ، می توانیم موس و صفحه نمایش صفحه کلید را حذف کرده و از راه دور با استفاده از "ssh" به آن متصل شویم.

برای ssh به pi با پنجره ها باید بارگیری کنید

بتونه: [بارگیری]

  1. بتونه را باز کنید ، در کادر آدرس IP رزبری pi ip را وارد کرده سپس open را فشار دهید
  2. یک کادر محاوره ای دریافت خواهید کرد که شبیه تصویر 2 است بله را فشار دهید
  3. سپس یک گفتگوی جدید خواهید دید که می گوید "login as" enter "pi"
  4. سپس از شما رمز عبور می خواهد "تمشک" را وارد کنید

شما اکنون به pi روی ssh متصل شده اید

مرحله 6: از راه دور با استفاده از Mac به Pi خود متصل شوید

با استفاده از Mac از راه دور به Pi خود متصل شوید
با استفاده از Mac از راه دور به Pi خود متصل شوید
با استفاده از Mac از راه دور به Pi خود متصل شوید
با استفاده از Mac از راه دور به Pi خود متصل شوید
با استفاده از Mac از راه دور به Pi خود متصل شوید
با استفاده از Mac از راه دور به Pi خود متصل شوید
با استفاده از Mac از راه دور به Pi خود متصل شوید
با استفاده از Mac از راه دور به Pi خود متصل شوید

اکنون که pi را به اینترنت متصل کرده ایم ، می توانیم صفحه کلید و موس را حذف کرده و با استفاده از "ssh" از راه دور به آن متصل شویم.

1. "ترمینال" را باز کنید

2. تایپ کنید

ssh pi@IP_ADDRESS

3. سپس ممکن است پیامی دریافت کنید که می گوید کلید میزبان ذخیره نشده است ، فقط "بله" را تایپ کنید

4. سپس هنگام ارتقاء رمز عبور تمشک pi را که "تمشک" است وارد کنید

شما اکنون به pi روی ssh متصل شده اید

مرحله 7: نصب نرم افزار

همانطور که در حال حاضر دسترسی از راه دور به pi داریم ، باید نرم افزاری را برای کنترل نوار led نصب کنیم

ما نیاز به نصب داریم

  • pigpio (این کار تمام پین های GPIO را از دیجیتال به PWM تبدیل می کند)
  • فلاسک (اسکریپت سمت سرور که با خوک و سرور وب صحبت می کند)
  • apache2 (سرور وب)

pigpio را نصب کنید

1. ابتدا باید یک پوشه zip حاوی نرم افزار غیر کامپایل شده pigpio را با استفاده از این دستور بارگیری کنیم

wget

2. سپس ما باید فشرده را خارج کرده و وارد دایرکتوری شویم

فشرده کردن pigpio.zip && cd PIGPIO

3. اکنون که ما در دایرکتوری هستیم باید نرم افزار را کامپایل و نصب کنیم

make -j4 && sudo make install

4. در حال حاضر rc.local را باز کنید تا بتوانیم به pi بگوییم که هنگام راه اندازی pigpiod را اجرا کند

sudo nano /etc/rc.local

سپس درست قبل از ورود خط خروج

خوک خوک سودو

شما اکنون نرم افزار pigpio را نصب کرده اید

فلاسک را نصب کنید

ابتدا باید لیست نرم افزارها را برای انجام این کار به روز کنیم

sudo apt update && sudo apt upgrade -y

سپس pip را نصب کنید

sudo apt-get python-pip را نصب کنید

اکنون می توانیم فلاسک را نصب کنیم

فلاسک نصب sudo pip

Apache2 را نصب کنید

sudo apt -get apache2 -y را نصب کنید

sudo apt-get libapache2-mod-wsgi -y را نصب کنید

git را نصب کنید

sudo apt install git -y

پس از اتمام نصب همه چیز خاموش شدن pi با

sudo تعطیل کن

مرحله 8: سیم کشی برق

سیم کشی برق
سیم کشی برق
سیم کشی برق
سیم کشی برق
سیم کشی برق
سیم کشی برق

ابتدا باید اتصال برق را به تخته نان متصل کنیم

  1. سیم سیاه را به کانکتور منفی جک برق وصل کنید
  2. سیم قرمز را به کانکتور مثبت روی جک برق وصل کنید
  3. انتهای دیگر سیم قرمز را به طرف مثبت تخته نان متصل کنید
  4. انتهای دیگر سیم سیاه را به طرف مثبت تخته نان متصل کنید
  5. سپس پایه پایه را از pi (همانطور که در تصویر دیده می شود) به پایه منفی روی تخته نان متصل کنید

اکنون باید بیشترین اتصال را به هم وصل کنیم.

مرحله 9: سیم کشی Mosfets و اتصال Pi

سیم کشی Mosfets و اتصال Pi
سیم کشی Mosfets و اتصال Pi
سیم کشی Mosfets و اتصال Pi
سیم کشی Mosfets و اتصال Pi
سیم کشی Mosfets و اتصال Pi
سیم کشی Mosfets و اتصال Pi
سیم کشی Mosfets و اتصال Pi
سیم کشی Mosfets و اتصال Pi

Mosfet به شما این امکان را می دهد تا میزان توان خروجی به چراغ های LED را کنترل کنید ، ما به سه mosfet احتیاج داریم زیرا باید چراغ های قرمز ، سبز و آبی را به طور جداگانه کنترل کنیم.

mosfet دارای سه پین است ، در سمت چپ آن پین "Gate" قرار دارد که به pi متصل می شود تا میزان جریان برق را به چراغ های led کنترل کند.

پین مرکزی "Drain" نامیده می شود که به چراغ های LED می رود و ولتاژی را که دروازه اجازه عبور می دهد تامین می کند

و پین سمت راست پین "منبع" است. این سنجاق روی تخته نان به زمین می رود.

اتصال سرخ سرخ

  1. یک ماسفت را داخل تخته نان بریزید
  2. یک سیم سیاه از GND روی صفحه نان به منبع (پین سمت راست) وصل کنید
  3. سپس یک سیم قرمز از پین وسط روی mosfet به پین قرمز روی نوار led وصل کنید
  4. سپس یک سیم قرمز از پین سمت چپ به GPIO 17 در pi وصل کنید

اتصال Green Led

  1. mosfet دوم را در تخته نان بگذارید
  2. سپس درست مانند قبل یک سیم سیاه از GND روی تخته نان به منبع (پین سمت راست) وصل کنید
  3. سپس یک سیم سبز از پایه مرکزی روی mosfet به پین سبز روی نوار led وصل کنید.
  4. سپس یک سیم سبز از پین سمت چپ به GPIO 22 در pi وصل کنید

اتصال Blue Led

  1. آخرین مصفت را داخل تخته نان بگذارید
  2. اتصال سیم سیاه دیگر از GND روی صفحه نان به منبع (پین سمت راست)
  3. سپس یک سیم آبی را از پایه مرکزی روی mosfet به پین آبی روی نوار led وصل کنید.
  4. سپس یک سیم آبی از پین سمت چپ به GPIO 24 در pi وصل کنید

سپس یک نوک دیگر روی نوار led خواهید داشت که به نظر می رسد سفید یا سیاه باشد ، فقط یک سیم را از پایه مثبت روی نان بردار به آن پین اضافی در نوار led متصل کنید.

اکنون که کار ما تمام شده است ، می توانیم آزمایش آن را شروع کنیم.

مرحله 10: بارگیری و آزمایش Led Strip

برای بارگیری کد منبع برای کنترل نوار Led

git clone https://github.com/DavidMontesin/Raspberry-PI-Wifi-Led-Strip.git && cd Raspberry-PI-Wifi-Led-Strip/

برای آزمایش نوار led فایل test.py را اجرا کنید.

python Test.py

اگر به دلایلی برخی از رنگها روشن نمی شوند ، لطفاً بررسی کنید که آیا همه چیز به درستی وصل شده است.

این اسکریپت چگونه کار می کند؟

اگر اسکریپت پایتون را باز کنید ممکن است تعجب کنید که چگونه کار می کند ، در خط اول خواهید دید:

زمان واردات

این کتابخانه کوچک به ما اجازه می دهد تا اسکریپت را متوقف کنیم تا بتوانیم چراغ ها را سریعتر روشن نگه داریم

خوک وارد کنید

این کتابخانه به ما امکان می دهد با نوار led ارتباط برقرار کنیم

pi = pigpio.pi ()

یک متغیر تنظیم کنید تا بتوانیم از pi.set_pw … insted of pigpio.pi () استفاده کنیم. set_pw…

RedPin = 17

GreenPin = 22

BluePin = 24

اینها فقط متغیرهایی هستند که به ما اجازه می دهد به اسکریپت بگوییم که led در چه چیزی متصل است

چاپ ("تعیین رنگ قرمز")

این فقط متن را در خط فرمان چاپ می کند

pi.set_PWM_dutycycle (RedPin ، 255)

این فرمان بخشی از کتابخانه خوک است و می گوید "RedPin" را که به دنبال عددی است که قبلا تنظیم کرده ایم تنظیم کنید و روشنایی آن را روی "255" که حداکثر است تنظیم کنید.

زمان خواب (2)

این بخشی از کتابخانه زمان است و فقط 2 ثانیه اسکریپت را متوقف می کند

این فرمان انعطاف پذیر برای سایر led ها تا زمانی تکرار می شود

pi.stop ()

که با نوار led صحبت نمی کند و همه رنگها را خاموش می کند.

مرحله 11: برنامه نویسی اسکریپت سمت سرور

** قبل از شروع ، توصیه می کنم در مورد پایتون و فلاسک مطالعه کنید:

در اینجا چند راهنما وجود دارد:

www.pythonforbeginners.com

docs.python-guide.org/fa/latest/intro/learn…

flask.pocoo.org

همانطور که Main.py مستقیماً در git قرار دارد ، این مرحله فقط توضیح کد است.

ابتدا کتابخانه ها را داریم

from flask import Flask ، render_template ، request

وارد کردن خوک خوک از موضوع وارد کردن start_new_thread

سپس باید تعدادی متغیر را تنظیم کنیم

برنامه = فلاسک (_ نام_)

CurrentColour = "سفید" RedColourCode = 0 BlueColourCode = 0 GreenColourCode = 0 RedBeforeEffect = 0 BlueBeforeEffect = 0 GreenBeforeEffect = 0 pi = pigpio.pi ()

اولین متغیر مربوط به flask است که سرور وب ما است و ما آن را برنامه می نامیم ، بنابراین تماس و اجرا آسان تر است. سپس 6 متغیر وجود دارد که سه مورد اول شامل چه رنگی هستند و دو مورد دیگر شامل رنگ قبلی است.

@app.route ('/' ، Methods = ['GET'])

این خط می گوید که اگر کسی آدرس IP pi را در یک مرورگر وب تایپ کند ، اسکریپت زیر آن را اجرا می کند ، همچنین دارای یک روش GET است به این معنی که هر متنی بعد از؟ Color = به سرور وب منتقل می شود و خواهد بود برای تغییر رنگ نوار led استفاده می شود.

def اصلی ():

جهانی CurrentColour

text def Main () به این معنی است که عملکردی به نام main ایجاد می کند که می توان آن را از هر جایی در اسکریپت فراخوانی کرد. و خط جهانی به این معنی است که متغیر را در کل اسکریپت به روز می کند.

اگر request.args.get ("رنگ"):

CurrentColour = request.args.get ("رنگ") اگر CurrentColour == "سفید": FadeTORGB (255، 255، 255) elif CurrentColour == "قرمز": FadeTORGB (255، 0، 0) elif CurrentColour == "سبز ": FadeTORGB (0، 255، 0) elif CurrentColour ==" DarkBlue ": FadeTORGB (0، 0، 255) elif CurrentColour ==" LightBlue ": FadeTORGB (0، 255، 255) elif CurrentColour ==" نارنجی ": FadeTORGB (255، 15، 0) elif CurrentColour == "صورتی": FadeTORGB (255، 0، 192) elif CurrentColour == "زرد": FadeTORGB (255، 157، 0) elif CurrentColour == "بنفش": FadeTORGB (123 ، 0 ، 255) elif CurrentColour == "سیاه": FadeTORGB (0 ، 0 ، 0) render_template return ('index.html')

این اسکریپت پس از GET Method "Color" هر نامی خواهد داشت و آن را ذخیره می کند. سپس آن نام را بررسی می کند و تابعی را فراخوانی می کند که می تواند 3 عملکرد دیگر را تغییر دهد تا نورهای قرمز ، سبز و آبی را به طور همزمان تغییر دهد

def FadeTORGB (RedNum ، BlueNum ، GreenNum):

start_new_thread (FadeUpRed ، (RedNum ،)) start_new_thread (FadeUpBlue ، (BlueNum ،)) start_new_thread (FadeUpGreen ، (GreenNum ،)))

با این کار سه تابع دیگر فراخوانی می شود که مقدار قدرت مورد استفاده در هر led را با افکت محو تغییر می دهد.

def FadeUpRed (REDUpNum):

global RedColourCode if RedColourCode <REDUpNum: while RedColourCode REDUpNum: while RedColourCode> REDUpNum: RedColourCode -= 1 pi.set_PWM_dutycycle (RedPin ، RedColourCode)

def FadeUpBlue (BlueUpNum):

global BlueColourCode if BlueColourCode <BlueUpNum: while BlueColourCode BlueUpNum: while BlueColourCode> BlueUpNum: BlueColourCode -= 1 pi.set_PWM_dutycycle (BluePin ، BlueColourCode)

def FadeUpGreen (GreenUpNum):

Global GreenColourCode if GreenColourCode <GreenUpNum: while GreenColourCode GreenUpNum: while GreenColourCode> GreenUpNum: GreenColourCode -= 1 pi.set_PWM_dutycycle (GreenPin ، GreenColourCode)

if _name_ == "_main_":

app.run (host = "0.0.0.0")

مرحله 12: برنامه نویسی وب سرور

اکنون که سرور را داریم ، باید یک وب سایت طراحی کنیم.

از آنجا که سرور مستقیماً در قالبها و پوشه های ایستا در git قرار دارد ، این مرحله فقط توضیح کد است.

همچنین توصیه می کنم در مورد html ، css ، javascript بخوانید

HTML

ابتدا باید html را برنامه نویسی کنیم ، اینجاست که تمام محتوا می رود و سپس می توان با استفاده از css به آن استایل داد

1. ایجاد Head (عنوان ، پیوند فایل ها ،)

نوار LED وای فای

دو برچسب اول به مرورگر وب می گوید که یک صفحه وب است ، سپس خط سوم به مرورگر می گوید که هر متنی را در داخل بلوک مخفی کند و در زیر آن عنوان در برگه ظاهر می شود.

ایجاد صفحه وب به صورت تمام صفحه در iOS

برای ایجاد صفحه تمام صفحه این کد را در زیر برچسب وارد کنید

در مرحله بعد ما به فایل css ارجاعاتی اضافه خواهیم کرد که بعداً این روش متفاوتی خواهد بود و معمولاً به دلیل flask روش مدیریت فایل است

پس از این شما باید تگ را ببندید و یک تگ بدن ایجاد کنید

تگ بدن بدین معناست که هرگونه برچسب داخل آن در صفحه وب ظاهر می شود

حالا ما قصد داریم دکمه های رنگی بسازیم که می تواند نوار led را تغییر دهد.

ما برای هر رنگ یک عدد ایجاد می کنیم و آن را در یک جدول قرار می دهیم

این فریم بیرونی جدول را ایجاد می کند

این یک ردیف برای جدول ایجاد می کند

حالا بیایید یک دکمه نارنجی ایجاد کنیم

تگ td یک سلول ایجاد می کند ، سپس تابع "onClick" یک تابع جاوا اسکریپت را فراخوانی می کند که بعداً ایجاد می کنیم ، آنها از تابع "class" برای حالت دادن به دکمه استفاده می کنند و سبک فقط برای رنگ آمیزی آن است.

ما فقط باید متن sendColour و دکمه سبک یکدیگر را تغییر دهیم ، اما بعد از هر دکمه دوم ، ردیف را می بندیم و یک ردیف جدید ایجاد می کنیم.

و غیره…

سپس بعد از اینکه تمام رنگ را داخل آن قرار دادید ، باید جدول را ببندید

جاوا اسکریپت

اکنون ما باید تابع "SendColour" را که قبلاً به آن اشاره کرده بودیم اضافه کنیم ، ابتدا باید یک برچسب اضافه کنیم که به مرورگر وب می گوید که جاوا اسکریپت وجود دارد

سپس یک تابع ایجاد کنید

تابع SendColour (روی رنگ کلیک شده) {

این عملکرد یک درخواست Ajax به تمشک pi ارسال می کند که به آن می گوید که به رنگی که روی آن کلیک کرده اید تغییر کند.

xhttp = جدید XMLHttpRequest ()؛

xhttp.open ("GET" ، "؟ Color =" + ClickedColour ، false) ؛ xhttp.send ()؛ }

حالا باید جاوا اسکریپت و html را ببندیم

CSS

اکنون ما قصد داریم وب سایت را طراحی کنیم

ابتدا از پوشه قالبها cd کنید و وارد پوشه استاتیک شوید

cd.. && cd static

حالا فایل Style.css را ایجاد کنید

nano Style.css

ابتدا اجازه دهید جدول کل صفحه را پر کند.

. رنگها {

عرض: 100؛ ؛ }

.دکمه {

بالشتک: 25 پیکسل 35 پیکسل؛ border-radius: 4px؛ }

آزمایش سرور

برای آزمایش سرور به پوشه سرور وب بروید

سی دی..

سپس وارد کنید

پایتون Main.py

با این کار سرور شروع به کار می کند ، سپس مرورگر وب را در رایانه خود باز کرده و به آن بروید

YOUR_PI_PI: 5000the: 5000 در حال حاضر در حال حاضر مهم است زیرا پورتی است که سرور وب روی آن اجرا می شود.

اگر از صفحه وب استفاده می کنید و "خطای سرور داخلی" را دریافت می کنید ، به کنسول (بتونه یا پایانه) نگاه کنید و یک دسته متن را مشاهده خواهید کرد ، فقط به آخرین خط نگاه کنید. به شما بگویید چه اتفاقی می افتد ، می توانید گوگل را برای یافتن پاسخ جستجو کنید ،

اما اگر رنگهای روی صفحه را مشاهده می کنید ، می توانید روی یکی کلیک کنید و باید نوار led را مشاهده کنید که به آن رنگ رسیده است ، اگر آن را بررسی نمی کند که آیا برق وصل و روشن است یا اینکه کد html درست وارد شده است به

مرحله 13: کار با Apache2

اکنون که آن را آزمایش کرده ایم ، باید آن را با apache صحبت کنیم تا بتواند در هنگام راه اندازی و روی پورت 80 (پورت استاندارد وب) اجرا شود.

1. در پوشه WebServer خود یک فایل wsgi ایجاد کنید

nano wifiled.wsgi

سپس در فایل وارد کنید

واردات سیستم

sys.path.insert (0 ، '/home/pi/Webserver/') از برنامه اصلی وارد کردن به عنوان برنامه

سپس کاربر pi را به گروهی به نام www-data اضافه کنید ، این به apache اجازه می دهد تا در پوشه وب سرور جستجو کند

sudo usermod -a -G www -data pi

سپس پیکربندی پیش فرض را حذف کنید

sudo a2dissite 000-default

سپس یک فایل را در پوشه پیکربندی Apache ایجاد کنید

sudo nano /etc/apache2/sites-available/wifiled.conf

و وارد کنید

ServerName WifiLed ServerAdmin [email protected] WSGIScriptAlias//home/pi/Webserver/wifiled.wsgi سفارش اجازه دهید ، رد کردن اجازه از همه درخواست همه ErrorLog اعطا شده ترکیب شده

سپس با وارد کردن به apache بگویید پیکربندی را بخواند

sudo a2ensite wifiled.conf

حالا pi را مجدداً راه اندازی کنید ، وقتی دوباره راه اندازی شد وارد مرورگر وب خود شوید

YOUR_PI_IP

مرحله 14: راه اندازی Tasker و Ifttt و سایر خدمات

قبل از تنظیم این برنامه ها ، شما باید پورت fording را در روتر خود تنظیم کنید ، زیرا هر روتر متفاوت است ، چگونه می توانید در اینجا بخوانید

Tasker

بازکننده دستگاه اندرویدی خود

سپس یک نمایه جدید ایجاد کنید که روی یک رویداد قرار دارد ، می توانید هر ماشه ای را انتخاب کنید. من "زنگ تلفن" را انتخاب کرده ام و رنگ را برای هر کسی "C: ANY" تنظیم کرده ام ، سپس از شما می خواهد که یک کار را انتخاب کنید ، روی "New Task" کلیک کرده و نام آن را روی عملکرد خود قرار دهید. من آن را "تماس تلفنی" می نامم ، سپس add action را فشار دهید و به دنبال "HTTP Head" بگردید و سرور را تنظیم کنید: Port to your_raspberry_pi_IP و سپس در مسیر می توانید یک رنگ ثابت با "/؟ Color = Green" تنظیم کنید یا می توانید یک این کار را در مرحله بعدی انجام می دهیم. سپس به عقب و دوباره کلیک کنید.

IFTTT

ابتدا به ifttt بروید و یک اپلت جدید ایجاد کنید هر کدام از ماشه ها را انتخاب کنید (من دکمه را انتخاب کردم) و سپس برای اقدام ، کانال سازنده را انتخاب کنید و گفت برای درخواست ما درخواست دهید ، سپس url را وارد کنید YOUR_PUBLIC_PI/؟ Color = LightBlue اگر شما عمومیتان را نمی شناسید ip فقط "My Ip" را در Google وارد کنید. سپس برای متد HEAD را وارد کنید سپس روی "Create Action" کلیک کنید در حال حاضر وقتی عمل شما اتفاق می افتد اگر از pi خود درخواست تغییر رنگ می کنید.

سایر خدمات

همچنین می توانید سرویس های دیگری را که HTTP HEAD یا GET درخواست می کنند متصل کنید.

مرحله 15: ایجاد جلوه های سفارشی

در Main.py یک عبارت import اضافه کنید ، زیر import os enter

زمان واردات

همچنین قبل از ایجاد یک افکت باید متغیری را در قسمت GreenBeforeEffect add اضافه کنیم

CanChangeColour = درست است

سپس if.args.get ("رنگ") را تغییر دهید:

به

if request.args.get ('Color') و CanChangeColour:

بخش فقط در بازگشت render_template ('Main.html') اضافه کنید

@app.route ('/Effect'، Methods = ['GET'])

def Effect ():

سپس متغیرها را روی global قرار دهید

x = 0

global RedColourCode global BlueColourCode global GreenColourCode global RedBeforeEffect global BlueBeforeEffect global GreenBeforeEffect

اکنون اجازه دهید اولین اثر خود را ایجاد کنیم

if request.args.get ('تماس'):

RedBeforeEffect = RedColourCode BlueBeforeEffect = BlueColourCode GreenBeforeEffect = GreenColourCode FadeTORGB (0، 0، 0) time.sleep (2)

این عمل زمانی اجرا می شود که pi درخواست "/؟ Effect = Call" را دریافت کند و رنگ فعلی را ذخیره کند تا بتوانیم آن را دوباره فراخوانی کنیم ، سپس نوار led را سیاه می کنیم و منتظر می مانیم تا این اتفاق بیفتد.

اکنون ما قصد داریم رنگ LED را از سیاه به سبز و سپس دوباره به رنگ سیاه محو کنیم و من می خواهم این کار را پنج بار انجام دهم

در حالی که x <= 5: FadeTORGB (0 ، 255 ، 0) x += 1 زمان. خواب (1) FadeTORGB (0 ، 0 ، 0) time.sleep (1) CanChangeColour = زمان واقعی خواب (2) FadeTORGB (RedBeforeEffect ، BlueBeforeEffect ، GreenBeforeEffect)

این تا پنج محاسبه می شود اما هر بار سبز رنگ می شود و سپس یک ثانیه صبر می کند و به رنگ سیاه می رود. پس از اتمام کار ، رنگ دوباره به رنگهای قبلی شما تغییر می کند.

اکنون ما فقط باید پاسخی ایجاد کنیم.

برگشت ""

همچنین raspberry pi را ریبوت کنید

راه اندازی مجدد sudo

توصیه شده: