Мазмұны:

Raspberry Pi көмегімен розеткаларды қалай басқаруға болады: 6 қадам
Raspberry Pi көмегімен розеткаларды қалай басқаруға болады: 6 қадам

Бейне: Raspberry Pi көмегімен розеткаларды қалай басқаруға болады: 6 қадам

Бейне: Raspberry Pi көмегімен розеткаларды қалай басқаруға болады: 6 қадам
Бейне: Замена отопления в новостройке. Подключение. Опрессовка. #17 2024, Қараша
Anonim
Raspberry Pi көмегімен розеткаларды қалай басқаруға болады
Raspberry Pi көмегімен розеткаларды қалай басқаруға болады
Raspberry Pi көмегімен розеткаларды қалай басқаруға болады
Raspberry Pi көмегімен розеткаларды қалай басқаруға болады
Raspberry Pi көмегімен розеткаларды қалай басқаруға болады
Raspberry Pi көмегімен розеткаларды қалай басқаруға болады

Бұл нұсқаулықта мен сізге Raspberry Pi көмегімен үйдегі розеткаларды басқару үшін веб -интерфейс жасауды көрсетемін. Мен сенсорлар байқауын көргенде осы жобаны жазуды таңдадым, және бұл жоба сенсорды пайдаланып, сіз сатып алатын розеткалармен қамтамасыз етілген қашықтан басқару пультінің кодтарын оқуға арналғандықтан, бұл жоба өте жақсы болады деп ойладым.

Мен мұны мүмкіндігінше жоғары деңгейде ұстауға тырысамын және мұның бәрін жасау үшін код беремін. Барлығыңыз үшін маймылдарды кодтаңыз, кодты мұқият зерттеп, түсініктемелерде мені тексеріңіз! Мен үнемі жетілдіруге тырысамын. Бұл жерде көп нәрсе бар, сондықтан егер сізде қандай да бір қадам бойынша сұрақтарыңыз болса, түсініктеме қалдырыңыз, сондықтан мен нұсқаулықты қажетті мәліметтермен жаңарта аламын.

Бұл жобада 433 МГц жиілігіндегі радиожиілікпен басқарылатын розеткалар қолданылады, олар сіздің таңқурай пи -ге қосылған РФ таратқышымен бірге. Розеткалар розеткаларды қосуға/өшіруге болатын қашықтан басқару пультімен келеді, бірақ бұл қызық емес! Біз оның орнына таңқурай pi -де жұмыс істейтін веб -серверді қолданамыз, ол желіге қосылған кез келген адамға белгілі бір розеткаларды қосуға немесе өшіруге мүмкіндік береді. Бұл жобаның веб-интерфейсі өте қолайлы, себебі желідегі кез келген желіге қосылған құрылғыны қашықтан басқару құралы ретінде пайдалануға болады.

Бұл мен жылдар бойы аяқтауды армандаған жоба, және әлі де толықтыруларға орын бар болса да, келесідей сипатталған жоба - бұл функционалды жүйе.

Жабдықтар

  • Raspberry Pi (мен RPi 3 Model B+қолдандым)
  • 433 МГц таратқыш пен қабылдағыш (мен мұны қолдандым)
  • 433 МГц розеткалар (мен мұны қолдандым)
  • Әйелден-әйелге секіру (мен бұл топтаманы сатып алдым)
  • Интернетке кіруге қабілетті компьютер немесе портативті құрылғы

1 -қадам: Raspberry Pi орнатыңыз

Raspberry Pi орнатыңыз
Raspberry Pi орнатыңыз

Жаңа Raspberry Pi -ге Raspbian соңғы нұсқасын орнатудан бастаңыз. Егер сіз қолданыстағы Pi -ді қолдануды жоспарласаңыз (мұны сіз толықтай жасай аласыз), сіздің Pi -де Python 3 бар екеніне көз жеткізу жеткілікті, себебі мен берген барлық бастапқы код осында жазылған. Мұны істеу үшін., түрі

python3

пәрмен жолына. Егер сізде Python 3 болса, питон терминалы ашық екенін көруіңіз керек. Жабу немесе теру арқылы терминалдан шығыңыз

Шығу()

Мұны растағаннан кейін, Pi -ге колбаны орнату керек. Flask бізге веб -сервер құруға мүмкіндік береді. Pi пәрмен жолынан теріңіз

sudo pip3 колбасын орнатыңыз

Егер Pi -де пип орнатылмаған болса, теру қажет болады

sudo apt-get python3-pip орнатыңыз

Мен Raspberry Pi -ді жұмыс үстелі компьютерінің ыңғайлығынан дамытуды жөн көремін. Егер сіз де бұл опцияны қаласаңыз, Pi -ге SSH үшін қандай да бір ортаны орнату қажет. PuTTY жұмыс істейді, бірақ мен GUI (пайдаланушының графикалық интерфейсі) болғанды жөн көремін, бұл сізге тікелей Pi -де тұрғандай көрінеді. GUI опциясы үшін сіз VNC Viewer бағдарламасын жұмыс жасайтын компьютерге орнатқыңыз келеді. Pi -де реттеу қажет болатын параметрлер де бар. Параметрлерді өзгерту бойынша нұсқауларды мына жерден табуға болады.

2 -қадам: аппараттық құралдарды қосу

Аппараттық құралды қосу
Аппараттық құралды қосу

Осы сәтте, осы жобаның бастапқы кодын орнатуға дайындық кезінде қажет болатын барлық физикалық байланыстарды жасау уақыты келді. Сіз таратқыш пен қабылдағыштың түйреуіштерін Pi құрылғысының GPIO түйреуіштеріне қосасыз. Сіз GPIO түйреуіштерінің түйін диаграммасына діни тұрғыдан сілтеме жасағыңыз келеді. Ол үшін Pi терминалын ашып, теріңіз

түйреуіш

Төменде мен жасаған байланыстар берілген. Егер сіз кіріспеде көрсетілгеннен басқа таратқыш/қабылдағыш қондырғысын сатып алсаңыз, сізде басқа конфигурация болуы мүмкін. Егер сіз төменде көрсеткендерден басқа пин нөмірлерін таңдауды шешсеңіз, қорықпаңыз! Бастапқы кодты жүктегенде, RxTx.py файлында пин нөмірлерін өзгертіңіз.

Қабылдағыш (үлкен чип):

  • GND - кез келген тағайындалған жерге түйреуіш
  • ДЕРЕКТЕР - пин 11
  • DER - қосылмаған
  • +5В - кез келген тағайындалған +5В түйреуіш
  • ------
  • +5В - кез келген тағайындалған +5В түйреуіш
  • GND - кез келген тағайындалған жерге түйреуіш
  • GND - қосылмаған
  • ANT - қосылмаған

Ескертпе: Антеннаны қажет болған жағдайда қосуға болады, бірақ маған қажет емес екенін білдім. Бұл кішкентай чип таңқаларлық сезімтал болды және сигналдарды кемінде 50 фут қашықтықта және кем дегенде екі қабырға арқылы анықтайды.

Таратқыш:

  • P - 3.3В істікшесі
  • DA - PIN 7
  • G - кез келген тағайындалған жерге түйреуіш
  • AN - қосылмаған

Ескерту: Қажет болса, сіз антеннаны таратқышқа қосуға болады, бірақ мен оны қажет етпедім. Диапазон жеткілікті (50+фут).

3 -қадам: кодты қосу

Бұл мен осы жобаны әзірлеу кезінде көп уақытымды өткізген бөлік. Мен мүмкіндігінше түсініктеме беруге тырысамын, бірақ егер сіздердің біреулеріңіз оны түсінуге уақыт бөлсеңіз, түсіндіруді қажет ететін бос орындар қалдырдым. Егер сізде осындай жағдай болса, түсініктеме қалдырыңыз!

Мұнда қатысатын тілдер:

  • Python
  • CSS
  • Javascript
  • HTML
  • JQuery/Ajax

Python колбаның серверінде және

RxTx.py

кодты жіберу мен алуды басқаратын файл. CSS веб -беттің стилін құруда қолданылады. Кім жалықтыратын сайтты қалайды !? Javascript оқиғаларды өңдеудің кез келгенінде қолданылады (түймені басу және т.б.). HTML - бұл веб -беттің негізгі құрылыс материалы. Ақырында, JQuery/Ajax веб -бет пен Python фонды арасында байланыс орнату үшін қолданылады.

Егер бұл тілдердің бәрі қорқынышты болып көрінсе, уайымдамаңыз! Мен Python -дің осы жобаға енетінін білдім, ол кезде кодтаудың ең аз көлемі қолданылған болатын. Фигураны қараңыз … Егер сіз дәл осылай жасағыңыз келсе, кодты жылдам қарап шығуға уақыт бөліңіз. Егер қаламасаңыз, қажет емес!

Төменде осы веб -бетте жұмыс істеу үшін таңдаған каталог құрылымы берілген. Бұл қадамға бекітілген қысылған қалта келесі құрылымдағы барлық бастапқы кодты қамтиды.

Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> веб-беті-статикалық ----- favicon.ico ----- style.css-- шаблондар ----- index.html ----- кесте.html-- app.py-- деректер.файл

Сіз Outlet Switch қалтасын Pi -дің кез келген жеріне қоюға болады. Веб -серверді іске қосуға дайын болған кезде, Pi терминалын ашыңыз, және

cd

(каталогты өзгерту) веб -беттің каталогына. Содан кейін теріңіз

python3 app.py

терминалға. Егер қателіктер болмаса, барған жөн!

P. S. Егер сізде қателер пайда болса, шыдамды болыңыз. Мен жүктеу алдында олардың барлығын басуға тырыстым.

4 -қадам: Оған ату беріңіз

Оған ату беріңіз!
Оған ату беріңіз!

Енді сіз кодты іске қосқан кезде, сіз веб -интерфейсті өз қолыңызбен сезе аласыз. Жүйені басқару өте қарапайым:

  • Веб -интерфейсті пайдаланып, қанша сауда нүктесін қосуға болады.
  • Жою өңдеуді басу, жойғыңыз келетін розеткаларды таңдау және жою түймесін басу сияқты қарапайым.

Жоғарыда көрсетілген YouTube бейнесі сіздің тізіміңізге жаңа шығуды қалай қосуға болатынын көрсетеді. Ол не көрсететінін қорытындылау үшін:

  • Алдымен Title өрісіне розетканың атауын енгізіңіз
  • Бағдарлама тақырыптың жоқтығын тексеруге мүмкіндік беру үшін Тақырып өрісінің сыртына шертіңіз немесе түртіңіз. Сізде бірдей атаулар болуы мүмкін емес
  • Тексерілгеннен кейін ON коды мен өшіру коды түймелері қосылады.
  • Қашықтан басқару пультіндегі ҚОСУ түймесін басып тұрыңыз, содан кейін интерфейстегі ҚОСУ түймесін басыңыз. Қашықтан басқару пультіндегі түймені екілік код көршілес өрісті толтырғанша ұстап тұрыңыз.
  • Өшіру коды үшін алдыңғы қадамды қайталаңыз.
  • OK түймесін басыңыз, енді сіз бұл розетканы ауыстыруға дайынсыз!

Кіріспеде айтылғандай, бұл жоба 100% толық емес. Мен әлі аяқтамайтын және енгізетін ең үлкен компонент - бұл жоспарлау мүмкіндігі. Мен пайдаланушыға розеткаларды белгіленген уақытта автоматты түрде қосуға және өшіруге мүмкіндік беретін кесте құруға рұқсат беруді жоспарлап отырмын.

5 -қадам: Отладка және RxTx.py файлы

Отладка және RxTx.py файлы
Отладка және RxTx.py файлы
Отладка және RxTx.py файлы
Отладка және RxTx.py файлы
Отладка және RxTx.py файлы
Отладка және RxTx.py файлы
Отладка және RxTx.py файлы
Отладка және RxTx.py файлы

Жүйенің белгілі бір шектеулігі - бұл әр түрлі сатушылардың сауда нүктелерінде үйлесімсіздік мүмкіндігі. Қосу және өшіру кодтық хабарламалары менің жүйем үшін 25 битті құрайды, ал егер жүйенің хабарлама ұзындығы басқа болса, ол бұл жобамен бірден үйлесімді емес. Егер сіз нұсқауларды дәл орындасаңыз және оны шешуге әлі де қиындықтар туындаса, төмендегілер мәселені шешудің ең жақсы әдісі болар еді.

  • Pi -де matplotlib орнатылғанына көз жеткізіңіз. Мұны Pi терминалына келесіні енгізу арқылы жасауға болады:

    • python3

    • matplotlib импорттау

    • Егер сіз қате алсаңыз, онда matplotlib орнату қажет.
    • Көмегімен питон қабығынан шығыңыз

      Шығу()

  • Matplotlib орнату үшін теріңіз

    sudo pip3 matplotlib орнатыңыз

  • терминалға
  • Тіркелген test.py файлын жүктеп алып, оны Pi ішіндегі RxTx.py файлының қасына қойыңыз
  • Python терминалын ашыңыз және каталогты коммут қалтасына өзгертіңіз.
  • Түрі

    python3 test.py

  • «** Жазуды бастады **» деп жазылған кезде, қашықтан басқару пультіндегі ON немесе OFF түймесін басып, жазбаны аяқтағанша ұстап тұрыңыз.
  • Бағдарлама жоғарыда көрсетілгенге ұқсас matplotlib фигурасын жүктейді. Жоғарыдағы фотосуреттерде көрсетілгендей қайталанатын сигналды көрмейінше үлкейтіңіз.
  • Әрбір хабар үшін жалпы логикалық 1 мен логикалық 0 -ді санаңыз, мұнда хабар жоғарыда көрсетілген қайталанатын сигналдың бір қайталануы болып табылады. Егер барлығы 25 болса, RxTx.py файлы кінәлі емес. Егер сіз 25-тен басқа нәрсеге тап болсаңыз, төменде түсініктеме беруді ұмытпаңыз, мен RxTx.py файлын ашық түрде жаңартамын (немесе өзіңізді сынап көріңіз).

Егер мен қайталанатын сигналды көрмесем ше?

Егер сіз қайталанатын сигналды көрмесеңіз, екі нәрсенің бірі дұрыс емес. Алдымен барлық қосқыш сымдардың дұрыс қосылуын тексеріңіз. Егер бәрі жақсы болып көрінсе, сізде нашар қабылдағыш болуы мүмкін. Мен ұсынған нәрсені сатып алдыңыз ба? Мен бірінші қабылдағыш чипін сатып алған кезде, ол өте шулы болды. Шулы болғандықтан, мен нақты сигнал ала алмадым. Содан кейін мен бұл чипті қайтарып, мен байланыстырған картаны алдым, ол жақсы жұмыс істемеуі мүмкін еді.

6 -қадам: ләззат алыңыз

Сіз телефоннан, планшеттен, компьютерден немесе вебке қосылған басқа құрылғыдан розеткаларды қосу/өшіру мүмкіндігіне ие екеніңізді білесіз! Түсініктемелерде сіз не ойлайтыныңызды айтыңыз!

Ұсынылған: