Daftar Isi:

Raspberry Pi RF Soket Listrik yang Dikendalikan Jarak Jauh (colokan Listrik): 6 Langkah
Raspberry Pi RF Soket Listrik yang Dikendalikan Jarak Jauh (colokan Listrik): 6 Langkah

Video: Raspberry Pi RF Soket Listrik yang Dikendalikan Jarak Jauh (colokan Listrik): 6 Langkah

Video: Raspberry Pi RF Soket Listrik yang Dikendalikan Jarak Jauh (colokan Listrik): 6 Langkah
Video: Remote controlled mains socket installation Eveready 2024, Juli
Anonim
Raspberry Pi RF Soket Listrik yang Dikendalikan Jarak Jauh (colokan Listrik)
Raspberry Pi RF Soket Listrik yang Dikendalikan Jarak Jauh (colokan Listrik)
Raspberry Pi RF Soket Listrik yang Dikendalikan Jarak Jauh (colokan Listrik)
Raspberry Pi RF Soket Listrik yang Dikendalikan Jarak Jauh (colokan Listrik)
Raspberry Pi RF Soket Listrik yang Dikendalikan Jarak Jauh (colokan Listrik)
Raspberry Pi RF Soket Listrik yang Dikendalikan Jarak Jauh (colokan Listrik)
Raspberry Pi RF Soket Listrik yang Dikendalikan Jarak Jauh (colokan Listrik)
Raspberry Pi RF Soket Listrik yang Dikendalikan Jarak Jauh (colokan Listrik)

Kontrol soket listrik 433MHz murah (outlet dinding) menggunakan Raspberry Pi. Pi dapat mempelajari keluaran kode kontrol dari pengontrol jarak jauh soket dan menggunakannya di bawah kendali program untuk mengaktifkan salah satu atau semua soket jarak jauh di seluruh rumah.

Desainnya tidak bergantung pada konektivitas internet eksternal (yaitu) 'Internet of Things' dan karena itu (IMHO) jauh lebih aman daripada pengontrol berbasis web. Yang mengatakan, saya memang mencoba integrasi dengan Google Home tetapi dengan cepat kehilangan keinginan untuk hidup ketika perintah terkadang membutuhkan beberapa puluh detik untuk dieksekusi atau tidak pernah dieksekusi sama sekali.

Aplikasi yang jelas di sekitar waktu Natal adalah mengendalikan lampu pohon Natal dan (jika Anda cenderung seperti itu) lampu tampilan luar. Meskipun itu penggunaan yang sederhana, dengan membangun Instructable ini, Anda akan mendapatkan pengontrol soket super fleksibel yang dapat merespons input sensor dan perangkat lain di jaringan rumah Anda, seperti Raspberry Pis yang menjalankan Linux Motion.

Misalnya, saya memiliki satu set lampu dapur yang menyala ketika kamera yang menjalankan 'Gerak' mendeteksi gerakan di dapur dan kemudian mematikannya setelah lima menit tidak ada aktivitas. Ini bekerja dengan sangat baik!

Dengan 'Tasker' dan 'AutoTools SSH' dari Google Play store, Anda dapat mengatur semua jenis kendali jarak jauh berbasis telepon yang mewah.

Proyek ini mengandalkan receiver dan papan pemancar 433MHz murah yang tersedia secara luas di eBay. Ini kompatibel dengan (setidaknya di Inggris) soket listrik jarak jauh 433MHz yang dijual dengan kendali jarak jauh. Proyek saya menyertakan penerima sehingga set perintah kendali jarak jauh baru dapat digabungkan dengan mudah dan cepat. Satu hal yang perlu diperhatikan - soket jarak jauh yang tersedia di Inggris tampaknya hadir dalam dua rasa - soket dengan ID yang diprogram oleh sakelar pada soket dan soket yang bergantung pada pemrograman dari pengontrol jarak jauh. Proyek ini kompatibel dengan keduanya tetapi yang pertama tidak kehilangan identitas mereka dalam pemadaman listrik dan karena itu lebih disukai.

Proyek ini menggunakan kasing router lama - Saya memiliki beberapa di antaranya dan mereka dengan mudah memiliki sebagian besar konektor eksternal yang diperlukan, seperti daya, ethernet, USB, dan antena. Apa yang Anda gunakan akan tergantung pada apa yang Anda miliki sehingga Instructable ini mungkin lebih berguna sebagai panduan umum daripada serangkaian instruksi langkah demi langkah.

Meskipun tidak sepenuhnya diperlukan untuk proyek ini, saya juga telah menambahkan kipas pendingin dan papan pengontrol. Tanpa kipas, Pi bisa menjadi cukup hangat (sekitar 60°C). Detail dapat diberikan di Instructable nanti.

Saya harus menyebutkan bahwa saya bukan programmer. Perangkat lunak ini (kebanyakan) ditulis dengan Python dan hal-hal pintar disalin dari orang-orang yang tahu apa yang mereka lakukan. Saya telah mengakui sumber di mana saya bisa - jika saya melewatkannya, beri tahu saya dan saya akan memperbaiki teksnya.

Instructable mengasumsikan beberapa kemampuan menyolder dan keakraban yang lewat dengan Python, Bash dan berbicara dengan Pi Anda melalui SSH (walaupun saya akan mencoba membuat instruksi selengkap mungkin). Itu juga ditulis dalam bahasa Inggris Inggris, jadi jika Anda membaca di sisi lain kolam, abaikan huruf tambahan dalam kata-kata dan nama aneh untuk sesuatu (seperti 'stopkontak listrik', yang akan Anda ketahui sebagai sesuatu seperti 'outlet dinding').

Setiap komentar, perbaikan & penggunaan yang disarankan, dll. juga sangat diterima!

Langkah 1: Persiapan Kasus

Persiapan Kasus
Persiapan Kasus
Persiapan Kasus
Persiapan Kasus
Persiapan Kasus
Persiapan Kasus

Saya menggunakan router TP-Link TD-W8960N lama untuk proyek ini. Ini adalah ukuran yang bagus dan setelah saya menemukan cara untuk masuk ke dalamnya, cukup mudah untuk dikerjakan.

Saya juga mempertahankan catu daya 12v @ 1A router, yang sedikit kurang bertenaga tetapi dalam praktiknya tidak masalah untuk aplikasi ini.

Membuka kasing adalah dengan melepas dua sekrup di bagian bawah kasing dan kemudian menggunakan alat pencongkel di sekitar tepi kasing untuk memudahkan klip terbuka. Kedua sekrup berada di bawah kaki karet di bagian belakang kasing (lihat panah merah). Klip yang paling sulit untuk dibuka adalah yang ada di depan tetapi saya memiliki keyakinan dan mereka membungkuk ke alat pengungkit saya.

Setelah kasing terbuka, lepaskan kedua mur pada konektor antena dan papan sirkuit dapat diangkat.

Karena Anda akan menggunakan kedua antena nanti, lepaskan kabel coax di papan sirkuit dan letakkan di satu sisi.

Jika Anda merasa berani (seperti saya), Anda dapat melepas sakelar tekan, soket dc, dan soket RJ45 dari papan sirkuit. Cara terbaik yang saya temukan untuk melakukan ini adalah dengan menjepit papan di wakil dan menerapkan panas dari senapan panas sambil memberi hadiah dengan alat pembuka atau obeng tipis yang sesuai. Logikanya adalah bahwa semua sambungan solder dilelehkan pada saat yang sama, mengurangi tekanan panas keseluruhan pada wadah plastik komponen dibandingkan dengan menggunakan besi solder pada setiap sambungan. Setidaknya begitulah teorinya. Dalam praktiknya, beberapa keberuntungan terlibat! Berapa banyak panas untuk diterapkan adalah masalah penilaian tetapi hati-hati dan berbuat salah di sisi terlalu sedikit. Jika semuanya berjalan dengan baik, Anda akan mendapatkan komponen yang dapat digunakan yang ditunjukkan pada foto (namun Anda akan melihat kenop sakelar yang meleleh dan strip soket RJ45 yang sedikit berubah bentuk!).

Jika tidak, itu pergi ke internet untuk membeli bit Anda.

Langkah 2: Daftar Bagian

Raspberry Pi - Saya menduga rasa apa pun bisa digunakan tetapi saya menggunakan 3B+

Papan pemancar 433MHz - cari eBay untuk '433MHz RF Transmitter with Receiver Kit for Arduino Arm Mcu Wireless' atau yang serupa

Papan penerima 433MHz - juga. Biasanya £ 1,98 per pasang

LM2596 Regulator Buck - eBay, biasanya £ 1,95. Untuk mengubah daya 12v menjadi 5v untuk Pi

Pipa ringan - cari eBay untuk 'Kabel Serat Optik - 0.25 / 0.5 / 0.75 / 1 / 1.5 / 2 / 2.5 /3mm Dia - Light Guide' - Saya menggunakan pipa 2mm tetapi 1.5mm akan lebih mudah untuk digunakan (saya membayar £ 2,95 untuk 1m)

Sakelar sakelar miniatur 2 tiang (bagus untuk dimiliki tetapi opsional)

Soket USB tipe A 180 ° yang dapat disolder - melalui eBay, saya membayar £ 1,90 untuk sepuluh

Sakelar push tiang ganda (bagus untuk dimiliki tetapi opsional) - Saya mendapatkannya dari papan modem/router

Soket RJ45 - dipulihkan dari papan modem/router

Soket daya DC - via eBay (10X DC Power Supply Jack Socket Female Panel Mount Connector 5.5 x 2.1mm £0.99)

Antena 430MHz - mengonversi antena 2GHz modem/router

12v dc 12W power supply (minimum) - idealnya, ini akan datang dengan modem/router. Jika tidak Anda perlu memastikan soket listrik dc di atas cocok dengan yang Anda gunakan. Persyaratan 12v ditentukan oleh pemancar 433MHz

Bagian-bagian untuk mod kipas pendingin akan dirinci dalam Instruksi nanti.

Langkah 3: Bahan Habis Pakai dan Alat

Anda akan membutuhkan bahan habis pakai berikut:

Solder (sesuai kebutuhan)

Lem panas meleleh (sesuai kebutuhan)

Kabel interkoneksi - (misalnya) 22 & 24AWG (sesuai kebutuhan)

Selongsong panas menyusut (sesuai kebutuhan)

Kucing Pengorbanan. 5 kabel patch ethernet

Kabel patch USB 2 korban.

Peralatan:

penari telanjang kawat

Pemotong kawat (lebih disukai pemotong siram)

Alat penghargaan

Obeng yang cocok untuk membongkar casing.

Besi solder

Lem tembak

Pengering rambut (untuk menekuk pipa ringan dan untuk setiap gangguan tata rambut dadakan)

Penerima komunikasi FM 433MHz (opsional - untuk mengatasi masalah pemancar) - (misalnya) AR1000

Langkah 4: Perakitan

perakitan
perakitan
perakitan
perakitan
perakitan
perakitan
perakitan
perakitan

Bagaimana Anda merakit Pi dan papan tambahan tergantung pada kasing yang Anda gunakan. Foto-foto menunjukkan apa yang saya lakukan.

Pi duduk kira-kira di tengah kasing, memungkinkan cukup ruang untuk berbagai konektor yang akan digunakan (perhatikan bahwa HDMI tidak digunakan karena Pi dikomunikasikan melalui SSH (yaitu) 'tanpa kepala'.

Saya memasang Pi ke pangkalan menggunakan beberapa pengencang plastik yang diselamatkan (lihat foto). Karena kotak ini tidak dimaksudkan untuk penggunaan portabel, Anda dapat menggunakan hanya dua pengencang. Anda dapat dengan mudah menggunakan sekrup 2.5mm dengan stand-off atau bahkan lem panas meleleh (yang telah saya gunakan di masa lalu - pastikan untuk tidak menggunakan terlalu banyak dan hindari komponen pemasangan permukaan di bagian bawah karena Anda pasti akan memilikinya. untuk melepas papan pada suatu waktu (hukum konstruksi pertama - Anda HARUS membongkarnya)).

Saya menggunakan lem panas untuk memperbaiki berbagai papan ke sisi kasing. Pertimbangan yang sama seperti di atas berlaku.

Setelah semuanya siap, Anda dapat menghubungkan semuanya.

Diagram blok menunjukkan skema pengkabelan yang saya gunakan. Perhatikan bahwa saya menggunakan sakelar sakelar opsional untuk mengganti daya antara papan pemancar dan penerima - mungkin ada sedikit risiko melakukannya tetapi saya tidak ingin menggoreng penerima saat mengirim.

Juga terpikir oleh saya bahwa sakelar tekan dapat digunakan untuk mematikan Pi dengan anggun (ada sejumlah desain yang tersedia di internet). Saya tidak repot - dalam hal ini berfungsi sebagai sakelar hidup/mati sederhana. Saya hanya harus berhati-hati untuk mematikan Pi melalui SSH sebelum menekan sakelar.

Anda akan melihat pipa cahaya yang digunakan untuk menyalurkan cahaya dari dua LED pada Pi dan dari LED status catu daya ke bagian depan casing. Saya menggunakan panas dari pengering rambut untuk menekuk pipa (Anda pasti TIDAK ingin menggunakan senapan panas!). Ini sangat trial and error tetapi pada akhirnya bermanfaat karena Anda dapat melihat langsung apa yang disinyalkan oleh LED daripada mengandalkan perangkat lunak dan LED eksternal. Itu pilihanmu tentu saja. Pemotongan pipa dilakukan dengan sepasang pemotong kawat yang tajam (pemotong yang rata adalah yang terbaik) tetapi Anda juga dapat menggunakan gunting yang tajam. Sekali lagi, lem panas meleleh dapat digunakan untuk memperbaiki pipa pada tempatnya, tetapi berhati-hatilah untuk hanya menggunakan sedikit - yang cepat dingin - karena lem dapat merusak pipa.

Idealnya Anda harus memodifikasi antena. Mereka biasanya berukuran untuk beroperasi pada 2GHz dan akan membuat antena yang sangat tidak efisien bila digunakan pada 433MHz.

Untuk melakukan ini, pertama-tama Anda harus melepas penutup antena untuk mengekspos kabel antena. Saya pikir saya beruntung karena penutup setiap antena terlepas hanya dengan sedikit kejutan.

Potong di tempat yang ditunjukkan untuk melepas antena 2GHz asli dan mengekspos co-ax. Akses inti bagian dalam dengan hati-hati, lepaskan jalinan dengan baik dan solder ke sepotong kawat baru seperti yang ditunjukkan. Panjang kabel baru kira-kira 1/4 panjang gelombang 433MHz (yaitu) panjang = 0,25 * 3E8/433E6 = 17cm. Bagian bawah dapat digulung menggunakan mata bor kecil atau serupa untuk memungkinkan seluruh panjangnya masuk ke dalam penutup antena.

Sebelum memasang kembali, periksa tidak ada hubungan pendek antara kontak antena bagian dalam dan luar.

Saya hanya memodifikasi antena pemancar sebagai penerima 'tuli' mungkin menguntungkan ketika mempelajari kode kendali jarak jauh RF (lihat nanti).

Koneksi ethernet dibuat dengan memasang kabel Cat korban. 5 kabel interkoneksi ke soket RJ45 yang diselamatkan dari modem. Potong kabel agar sesuai dengan jarak antara soket ethernet Pi dan soket casing RJ45 dan buka semua delapan kabel. Gunakan penguji kontinuitas untuk memastikan Anda menyambungkan pin kabel 1 ke pin soket 1 dll. Cara sederhana untuk melakukannya adalah dengan mencolokkan konektor ke soket yang Anda sambungkan dan membunyikan di antara kontak soket dan ujung kabel telanjang. Karena hanya satu dari empat soket RJ45 eksternal yang digunakan, tandai soket berkabel sesuai dengan itu untuk menghindari kesalahan yang memalukan di kemudian hari.

Demikian juga, konektor USB disambungkan menggunakan kabel patch USB 2 korban, kabel pin 1 ke pin 1 dll. Konektor USB dunia luar direkatkan ke tempatnya pada casing, menggunakan lubang casing yang ditinggalkan oleh soket saluran telepon.

Langkah 5: Catatan Pemancar

Catatan Pemancar
Catatan Pemancar
Catatan Pemancar
Catatan Pemancar
Catatan Pemancar
Catatan Pemancar

Papan pengirim dan penerima 433MHz yang saya gunakan ada di mana-mana di internet dan karena harganya sangat murah, saya memesan masing-masing dua pasang (untuk memungkinkan cock-up eksperimental). Saya menemukan bahwa penerima dapat diandalkan tetapi pemancar yang saya gunakan perlu dimodifikasi untuk membuatnya bekerja dengan andal.

Rangkaian pemancar FS1000A yang saya beli* ditunjukkan pada diagram. Saya menemukan dengan coba-coba bahwa kapasitor 3pF perlu dipasang di posisi C1 SoT (pilih saat diuji) agar benda itu berfungsi. Karena saya memiliki penerima pita lebar yang mencakup 430MHz, maka relatif mudah untuk memecahkan masalah ini. Bagaimana Anda dapat menguji tanpa receiver adalah pertanyaan yang menarik….

*Catatan: Saya membeli banyak pemancar kedua setelah saya tidak dapat membuat dua pemancar pertama berfungsi. Ini semua hilang koil kolektor. Hmmm!

Saya memiliki kapasitor 3pF di kotak sampah saya, tetapi ini tidak akan terjadi pada kebanyakan orang, saya kira dan dalam hal apa pun, nilai yang dibutuhkan mungkin lebih, katakanlah 7pF. Penggantian kasar dapat dilakukan dengan dua bit kawat bengkok (kabel pasangan terpilin dari kenalan saya memiliki kapasitansi sekitar 100pF per kaki untuk memberi Anda panduan panjangnya) tetapi tidak disarankan karena masalah lain dapat muncul. Mudah-mudahan Anda akan beruntung dan Anda tidak akan memiliki masalah seperti itu. Anda selalu dapat membeli pemancar yang lebih mahal (dan karena itu mungkin) lebih baik.

Perhatikan juga frekuensi pemancar tidak terlalu tepat atau stabil tetapi dalam praktiknya sudah cukup baik untuk mengoperasikan soket jarak jauh dengan andal.

Harap perhatikan juga bahwa lubang berlapis yang berdekatan dengan kata 'SEMUT' pada pemancar BUKAN sambungan antena - melainkan lubang di sudut tanpa tanda (lihat foto). Ini adalah kesalahan pertama yang saya buat….

Sambungan pin yang ditandai dengan 'ATAD' seharusnya benar-benar membaca 'DATA' tentu saja.

Langkah 6: Ikhtisar Perangkat Lunak

Ikhtisar Perangkat Lunak
Ikhtisar Perangkat Lunak

Harap diingat saya bukan programmer. Seperti yang dinyatakan sebelumnya, hal-hal pintar adalah kode orang lain, tetapi saya cukup tahu untuk mencubitnya dan menyesuaikannya untuk membuatnya bekerja bersama. Ini juga merupakan Instructable pertama yang saya publikasikan dengan kode, jadi mohon maaf jika saya salah melakukannya! Jika Anda memiliki pertanyaan, harap diingat…

Software dasar yang saya gunakan adalah sebagai berikut:

  • Raspbian Stretch Lite
  • PiGPIO (perpustakaan yang fantastis untuk mengemudikan servos, dll.)
  • _433.py code (untuk menyandikan dan mendekode kode kontrol RF) - ditautkan dari situs web PiGPIO.
  • Python3 (dilengkapi dengan Raspbian)

Software tambahan yang saya gunakan:

  • pyephem (menghitung waktu fajar dan senja - berguna untuk pergantian cahaya)
  • 'Tasker' dan 'AutoTools SSH' yang luar biasa untuk membuat remote control di ponsel Android saya - lihat foto (keduanya tersedia di Google Play store). [Cara membuat 'adegan' Tasker berada di luar cakupan Instruksi ini karena ada kurva belajar yang cukup curam yang terlibat, tetapi saya senang mendiskusikan apa yang saya lakukan]

Kode saya sendiri (dengan Python). Kasar tapi fungsional:

  • tx.py - perangkat lunak argumen menu dan/atau baris perintah yang mengirimkan kode yang sesuai ke pemancar 433MHz.
  • fajar-senja - menghitung waktu fajar & senja di lokasi saya dan memperbarui crontab pengguna (digunakan untuk lampu pohon Natal, dll.)

Kode pribadi di atas dapat diakses melalui GitHub:

Fungsionalitas proyek disediakan oleh kode PiGPIO dan _433.py. Yang terakhir ini memiliki fungsi terima yang mendengarkan perintah kendali jarak jauh dari kendali jarak jauh RF 433MHz Anda dan mendekode pulsa waktu, menghasilkan output yang dapat disimpan untuk digunakan nanti oleh fungsi transmisi. Ini memungkinkan sistem untuk mempelajari kendali jarak jauh RF 433MHz 'normal'. Pada prinsipnya juga dapat digunakan untuk mempelajari remote control RF tetangga Anda juga. Saya sangat menyarankan hal ini karena tetangga jarang melihat sisi lucu dari bel pintu yang membunyikan secara acak. saya tidak akan.

Mempersiapkan

Karena Pi dalam aplikasi ini dijalankan 'tanpa kepala' (yaitu) tanpa monitor atau keyboard, Anda perlu berbicara dengannya melalui ssh. Ada banyak panduan yang tersedia yang mencakup cara mengatur Pi tanpa kepala tetapi untuk menjaga semuanya tetap sederhana, saya akan menganggap Anda pertama kali memulai Pi dengan monitor & keyboard. Setelah boot, mulai terminal dan masukkan 'sudo raspi-config'. Pilih '5. Opsi antarmuka' dan kemudian 'P2 SSH'. Aktifkan server ssh dan tutup raspi-config (yang mungkin akan berakhir dengan reboot).

Komunikasi berikutnya dengan Pi kemudian dapat dilakukan dari terminal jarak jauh melalui ssh. Perhatikan bahwa kode tersebut tidak memerlukan alamat IP LAN tetap untuk Pi tetapi tentu saja membantu (dan tentu saja diperlukan jika Anda mempelajari kontrol Tasker). Sekali lagi, ada banyak tutorial online yang membahas bagaimana melakukan ini. Router rumah saya memungkinkan saya untuk menetapkan alamat IP tetap ke alamat MAC Pi, jadi saya melakukannya dengan cara itu, bukan dengan mengedit pengaturan Pi.

Menginstal PiGPIO:

ssh ke Pi dan masukkan perintah berikut:

sudo apt update

sudo apt install pigpio python-pigpio python3-pigpio

sudo apt install git

git clone

sudo apt install python3-RPi. GPIO

Untuk menjalankan PiGPIO saat boot:

crontab -e

tambahkan baris berikut:

@reboot /usr/local/bin/pigpiod

Dapatkan kode Python untuk mentransmisikan dan mendekode kode jarak jauh RF 433MHz:

wget

buka zip _433_py.zip

Pindahkan _433.py yang tidak di-zip ke direktori yang sesuai (mis.) ~/software/apps

Mengetik (di direktori itu)

_433.py

menempatkan Pi ke mode 433 rx, menunggu demodulasi kode remote control RF pada pin GPIO 38.

Dengan penerima 433MHz terhubung, ketika remote control 433MHz digunakan di dekat Anda, sesuatu seperti data berikut akan terlihat di layar:

kode=5330005 bit=24 (celah=12780 t0=422 t1=1236)

Data ini digunakan dalam program Python Anda untuk membuat ulang transmisi dari remote control.

Untuk menyalurkan data ini ke file untuk digunakan nanti, jalankan:

_433.py > ~/software/apps/remotedata.txt

Setelah Anda mendapatkan datanya, langkah selanjutnya adalah menggunakannya untuk mengedit kode 'tx.py' yang dapat Anda salin dari repositori GitHub saya. Kode ini menggunakan data untuk menghasilkan bentuk gelombang yang dipahami oleh soket jarak jauh untuk ditransmisikan oleh pemancar 433MHz. Semoga pengeditan yang diperlukan akan cukup jelas dan sisanya terserah Anda…..

Direkomendasikan: