Mundarija:

Raspberry Pi yordamida rozetkalarni qanday boshqarish mumkin: 6 qadam
Raspberry Pi yordamida rozetkalarni qanday boshqarish mumkin: 6 qadam

Video: Raspberry Pi yordamida rozetkalarni qanday boshqarish mumkin: 6 qadam

Video: Raspberry Pi yordamida rozetkalarni qanday boshqarish mumkin: 6 qadam
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Iyul
Anonim
Raspberry Pi yordamida rozetkalarni qanday boshqarish kerak
Raspberry Pi yordamida rozetkalarni qanday boshqarish kerak
Raspberry Pi yordamida rozetkalarni qanday boshqarish kerak
Raspberry Pi yordamida rozetkalarni qanday boshqarish kerak
Raspberry Pi yordamida rozetkalarni qanday boshqarish kerak
Raspberry Pi yordamida rozetkalarni qanday boshqarish kerak

Bu yo'riqnomada men sizga Raspberry Pi yordamida uyingizdagi rozetkalarni boshqarish uchun veb -interfeysni qanday yaratishni ko'rsataman. Men sensorlar tanlovini ko'rganimda ushbu loyihani yozishni tanladim va bu loyiha sensordan foydalanib, siz sotib olgan rozetkalarda joylashgan masofadan boshqarish pultining kodlarini o'qishni o'z ichiga oladi, menimcha, bu loyiha juda mos keladi.

Men buni iloji boricha yuqori darajada ushlab turish uchun harakat qilaman va bu ishni bajarish uchun kodni beraman. Hammangiz uchun u erda maymunlarni kodlash uchun, o'zingizni erkin his eting va sharhlarda meni diqqat bilan o'rganing! Men har doim yaxshilanishga intilaman. Bu erda juda ko'p narsa bor, shuning uchun agar biron bir qadam haqida savollaringiz bo'lsa, sharh qoldiring, shunda men ko'rsatmalarni kerakli tafsilotlar bilan yangilashim mumkin.

Ushbu loyiha 433 MGts chastotali radio chastotali boshqariladigan rozetkalarni ishlatadi, ular sizning malina pi ga ulangan chastotali transmitter bilan jihozlangan. Chiqish punktlarida rozetkalarni yoqish/o'chirish mumkin bo'lgan masofadan boshqarish pultlari mavjud, lekin bu qiziq emas! Buning o'rniga biz malina pi -da ishlaydigan veb -serverdan foydalanamiz, bu tarmoqqa ulangan har bir kishiga ma'lum rozetkalarni yoqish yoki o'chirishga imkon beradi. Ushbu loyihaning veb-interfeysi juda mos keladi, chunki tarmoqdagi har qanday Internetga ulangan qurilmani masofadan boshqarish pulti sifatida ishlatish mumkin.

Bu men yillar davomida bajarishni orzu qilgan loyiha va qo'shimchalar uchun hali joylar mavjud bo'lsa -da, quyidagi tarzda tasvirlangan loyiha - bu funktsional tizim.

Ta'minotlar

  • Raspberry Pi (men RPi 3 Model B+dan foydalanganman)
  • 433 MGts chastotali uzatuvchi va qabul qiluvchi (men buni ishlatganman)
  • 433 MGts chastotali rozetkalar (men buni ishlatganman)
  • Ayoldan ayolga sakrash (men bu to'plamni sotib oldim)
  • Internetga kira oladigan kompyuter yoki portativ qurilma

1 -qadam: Raspberry Pi -ni o'rnating

Raspberry Pi -ni o'rnating
Raspberry Pi -ni o'rnating

Yangi Raspberry Pi -ga Raspbian -ning so'nggi versiyasini o'rnatish bilan boshlang. Agar siz mavjud Pi -dan foydalanishni rejalashtirmoqchi bo'lsangiz (buni butunlay qilishingiz mumkin), sizning Pi -da Python 3 borligiga ishonch hosil qilish kifoya, chunki men bergan manba kodining hammasi shu erda yozilgan. Buning uchun., turi

python3

buyruq qatoriga. Agar sizda Python 3 bo'lsa, siz python terminali ochiq ekanligini ko'rishingiz kerak. Yopish yoki yozish orqali terminaldan chiqing

Chiqish()

Buni tasdiqlaganingizdan so'ng, siz Pi -ga kolbani o'rnatishingiz kerak. Flask bizga veb -serverimizni yaratishga imkon beradi. Pi buyruq satriga yozing

sudo pip3 kolbasini o'rnating

Agar sizda Pi -ga pip o'rnatilmagan bo'lsa, siz yozishingiz kerak bo'ladi

sudo apt-get python3-pip ni o'rnating

Men Raspberry Pi -ni ish stoli kompyuterimdan ishlab chiqishni afzal ko'raman. Agar siz ham ushbu variantni afzal ko'rsangiz, Pi -ga SSH uchun qandaydir muhitni o'rnatishingiz kerak. PuTTY ishlaydi, lekin men GUI (grafik foydalanuvchi interfeysi) ga ega bo'lishni afzal ko'raman, bu sizni to'g'ridan -to'g'ri Pi -da bo'lganga o'xshaydi. GUI -ni tanlash uchun siz VNC Viewer -ni ishlashni rejalashtirgan kompyuterga o'rnatishni xohlaysiz. Pi -da sozlashingiz kerak bo'lgan sozlamalar ham mavjud. Sozlamalarni o'zgartirish bo'yicha ko'rsatmalarni bu erda topishingiz mumkin.

2 -qadam: uskunani ulash

Uskunani ulash
Uskunani ulash

Shu nuqtada, ushbu loyiha uchun manba kodini o'rnatishga tayyorgarlik ko'rishingiz kerak bo'lgan barcha jismoniy ulanishlarni amalga oshirish vaqti keldi. Siz uzatgich va qabul qilgichning pinlarini Pi -ning GPIO pinlariga ulaysiz. Siz GPIO pinlarining pinout diagrammasiga diniy jihatdan murojaat qilishni xohlaysiz. Buning uchun Pi terminalini oching va yozing

pinout

Quyida men bog'lagan aloqalar. Agar siz kirish qismida ko'rsatilgandan ko'ra boshqa uzatuvchi/qabul qilgich uskunasini sotib olgan bo'lsangiz, sizda boshqa konfiguratsiya bo'lishi mumkin. Agar siz men ko'rsatgan raqamlardan boshqacha pin raqamlarini tanlashga qaror qilsangiz, qo'rqmang! Manba kodini yuklaganingizda, RxTx.py fayliga kerak bo'lganda pin raqamlarini o'zgartiring.

Qabul qilgich (katta chip):

  • GND - har qanday belgilangan tuproqli pin
  • Ma'lumot - pin 11
  • DER - ulanmagan
  • +5V - har qanday belgilangan +5V pin
  • ------
  • +5V - har qanday belgilangan +5V pin
  • GND - har qanday belgilangan pim
  • GND - ulanmagan
  • ANT - ulanmagan

Eslatma: Agar kerak bo'lsa, antennani ulashingiz mumkin, lekin menga kerak emasligini aniqladim. Bu kichik chip hayratlanarli darajada sezgir edi va signallarni o'tirgan joyidan kamida 50 fut balandlikda va kamida ikkita devor orqali aniq aniqlaydi.

Transmitter:

  • P - 3.3V pin
  • DA - 7 -pin
  • G - har qanday belgilangan tuproqli pin
  • AN - ulanmagan

Eslatma: Yana kerak bo'lganda, siz antennani uzatgichga ulashingiz mumkin, lekin menga kerak emasligini aniqladim. Diapazon etarli emas (50+fut).

3 -qadam: Kodni qo'shish

Bu loyihani ishlab chiqishda ko'p vaqtimni o'tkazgan qismim. Men iloji boricha izoh berishga harakat qilaman, lekin ehtimol sizdan kimdir tushunishga vaqt sarflasa, tushuntirishni talab qiladigan bo'shliqlarni qoldirgan bo'lardim. Agar bu siz bilan sodir bo'lsa, sharh qoldiring!

Bu erda ishtirok etadigan tillar:

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

Python kolba serverida va

RxTx.py

kodni uzatish va qabul qilishni boshqaruvchi fayl. CSS veb -sahifaning uslubini yaratishda ishlatiladi. Kim zerikarli veb -saytni xohlaydi !? Javascript voqealarni boshqarishda ishlatiladi (tugmani bosish va hk). HTML veb -sahifaning asosiy qurilish blokidir. Nihoyat, JQuery/Ajax veb -sahifa va Python orqa qismi o'rtasida muloqot qilish uchun ishlatiladi.

Agar bu tillarning barchasi qo'rqinchli bo'lsa, xavotir olmang! Men faqat Pythonning bu loyihaga kirishini bilardim, u eng kam kodlashni o'z ichiga olgan tilga aylandi … Aytish kifoya, agar siz shunday qilishni tanlasangiz, kodni terishga shoshilmang. Agar xohlamasangiz, shart emas!

Quyida men ushbu veb -sahifada ishlash uchun tanlagan katalog tuzilmasi. Ushbu qadamga biriktirilgan zip papkasi quyidagi tuzilmadagi barcha manba kodini o'z ichiga oladi.

Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> veb-sahifa-statik ----- favicon.ico ----- style.css-- andozalar ----- index.html ----- jadvali.html-- app.py-- ma'lumotlar.fayli

Siz Outlet Switch papkasini Pi -ning istalgan joyiga qo'yishingiz mumkin. Veb -serveringizni ishga tushirishga tayyor bo'lgach, Pi -dagi terminalni oching va

CD

(katalogni o'zgartirish) veb -sahifa katalogiga. Keyin yozing

python3 app.py

terminalga. Agar xatolar bo'lmasa, siz borishingiz kerak!

P. S. Agar sizda biron bir xato bo'lsa, sabr qiling. Yuklamasdan oldin hammasini siqib chiqarishga harakat qildim.

4 -qadam: Unga zarba bering

Unga zarba bering!
Unga zarba bering!

Endi siz kodni ishlatayotganingizda, veb -interfeysni barmoq uchida his qilishingiz mumkin. Tizimni boshqarish juda oddiy:

  • Veb -interfeys yordamida siz xohlagancha savdo nuqtalarini qo'shishingiz mumkin.
  • O'chirish - bu tahrirni bosish, o'chirmoqchi bo'lgan rozetkalarni tanlash va o'chirishni bosish kabi oddiy.

Yuqoridagi YouTube videosi sizning ro'yxatingizga yangi savdo nuqtasini qanday qo'shish kerakligini ko'rsatadi. U nimani ko'rsatayotganini umumlashtirish uchun:

  • Avval sarlavha maydoniga savdo nuqtasi nomini kiriting
  • Sarlavha maydonining tashqarisiga bosing yoki tegib, dasturga nom mavjud emasligini tekshirishga ruxsat bering. Siz bir xil nomga ega bo'lolmaysiz
  • Tekshirilgandan so'ng, ON kodi va O'chirish kodi tugmalari yoqiladi.
  • Taqdim etilgan masofadan boshqarish pultidagi ON tugmachasini bosib ushlab turing va interfeysdagi ON kod tugmachasini tezda bosing. Ikkilik kodingiz qo'shni maydonni to'ldirguncha masofadan boshqarish pultidagi tugmani ushlab turing.
  • O'chirish kodi uchun oldingi qadamni takrorlang.
  • OK ni bosing va endi siz ushbu rozetkani o'zgartirishga tayyormiz!

Kirish qismida aytib o'tilganidek, loyiha o'z maqsadlarim uchun 100% bajarilmagan. Men hali tugatmagan va amalga oshirmagan eng katta komponent - bu rejalashtirish qobiliyati. Men foydalanuvchiga rozetkalarni belgilangan vaqtda avtomatik ravishda yoqish va o'chirishga imkon beradigan jadval tuzishga ruxsat berishni rejalashtirmoqdaman.

5 -qadam: disk raskadrovka va RxTx.py fayli

Nosozliklarni tuzatish va RxTx.py fayli
Nosozliklarni tuzatish va RxTx.py fayli
Nosozliklarni tuzatish va RxTx.py fayli
Nosozliklarni tuzatish va RxTx.py fayli
Nosozliklarni tuzatish va RxTx.py fayli
Nosozliklarni tuzatish va RxTx.py fayli
Nosozliklarni tuzatish va RxTx.py fayli
Nosozliklarni tuzatish va RxTx.py fayli

Tizimning yagona ma'lum cheklovi shundaki, sotuvchilarning turli savdo nuqtalarida mos kelmaslik ehtimoli bor. Yoqish va o'chirish kodli xabarlar mening tizimim uchun 25 bitni tashkil qiladi va agar tizim boshqa xabar uzunligiga ega bo'lsa, u darhol bu loyihaga mos kelmaydi. Agar siz ko'rsatmalarga to'liq amal qilgan bo'lsangiz va siz hali ham bu muammoni hal qilishda muammolarga duch kelsangiz, muammoni hal qilishning eng yaxshi usuli quyidagicha bo'ladi.

  • Pi -da matplotlib o'rnatilganligiga ishonch hosil qiling. Buni Pi terminaliga quyidagilarni kiritish orqali qilishingiz mumkin:

    • python3

    • matplotlib import qilish

    • Agar siz xato ko'rsangiz, matplotlib -ni o'rnatishingiz kerak.
    • Python qobig'idan foydalanib chiqing

      Chiqish()

  • Matplotlib -ni o'rnatish uchun yozing

    sudo pip3 matplotlib -ni o'rnating

  • terminalga
  • Biriktirilgan test.py faylini yuklab oling va uni RxTx.py faylining yoniga joylashtiring
  • Python terminalini oching va katalogni comm papkasiga o'zgartiring.
  • Turi

    python3 test.py

  • "** Yozuv boshlandi **" deb yozilsa, masofadan boshqarish pultidagi ON yoki OFF tugmachasini yozib olish tugaguncha bosib turing.
  • Dastur matplotlib shaklini yuklaydi, u yuqoridagiga o'xshaydi. Yuqoridagi rasmlarda ko'rsatilgandek takrorlanadigan signalni ko'rmaguningizcha kattalashtiring.
  • Har bir xabar uchun umumiy mantiqiy 1 va mantiqiy 0 ni hisoblang, bu erda xabar - bu takrorlanadigan signalning takrorlanishi. Agar jami 25 bo'lsa, RxTx.py fayli aybdor emas. Agar siz 25-dan boshqa narsaga duch kelsangiz, quyida izoh berishni unutmang va men RxTx.py faylini yanada ochiqroq qilib qaytaraman (yoki o'zingizni sinab ko'ring).

Agar takrorlanadigan signalni ko'rmasam nima bo'ladi?

Agar siz takrorlanadigan signalni ko'rmasangiz, ikkita narsadan biri noto'g'ri. Birinchidan, barcha o'tish kabellari to'g'ri ulanganligini tekshiring. Agar hamma narsa yaxshi ko'rinadigan bo'lsa, sizda yomon qabul qilgich bo'lishi mumkin. Men taklif qilgan narsani sotib oldingizmi? Men birinchi qabul qilgich chipini sotib olganimda, u juda shovqinli edi. Shovqinli, men aniq signal ololmadim. Keyin men o'sha chipni qaytarib, o'zim bog'laganini oldim va u yaxshiroq ishlamasdi.

6 -qadam: Xursand bo'ling

Siz bilasizki, telefon, planshet, kompyuter yoki Internetga ulangan boshqa qurilmadan rozetkalarni yoqish/o'chirish imkoniyati bor! Fikrlaringizda o'z fikringizni bildiring!

Tavsiya: