Мазмуну:

Wifi көзөмөлгө алынган 12v Led Strip Raspberry Pi менен Tasker, Ifttt Integration .: 15 кадам (сүрөттөр менен)
Wifi көзөмөлгө алынган 12v Led Strip Raspberry Pi менен Tasker, Ifttt Integration .: 15 кадам (сүрөттөр менен)

Video: Wifi көзөмөлгө алынган 12v Led Strip Raspberry Pi менен Tasker, Ifttt Integration .: 15 кадам (сүрөттөр менен)

Video: Wifi көзөмөлгө алынган 12v Led Strip Raspberry Pi менен Tasker, Ifttt Integration .: 15 кадам (сүрөттөр менен)
Video: Урок 68. Домашняя автоматизация: как управлять 16-канальным релейным модулем с помощью Arduino, управляя 16 нагрузками переменного тока. 2024, Июль
Anonim
Wifi көзөмөлү 12V Led Strip менен Raspberry Pi Tasker, Ifttt Integration
Wifi көзөмөлү 12V Led Strip менен Raspberry Pi Tasker, Ifttt Integration
Wifi көзөмөлү 12v Led Strip, Raspberry Pi менен Tasker, Ifttt интеграциясы
Wifi көзөмөлү 12v Led Strip, Raspberry Pi менен Tasker, Ifttt интеграциясы

Бул долбоордо мен малина пи колдонуп wifi аркылуу 12v аналогдук жөнөкөй тилкени кантип башкарууну көрсөтөм.

Бул долбоор үчүн сизге керек болот:

  • 1x Raspberry Pi (Мен Raspberry Pi 1 Model B+колдонуп жатам)
  • 1x RGB 12v Led Strip [Ebay Australia]
  • 3x IRFZ44N N-Channel Mosfet's [Ebay Australia]
  • 1x Аялдын DC электр джек адаптери [Ebay Australia]
  • Кээ бир зымдар
  • Дисплей, клавиатура (жөн гана орнотуу үчүн)

1 -кадам: Windows аркылуу Raspbian OS орнотуу

Windows аркылуу Raspbian OS орнотуу
Windows аркылуу Raspbian OS орнотуу
Windows аркылуу Raspbian OS орнотуу
Windows аркылуу Raspbian OS орнотуу
Windows аркылуу Raspbian OS орнотуу
Windows аркылуу Raspbian OS орнотуу

Windows менен Raspbian орнотуу үчүн сизге керек болот:

  • Win32 Disk Imager: [Жүктөө]
  • Raspbian OS Lite: [Zip], [Torrent]

** МААНИЛҮҮ Туура эмес кылсаңыз, бардык дайындарыңыз жоголуп кетиши мүмкүн, улантуудан мурун маалыматыңыздын камдык көчүрмөсүн бериңиз **

  1. SD картаңызды Card Readerге сайыңыз жана Менин компьютеримди ачыңыз
  2. Drive Letter издеңиз
  3. Win32DiskImager'ди оң баскыч менен чыкылдатыңыз жана "Администратор катары иштетүү" дегенди басыңыз.
  4. Анан кичинекей көк папканы чыкылдатып, RaspbianOS сүрөтүңүздү карап чыгыңыз
  5. Ошондой эле Түзмөктүн астындагы ачылуучу кутучаны чыкылдатып, аны SD карттын Drive Letter деп өзгөртүңүз
  6. Андан кийин "Жазуу" баскычын басыңыз
  7. Ооба басуудан мурун диалог кутучасы ачылат, максаттуу түзмөктүн туура экендигин текшериңиз
  8. Андан кийин SD картаны алып салып, пи ичине салыңыз

2 -кадам: Mac OS Xти колдонуп Raspbian OSти орнотуңуз

Mac OS Xти колдонуу менен Raspbian OSти орнотуңуз
Mac OS Xти колдонуу менен Raspbian OSти орнотуңуз
Mac OS Xти колдонуу менен Raspbian OSти орнотуңуз
Mac OS Xти колдонуу менен Raspbian OSти орнотуңуз
Mac OS Xти колдонуу менен Raspbian OSти орнотуңуз
Mac OS Xти колдонуу менен Raspbian OSти орнотуңуз
Mac OS Xти колдонуу менен Raspbian OSти орнотуңуз
Mac OS Xти колдонуу менен Raspbian OSти орнотуңуз

Mac менен Raspbian орнотуу үчүн сизге керек болот:

  • ApplePi-Baker [Жүктөө]
  • Raspbian OS Lite: [Zip], [Torrent]

** МААНИЛҮҮ Туура эмес кылсаңыз, бардык дайындарыңыз жоголуп кетиши мүмкүн, улантуудан мурун маалыматыңыздын камдык көчүрмөсүн бериңиз **

  1. Disk Utility программасын ачыңыз жана SD картаңыздын сол жагын издеп, чыкылдатыңыз
  2. Терезенин ылдый жагындагы "Аспапты" издеңиз, анда diskXsX сыяктуу бир нерсени көрүшүңүз керек, мында x - сан
  3. "Аспаптын" номерин эстеп, ApplePi-Bakerди ачыңыз
  4. Бул сиздин SD-картаны форматтоого байланыштуу сизден сырсөздү сурайт
  5. Сол жактагы / dev / кийин "Түзмөк" номерин чыкылдатыңыз
  6. "Калыбына келтирүү-Камдык көчүрүү" чыкылдатуу менен RaspbianOS сүрөтүңүздү карап чыгыңыз.
  7. Ал SD-картаны өчүрө баштайт жана ага Raspbian орнотот
  8. Ал бүткөндөн кийин, SD-картаны алып салсаңыз болорун эскертип, терезени ачып, пиңизге салыңыз.

3 -кадам: Pi орнотуу

Пиди иштетүүдөн мурун сизге HDMI дисплейин, клавиатураны жана Ethernet кабелин же USB WiFi кошуу керек болот (Биз муну кийинки кадамда орнотобуз).

Пиди кубаттаңыз, сиз экранды толтурган көптөгөн тексттерди көрөсүз, бул нормалдуу жана Linux ядросунун башталышынын бир бөлүгү. Көргөнчө бир аз күтө туруңуз

малинага кирүү:

Сиздин Колдонуучу атыңыз pi жана сырсөзү малина (экранда эч нерсе жазбайсыз, бирок ал дагы эле киргизилүүдө)

Андан кийин сиз киргенде сиз көрөсүз:

pi@raspberrypi: ~ $

Андан кийин кириш керек:

sudo raspi-config

Сиздин экран анда борборунда боз кутуда варианттары бар көк экранга толот,

  1. Жогору жана ылдый баскычтарды колдонуп, "Файл тутумун кеңейтүү" опциясын бир нече секундадан кийин баса белгилеп, Enter баскычын басыңыз, сиз "тамыр файл тутумунун өлчөмү өзгөртүлдү" деген эскертүүгө түшөсүз, Enter баскычын басыңыз.
  2. Андан кийин ылдый жебени басыңыз жана Жүктөө Жолдоруна өтүңүз жана Enter баскычын басыңыз, андан кийин 'Desktop / CLI' тандалганда Enter баскычын чыкылдатыңыз, Андан кийин 'Console Autologin'ди баса белгилеп, Enter баскычын басыңыз
  3. Андан кийин Өркүндөтүлгөн параметрлерди тандап, кирүүнү басыңыз
  4. Андан кийин sshке ылдый жылдырып, Enter баскычын чыкылдатып, ооба дегенди тандаңыз
  5. андан кийин оң жебени арткы бөлүгүнө чейин басыңыз жана enter басыңыз
  6. Андан кийин кайра түбүнө кирип, аягына чыкылдатып, кайра жүктөө үчүн ооба деп айтыңыз

Кайра жүктөлгөндөн кийин, эгер сиз ethernet аркылуу туташкан болсоңуз, анда IP дарегиңизди табуу үчүн бул буйрукту киргизишиңиз керек, андыктан биз piге кире алабыз.

IPди табуу:

хосттун аты -I.

4 -кадам: Wifi орнотуу

Wi -Fi тармагын орнотуу үчүн биз файлды түзөтүшүбүз керек

1. буйрук сабына кирүү

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

2. Файлдын аягына чейин кирип, киргизиңиз

тармак = {

ssid = "Your_Wifi_Name" psk = "Your_wifi_password"}

3. Андан кийин пиңизди кайра жүктөңүз

sudo өчүрүп күйгүзүү

Пиңизди кайра жүктөөдөн кийин, анын IP дарегин терүү менен алыңыз

хосттун аты -I.

сиз IP дарегиңизди алышыңыз керек, бирок эгерде кайтарылган текст бош болсо, бул pi тармагыңызга туташа алган жок дегенди билдирет. wifi атыңызды жана сырсөзүңүздү туура киргизгениңизди эки жолу текшериңиз, анткени ал регистрге сезгич.

5 -кадам: Windows аркылуу Пиңизге алыстан туташыңыз

Windows аркылуу Пиңизге алыстан туташыңыз
Windows аркылуу Пиңизге алыстан туташыңыз
Windows аркылуу Пиңизге алыстан туташыңыз
Windows аркылуу Пиңизге алыстан туташыңыз
Windows аркылуу Пиңизге алыстан туташыңыз
Windows аркылуу Пиңизге алыстан туташыңыз
Windows аркылуу Пиңизге алыстан туташыңыз
Windows аркылуу Пиңизге алыстан туташыңыз

Эми бизде интернетке туташкан пи бар болгондон кийин, биз клавиатура чычканын жана дисплейин алып салып, алыстан "ssh" аркылуу туташа алабыз.

Терезелери бар пи ичине ssh жүктөө керек

шыбак: [Жүктөө]

  1. Ачык шпаклевканы, IP дарек кутучасына малина pi ipди киргизип, андан кийин ачууну басыңыз
  2. Сиз 2 -сүрөттө окшош диалог кутучасын аласыз, ооба басыңыз
  3. анда сиз жаңы диалогду көрөсүз, ал "кирүү" деп "кирүү" деп айтылат
  4. анда ал сырсөздү сурайт "малина"

Сиз азыр пшке ssh аркылуу туташтыңыз

6 -кадам: Mac колдонуп Piңизге алыстан туташыңыз

Пи менен Mac аркылуу алыстан туташыңыз
Пи менен Mac аркылуу алыстан туташыңыз
Mac аркылуу алыстан Пиңизге туташыңыз
Mac аркылуу алыстан Пиңизге туташыңыз
Пи менен Mac аркылуу алыстан туташыңыз
Пи менен Mac аркылуу алыстан туташыңыз
Пи менен Mac аркылуу алыстан туташыңыз
Пи менен Mac аркылуу алыстан туташыңыз

Эми интернетке туташкан пи бар болгондон кийин, биз клавиатураны жана чычканды алып салып, алыстан "ssh" аркылуу туташа алабыз.

1. "Терминалды" ачыңыз

2. Кирүү

ssh pi@IP_ADDRESS

3. Андан кийин хосттун ачкычы сакталбагандыгы тууралуу билдирүү келиши мүмкүн, жөн гана "ооба" деп териңиз

4. Андан кийин "Raspberry" болгон raspberry pi сырсөзүн киргизгенде

Сиз азыр ssh үстүнөн pi менен туташтыңыз

7 -кадам: Программаны орнотуу

Биз азыр пи үчүн алыстан кирүү мүмкүнчүлүгүнө ээ болгондуктан, биз алып баруучу тилкени башкаруу үчүн кээ бир программаларды орнотушубуз керек

Биз орнотушубуз керек

  • pigpio (Бул бардык GPIO казыктарын санариптен PWMге айлантат)
  • колба (pigpio жана веб -сервер менен сүйлөшүүчү сервердик скрипт)
  • apache2 (Webserver)

Pigpio орнотуу

1. Биринчиден, биз бул буйрукту колдонуп, курчалбаган pigpio программасын камтыган zip папкасын жүктөп алышыбыз керек

wget

2. Биз андан кийин катты ачып, катарга киришибиз керек

pigpio.zip && cd PIGPIO ачуу

3. биз каталогдо экенибизди, программаны түзүп, орнотушубуз керек

make -j4 && sudo make install

4. Эми rc.local ачыңыз, ошондо биз piге pigpiodду иштетүүнү айта алабыз

sudo nano /etc/rc.local

андан кийин чыгуу сызыгына кирердин алдында

sudo pigpiod

Сиз азыр pigpio программасын орноттуңуз

Колбаны орнотуу

Адегенде биз муну киргизүү үчүн программалык камсыздоонун тизмесин жаңыртышыбыз керек

sudo apt update && sudo apt upgrade -y

андан кийин пипти орнотуңуз

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. Андан кийин питтен (сүрөттө көрүнүп тургандай) жерге төөнөгүчтү нан тактасындагы терс пинге туташтырыңыз

Эми биз эң көпфетти туташтырышыбыз керек.

9 -кадам: Mosfetsти зымга туташтыруу жана Пиди туташтыруу

Мосфеттерди электр менен камсыздоо жана Пиди туташтыруу
Мосфеттерди электр менен камсыздоо жана Пиди туташтыруу
Мосфеттерди электр менен камсыздоо жана Пиди туташтыруу
Мосфеттерди электр менен камсыздоо жана Пиди туташтыруу
Мосфеттерди электр менен камсыздоо жана Пиди туташтыруу
Мосфеттерди электр менен камсыздоо жана Пиди туташтыруу
Мосфеттерди электр менен камсыздоо жана Пиди туташтыруу
Мосфеттерди электр менен камсыздоо жана Пиди туташтыруу

Mosfet сизди жарыктын чырагына канча күч кетерин көзөмөлдөөгө мүмкүндүк берет, бизге үч мосфет керек болот, анткени кызыл, жашыл жана көк чырактарды өзүнчө көзөмөлдөө керек.

Мосфеттин үч казыгы бар, сол жагында "Дарбаза" пини бар, ал питке туташтырылат, ал жарыктын чырагына канча күч келерин көзөмөлдөйт.

Борбордук пин "Дренаж" деп аталат, ал жарыктын чырагына барып, дарбазанын өтүшүнө мүмкүндүк берген чыңалууну берет

жана оң жактагы пин "Булак" пини. Бул пин нан тактасында жерге барат.

Кызыл Ледти туташтыруу

  1. Нан тактасына бир мосфет салыңыз
  2. кара булакты GNDден нан булагына туташтырыңыз (оң пин)
  3. андан кийин кызыл жипти мосфеттин борбордук казыгынан алып келген тилкедеги кызыл пинге туташтырыңыз
  4. андан кийин пи боюнча GPIO 17ге сол пинден кызыл зымды туташтырыңыз

Жашыл LEDди туташтыруу

  1. 2 -мосфетти нанга салыңыз
  2. андан кийин эле GNDден келген кара зымды нан тактасына булакка туташтырыңыз (оң пин)
  3. андан кийин мосфеттин борбордук пининен жашыл зымды алып келген тилкедеги жашыл пинге туташтырыңыз.
  4. андан кийин жашыл зымды сол пинден пи боюнча GPIO 22ге туташтырыңыз

Blue Led туташтыруу

  1. Акыркы мосфетти нанга салыңыз
  2. нан булагында GNDден башка кара зымды булакка туташтырыңыз (оң пин)
  3. андан кийин мосфеттин борбордук казыгынан көк тилкени алып келген тилкедеги көк пинге туташтырыңыз.
  4. андан кийин питтеги GPIO 24кө сол пинден көк зымды туташтырыңыз

Андан кийин сизде ак же кара түстүү башка тилкеде дагы бир пин бар болот, жөн эле нан тактасындагы позитивдүү төөнөгүчтөн зымды кошумча тилкеге туташтырыңыз.

Эми бүткөндөн кийин, биз аны сынап көрө баштайбыз.

10 -кадам: Led тилкесин жүктөө жана тестирлөө

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

эгер кандайдыр бир себептерден улам түстөрдүн айрымдары күйбөй калса, анда баары туура сайылганын текшериңиз.

бул скрипт кантип иштейт?

эгер сиз питон скриптин ачсаңыз, анын кантип иштээрин ойлонушуңуз мүмкүн, биринчи сапта сиз көрөсүз:

импорттоо убактысы

бул кичинекей китепкана сценарийди токтотууга мүмкүндүк берет, ошондуктан биз жарыкты тезирээк күйгүзө алабыз

pigpio импорттоо

бул китепкана бизди жетектөөчү тилке менен байланышууга мүмкүнчүлүк берет

pi = pigpio.pi ()

pi.set_pw… pigpio.pi (). inst_pw колдонушубуз үчүн өзгөрмөнү орнотуңуз. set_pw…

RedPin = 17

GreenPin = 22

BluePin = 24

бул жөн эле өзгөрмөлөр, алар скриптке эмне жетектелгенин айтууга мүмкүнчүлүк берет

басып чыгаруу ("кызыл үчүн сыноо")

бул жөн гана буйрук сабына текстти басып чыгарат

pi.set_PWM_dutycycle (RedPin, 255)

бул буйрук pigpio libaryдин бир бөлүгү жана биз мурун койгон номерди издеген "RedPin" орнотууну жана анын жарыктыгын "255" деп койгонун айтып жатат

убакыт.уйку (2)

бул убакыт китепканасынын бир бөлүгү жана скриптти 2 секундга тындырат

Бул ийкемдүү буйрук башка леддерге чейин кайталанат

pi.stop ()

бул жетектелген тилке менен сүйлөшүүнү токтотот жана бардык түстөрдү өчүрөт.

11 -кадам: Server Side скриптин программалоо

** Баштоодон мурун, мен питон жана колбалар жөнүндө окууну сунуштайм:

Бул жерде кээ бир гиддер бар:

www.pythonforbeginners.com

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

flask.pocoo.org

Main.py түзмөктө болгондуктан, бул кадам жөн эле кодду түшүндүрүп жатат.

Адегенде бизде китепканалар бар

колбадан импорттоодон Колбалар, render_template, суроо

пигпиону жиптен импорттоо start_new_thread

анда биз кээ бир өзгөрмөлөрдү коюшубуз керек

app = Flask (_ name_)

CurrentColour = "Ак" RedColourCode = 0 BlueColourCode = 0 GreenColourCode = 0 RedBeforeEffect = 0 BlueBeforeEffect = 0 GreenBeforeEffect = 0 pi = pigpio.pi ()

биринчи өзгөрмө колбага үчүн, бул биздин веб -серверибиз, биз аны колдонмо деп атайбыз, ошондуктан чалуу жана иштетүү оңой. Андан кийин 6 өзгөрмөлөр бар, алар биринчи үчөөнө экөөнү өзгөртүү керек, калган үчөөнө мурунку түс кирет.

@app.route ('/', ыкмалар = ['АЛУУ'])

Бул сапта, эгер кимдир бирөө веб -браузерге pi'нин IP дарегин жазса, анда анын астындагы сценарий иштей тургандыгын, ошондой эле GET ыкмасы бар экенин билдирет. LED тилкесинин түсүн өзгөртүү үчүн колдонулат.

def Main ():

глобалдык CurrentColour

def ("Main") текстинин мааниси скрипттин каалаган жеринен чакырылышы мүмкүн болгон main деп аталган функцияны түзөт. жана глобалдык сызык ал өзгөрмөнү бүт скриптте жаңыртат дегенди билдирет.

эгер request.args.get ('Түс'):

CurrentColour = request.args.get ('Color') if CurrentColour == "White": FadeTORGB (255, 255, 255) elif CurrentColour == "Red": FadeTORGB (255, 0, 0) elif CurrentColour == "Green" ": FadeTORGB (0, 255, 0) elif CurrentColour ==" DarkBlue ": FadeTORGB (0, 0, 255) elif CurrentColour ==" LightBlue ": FadeTORGB (0, 255, 255) elif CurrentColour ==" Orange ": FadeTORGB (255, 15, 0) elif CurrentColour == "Pink": FadeTORGB (255, 0, 192) elif CurrentColour == "Yellow": FadeTORGB (255, 157, 0) elif CurrentColour == "Purple": FadeTORGB (123, 0, 255) elif CurrentColour == "Black": FadeTORGB (0, 0, 0) return render_template ('index.html')

Бул скрипт "Color" GET методунан кийин каалаган атты алат жана аны сактайт. ал ошол ысымды текшерет жана башка үч функцияны бир убакта кызыл, жашыл жана көк жарыкты өзгөртө турган функцияны чакырат.

Def FadeTORGB (RedNum, BlueNum, GreenNum):

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

Бул өчкөн эффект менен ар бир жетектөөчүгө кетүүчү кубаттын көлөмүн өзгөртө турган дагы үч функцияны чакырат.

def FadeUpRed (REDUpNum):

глобалдык RedColourCode эгер RedColourCode <REDUpNum: ал эми RedColourCode REDUpNum: ал эми RedColourCode> REDUpNum: RedColourCode -= 1 pi.set_PWM_dutycycle (RedPin, RedColourCode)

def FadeUpBlue (BlueUpNum):

BlueColourCode болсо BlueColourCode <BlueUpNum: BlueColourCode BlueUpNum: ал эми BlueColourCode> BlueUpNum: BlueColourCode -= 1 pi.set_PWM_dutycycle (BluePin, BlueColourCode)

def FadeUpGreen (GreenUpNum):

GlobalColourCode эгер GreenColourCode <GreenUpNum: ал эми GreenColourCode GreenUpNum: ал эми GreenColourCode> GreenUpNum: GreenColourCode -= 1 pi.set_PWM_dutycycle (GreenPin, GreenColourCode)

эгер _name_ == "_main_":

app.run (хост = "0.0.0.0")

12 -кадам: Webserverди программалоо

Азыр бизде сервер бар, биз веб -сайтты иштеп чыгышыбыз керек.

Сервер шаблондордо жана статикалык папкаларда болгондуктан, бул кадам жөн эле кодду түшүндүрүп жатат.

Мен дагы html, css, javascript жөнүндө окууну сунуштайм

HTML

Биринчиден, биз html программасын түзүшүбүз керек, бул жерде бардык мазмун CSS аркылуу стилдештирилет

1. Башты түзүү (аталышы, файлдарды байланыштыруу,)

Wifi Led Strip

Биринчи эки тег веб -браузерге бул веб -баракча экенин айтат, андан кийин үчүнчү сап браузерге блоктун ичиндеги текстти жашыруусун айтат жана анын астында өтмөктө пайда болот

IOS'то веб -баракчаны толук экранга чыгаруу

Баракты толук экран кылуу үчүн бул кодду тегдин астына киргизиңиз

Андан кийин биз CSS файлына шилтемелерди кошобуз, кийинчерээк жасайбыз, бул башкача болот, колбада болгондуктан файлды башкаруу ыкмасы.

Андан кийин, сиз тегди жаап, дене тегин түзүшүңүз КЕРЕК

Дененин теги анын ичиндеги бардык тегдер веб -баракчага чыгат дегенди билдирет

Эми биз LED тилкесин өзгөртө турган түстүү баскычтарды жасайбыз.

Биз ар бир түс үчүн бирден жаратып, аны столго коёбуз

Бул столдун тышкы алкагын түзөт

бул стол үчүн бир катар түзөт

Эми кызгылт сары баскычты түзөлү

td теги уячаны жаратат, андан кийин "onClick" функциясы биз экинчисин түзө турган JavaScript функциясын чакырат, аларга "класс" функциясы баскычты стилдөө үчүн колдонулат жана стиль аны түскө боёуу үчүн гана колдонулат.

Биз жөн гана sendColour текстин жана стилин бири -бирибизге алмаштырышыбыз керек, бирок ар бир 2 -баскычтан кийин биз сапты жаап, жаңы сап түзөбүз

Жана башкалар…

Анан бардык түстү койгондон кийин столду жабуу керек

Javascript

Эми биз буга чейин шилтеме кылган "SendColour" функциясын кошушубуз керек, адегенде веб -браузерге JavaScript бар экенин айткан тегди кошушубуз керек.

андан кийин функцияны түзүңүз

SendColour функциясы (ClickedColour) {

Бул функция малина пи үчүн Ajax сурамын жөнөтөт, ал аны сиз баскан түскө өзгөртүү керектигин айтат.

xhttp = жаңы XMLHttpRequest ();

xhttp.open ("Get", "? Color =" + ClickedColour, false); xhttp.send (); }

Эми биз JavaScript жана html жабышыбыз керек

CSS

Азыр биз веб -сайтты иштеп чыгууга киришебиз

адегенде шаблондор папкасынан CD чыгарып, статикалык папкага өтүңүз

cd.. && cd static

азыр Style.css файлын түзүңүз

nano Style.css

Биринчиден, стол бүт экранды толтурсун.

. Түстөр {

туурасы: 100%; }

.button {

толтуруу: 25px 35px; чек ара радиусу: 4px; }

Серверди текшерүү

серверди текшерүү үчүн веб -сервердин папкасына өтүңүз

CD..

анан кирет

python Main.py

бул серверди баштайт, андан кийин компьютериңизде веб -браузерди ачыңыз жана ага өтүңүз

YOUR_PI_PI: 5000the: 5000 азырынча маанилүү, анткени бул веб -сервер иштеп жаткан порт.

эгер сиз веб -баракчаңызга ээ болуп, "Ички сервер катасы" болсо, анда консолго (шыбак же терминал) караңыз, анда сиз бир топ текстти көрөсүз, акыркы сапты караңыз жана ал керек. эмне болуп жатканын айтып бер, жоопту гуглдан алсаң болот, бирок эгер экранда түстөрдү көрсөңүз, бирөөнү чыкылдатыңыз жана сиз ал түстөгү ледону көрүшүңүз керек, эгер андай болбосо, анда электр кубаты сайылып, күйгүзүлгөнүн же html коду туура киргизилгенин текшериңиз.

13 -кадам: Apache2 менен иштөө

Эми биз аны сынап көргөндөн кийин, биз аны apache менен сүйлөшүүгө алышыбыз керек, ошондо ал ишке кире баштаганда жана 80 портунда иштей алат (стандарттык веб -порт)

1. WebServer папкаңыздын ичинде wsgi файлын түзүңүз

nano wifiled.wsgi

Андан кийин файлга киргизиңиз

sys импорттоо

sys.path.insert (0, '/home/pi/Webserver/') тиркеме катары Негизги импорттук колдонмодон

анда пи колдонуучусун www-data деп аталган топко кошуңуз, бул apacheге веб-сервердин папкасын кароого мүмкүндүк берет

sudo usermod -a -G www -data pi

андан кийин демейки конфигурацияны алып салыңыз

sudo a2dissite 000-демейки

анда Apache конфигурация папкасында файл түзүңүз

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

жана кирет

ServerName WifiLed ServerAdmin [email protected] WSGIScriptAlias//home/pi/Webserver/wifiled.wsgi Буйрутмага уруксат берүү, баарынан уруксат берүүдөн баш тартуу Бардык берилген ErrorLog талап кылуу $ {APACHE_LOG_DIR} /error.log LogLevel CustomLog $ {APACHE_LOG_DIR} эскертет бириктирилген

анан кирүү менен конфигурацияны окуу үчүн apacheге айт

sudo a2ensite wifiled.conf

Эми пиди кайра жүктөңүз, ал кайра жүктөлгөндө веб -браузериңизге кирет

YOUR_PI_IP

14 -кадам: Tasker жана Ifttt жана башка кызматтарды орнотуу

Бул программаларды орнотуудан мурун, роутериңизде порттун фордингин орнотушуңуз керек, анткени ар бир роутер башкача, бул жерден окуй аласыз

Tasker

андроид түзмөгүңүздө ачык алуучу

анда окуяга негизделген жаңы профиль түзүңүз, сиз каалаган триггерди тандай аласыз. Мен "Телефон шыңгырашын" тандадым жана кимдир бирөөнүн түсүн "C: ANY" деп койгом, анда ал сизден тапшырманы тандооңузду суранат, "New Task" чыкылдатып, сиздин аракетиңизге анын атын атаңыз. Мен аны "Телефон чалуу" деп атаймын, андан кийин "HTTP Head" издеп, Server: Port your_raspberry_pi_IPге коюңуз, андан кийин "/? Color = Green" менен катуу түстү орнотсоңуз болот. биз муну кийинки кадамда жасайбыз. Андан кийин кайра жана кайра басыңыз.

IFTTT

адегенде goto ifttt жана жаңы апплет түзүү Каалаган триггерди тандаңыз (Мен баскычты тандагам), андан кийин иш -аракет үчүн жаратуучу каналын тандап, бизден сураныч, анан url үчүн YOUR_PUBLIC_PI/? Color = LightBlue киргизиңиз. ip жөн гана Google'га "My Ip" дегенди киргизиңиз. Андан кийин HEAD ыкмасын киргизиңиз, анан "Аракетти түзүү" баскычын чыкылдатыңыз, эгер сиздин аракетиңиз питтен түсүн өзгөртүү үчүн өтүнүч келтирсе.

Башка кызматтар

Сиз ошондой эле HTTP HEAD же GET өтүнүчүн жараткан башка кызматтарды туташтыра аласыз.

15 -кадам: Көнүмүш эффекттерди түзүү

Main.pyде импорттук билдирүүнү кошуңуз, импорттун астына кириңиз

импорттоо убактысы

эффект түзүүдөн мурун GreenBeforeEffect кошуу астында өзгөрмөнү кошушубуз керек

CanChangeColour = Чын

анда request.args.get ("Түс") болсо өзгөртүңүз:

чейин

if request.args.get ('Color') жана CanChangeColour:

render_template ('Main.html') кайтып келе жаткан бөлүмдү кошуңуз

@app.route ('/Effect', ыкмалар = ['Get'])

def Effect ():

Андан кийин өзгөрмөлөрдү глобалдуу деп коюңуз

x = 0

глобалдык RedColourCode глобалдык BlueColourCode глобалдык GreenColourCode глобалдык RedBeforeEffect глобалдык BlueBeforeEffect глобалдык GreenBeforeEffect

эми биринчи эффектибизди түзөлү

if request.args.get ('Чалуу'):

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

Бул аракет pi алганда "/? Effect = Call" сыяктуу өтүнүч болгондо иштейт жана учурдагы түстү сактап калат, ошондуктан биз аны кайра чала алабыз, андан кийин биз LED тилкесин кара кылып, анын болушун күтөбүз.

Эми биз ледди карадан жашылга, андан кийин кайрадан карага өчүрөбүз жана муну беш жолу кылгым келет

while x <= 5: FadeTORGB (0, 255, 0) x += 1 time.sleep (1) FadeTORGB (0, 0, 0) time.sleep (1) CanChangeColour = True time.sleep (2) FadeTORGB (RedBeforeEffect), BlueBeforeEffect, GreenBeforeEffect)

Бул бешке чейин болот, бирок ар дайым жашыл түскө боёлуп, анан бир секунд күтүп, кара түскө өтөт. Андан кийин эмне бүтсө, түсү өзгөрүүдөн мурунку түскө өзгөрөт.

Эми биз жөн гана жооп түзүү үчүн.

кайтуу ""

Ошондой эле Raspoot you raspberry pi

sudo өчүрүп күйгүзүү

Сунушталууда: