Iklan
Sakelar senja-til-fajar dan sakelar timer adalah cara praktis untuk mengotomatiskan lampu Anda. Bukankah lebih bagus jika Anda bisa menggabungkan keduanya, atau bahkan menghubungkan mereka ke internet untuk sistem pencahayaan yang benar-benar pintar?
Anda hanya perlu Raspberry Pi, relay, sensor cahaya, dan sedikit kode untuk mencapai nirwana pencahayaan otomatis ini di tali sepatu.
Apa Yang Anda Butuhkan?
Komponen untuk sakelar cerdas penginderaan cahaya Anda mudah didapat. Kamu akan membutuhkan:
- Setiap model Raspberry Pi menjalankan Raspbian.
- SEBUAH papan relay, mudah ditemukan di Amazon.
- Sebuah Sensor luminositas TSL2561 Adafruit.
- Kabel pelompat.
- Beberapa lampu untuk diotomatisasi!
Cara Kerja Smart-Sensing Smart Switch
Dengan menggunakan relay dengan cara yang sama seperti kami proyek pembuka pintu garasi otomatis Cara Mengotomatiskan Pintu Garasi Anda Dengan IFTTT dan Raspberry PiDalam tutorial ini, kami akan menunjukkan cara mengotomatisasi pintu garasi Anda menggunakan tidak lebih dari Raspberry Pi dan IFTTT. Baca lebih banyak
, Anda dapat memprogram Raspberry Pi untuk menghidupkan dan mematikan sirkuit pencahayaan pada waktu yang tetap. Menambahkan sensor luminositas ke dalam campuran berarti Pi dapat mendeteksi tingkat cahaya sekitar, dan memilih untuk menyalakan lampu hanya ketika benar-benar dibutuhkan.Karena Pi adalah komputer kecil yang dapat dihubungkan ke jaringan, Anda juga dapat mengaturnya agar dapat dikendalikan melalui internet. Lampu cerdas Anda akan memiliki tiga input untuk menentukan kapan mereka menyala:
- Jadwal yang diprogram.
- Tingkat cahaya sekitar.
- Sinyal override yang dikirim melalui jaringan.
Langkah 1: Hubungkan Raspberry Pi ke Relay
Jika Anda baru menggunakan GPIO, mulailah dengan membaca Semua yang Perlu Anda Ketahui Tentang Raspberry Pi GPIO Pins.
Pertama, periksa untuk melihat apakah papan relay Anda memiliki jumper yang menghubungkan pin VCC dan JD-VCC. Jika sudah, hapus.

Dengan segala daya dimatikan, sambungkan papan relay ke Pi Anda sebagai berikut:
- Pi Pin 2 (5v) ke JD-VCC pada papan relay.
- Pi Pin 6 (GND) ke GND pada papan relay.
- Pi Pin 15 (GPIO 22) hingga IN1 pada papan relay
- Pi Pin 17 (3.3v) ke VCC pada papan relay.

Langkah 2: Hubungkan Sensor Luminosity
TSL2561 adalah sensor cahaya yang dapat mendeteksi inframerah, spektrum penuh, dan cahaya yang terlihat oleh manusia. Ini dapat mengirim pembacaan digital yang sangat tepat ke Raspberry Pi. Sensor melaporkan tingkat cahaya pada skala 0,1 (tidak ada cahaya) hingga 40.000 (matahari cerah).
Dewan TSL2561 berbicara kepada Raspberry Pi menggunakan protokol i2c. I2C hanya membutuhkan dua koneksi, satu untuk satu jam agar kedua perangkat tetap sinkron, dan satu untuk data yang ditransfer. Tentu saja, sensor lux juga membutuhkan daya, jadi ada empat koneksi untuk membuat semuanya:
- Hubungkan Pi Pin 1 (3.3v) ke Vin (atau VCC) pada sensor lux
- Hubungkan Pi Pin 3 (SDA) ke SDA pada sensor lux
- Hubungkan Pi Pin 5 (SCL) ke SCL pada sensor lux
- Hubungkan Pi Pin 9 (GND) ke GND pada sensor lux

Langkah 3: Konfigurasikan dan Instal Ketergantungan
Sebelum melangkah lebih jauh, Anda harus memeriksa apakah I2C diaktifkan di Raspberry Pi Anda (ini dinonaktifkan secara default). Ketikkan yang berikut ke terminal:
sudo raspi-config
Pilih Opsi Antarmuka> P5 I2C, lalu pilih Iya.

Memukul Memasukkan lalu pilih Selesai untuk keluar dari layar konfigurasi. Nyalakan ulang Pi Anda agar perubahan diterapkan:
sudo reboot
Beberapa dependensi diperlukan agar Pi dapat berkomunikasi dengan papan sensor. Ketikkan perintah berikut:
sudo apt-get pembaruan. sudo apt-get install -y python-smbus. sudo apt-get install -y i2c-tools
Anda dapat memeriksa semuanya berfungsi dengan mengetik:
sudo i2cdetect -y 1
Jika dependensi Anda dipasang dan sensor lux Anda terhubung dengan benar, Anda akan melihat respons seperti ini:

Di sini utilitas melaporkan bahwa ia telah menemukan perangkat I2C (sensor lux) di alamat I2C 39.
Anda belum selesai dengan dependensi. Anda akan membutuhkan beberapa perpustakaan juga. Pertama, buat folder untuk menyimpan semua yang terkait dengan proyek ini di:
mkdir ~ / pencahayaan. cd ~ / pencahayaan
Selanjutnya, unduh botol, kerangka kerja ringan yang akan membuat server web sederhana pada Pi Anda. Anda akan menggunakannya untuk mengontrol lampu Anda dari web.
wget https://bottlepy.org/bottle.py
Perpustakaan lain yang Anda perlukan ada di Github, jadi jika Raspberry Pi Anda belum menginstal Git, tambahkan sekarang:
sudo apt-get install git
Sekarang klon dua perpustakaan, seperti ini:
git klon https://github.com/adafruit/Adafruit_Python_GPIO.git. git klon https://github.com/adafruit/Adafruit_Python_PureIO.git
Dan terakhir, buat skrip uji dengan membuat file baru:
nano test.py
Rekatkan dalam kode ini (milik Adafruit):
#! / usr / bin / env python. # - * - coding: utf-8 - * - dari __future__ import absolute_import, division, print_function, unicode_literals. dari tsl2561 import TSL2561. jika __name__ == "__main__": tsl = TSL2561 (debug = True) cetak (tsl.lux ())
tekan Ctrl + X untuk menyimpan, ikuti petunjuk pada layar untuk keluar.
Setelah selesai, jalankan skrip pengujian:
python test.py
Jika semuanya terpasang dan berfungsi, Anda akan mendapatkan nomor kembali. Angka itu adalah pembacaan lux dari sensor. Cobalah memblokir sensor, atau menggerakkannya sehingga mendapat lebih atau kurang cahaya. Kemudian jalankan skrip pengujian lagi dan lihat bagaimana angka berubah.
Langkah 4: Buat Script Otomasi
Raspberry Pi akan menyalakan lampu saat hari gelap, tetapi juga mematikannya pada waktu-waktu tertentu. Misalnya, Anda mungkin ingin lampu menyala ketika gelap di malam hari, lalu padam sekitar tengah malam untuk menghemat listrik. Mereka bisa menyala lagi pagi-pagi sekali, lalu mematikannya ketika sudah terang.
Untuk mengelola jadwal dengan beberapa zona waktu seperti ini, ada dua skrip yang berbeda. Satu (onzone.py) akan berjalan setiap menit saat Anda ingin lampu menyala jika gelap. Yang lain (offzone.py) akan berjalan setiap menit saat Anda ingin lampu mati terlepas dari tingkat cahayanya.

Skrip akan dijadwalkan untuk berjalan menggunakan pekerjaan cron Cara Menjadwalkan Tugas di Linux dengan Cron dan CrontabKemampuan untuk mengotomatisasi tugas adalah salah satu teknologi futuristik yang sudah ada di sini. Setiap pengguna Linux dapat mengambil manfaat dari sistem penjadwalan dan tugas-tugas pengguna, berkat cron, layanan latar belakang yang mudah digunakan. Baca lebih banyak . Dengan memilih jam siang dan malam mana setiap skrip dijalankan, akan mudah untuk mengatur jam kapan lampu Anda bisa menyala secara otomatis. Anda dapat mengatur sebanyak dan beberapa periode yang Anda inginkan.
Selain skrip untuk mengontrol lampu secara otomatis, ada skrip ketiga untuk mengelola situasi override. Ini akan memungkinkan Anda menyalakan lampu dari jarak jauh terlepas dari tingkat cahaya sekitar.
Script 1: Zona ON
Skrip Python ini akan dijalankan setiap menit dalam sehari saat Anda ingin lampu menyala jika gelap. Unduh skrip dengan menyalin dan menempelkan perintah ini ke terminal:
wget https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py
Setiap kali onzone.py dijalankan, itu akan mendapatkan nilai lux dari sensor untuk melihat apakah itu gelap. Jika ya, maka akan memeriksa untuk melihat apakah lampu menyala atau mati. Jika tidak aktif, itu akan mengaktifkannya. Jika tidak gelap, skrip akan melihat apakah lampu menyala. Jika ya, itu akan mematikannya kecuali jika telah diganti.
Script menggunakan variabel yang disebut lowlux untuk memutuskan pada titik mana itu cukup gelap untuk menyalakan lampu. Anda dapat mengubahnya menjadi sesuatu yang cocok untuk instalasi Anda sendiri dengan mengubah nilai pada baris ini di dekat bagian atas onzone.py:
lowlux = 50
Script 2: Zona OFF
Script ini akan dijalankan setiap menit dari hari yang Anda inginkan agar lampu tidak menyala, kecuali jika sudah diganti. Unduh skripnya:
wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py
Script ini tidak peduli seberapa terang atau gelapnya. Tugasnya hanyalah mematikan lampu jika dinyalakan (kecuali jika diganti).
Script 3: Server Override
Skrip ini membuat layanan web sederhana yang dapat menerima perintah untuk melakukan tindakan berikut:
- Nyalakan lampu selama beberapa menit terlepas dari tingkat cahaya sekitar.
- Matikan lampu.
- Cari tahu apakah lampu saat ini hidup atau mati.
- Cari tahu berapa lama lampu akan tetap menyala ketika telah diganti.
Unduh skripnya:
wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py
Sebelum melanjutkan ke langkah berikutnya, jalankan skrip offzone.py seperti ini:
python offzone.py
Ini akan membuat file kontrol yang digunakan skrip untuk melacak semuanya.
Langkah 5: Jadwalkan Script
Raspberry Pi Anda dapat menjalankan skrip otomatisasi dengan cron. Atur jadwal seperti ini:
sudo crontab -e
Rekatkan dua baris ini ke editor teks:
* 7,8,9,17,18,19,20,21,22,23 * * * python /home/pi/lighting/onzone.py> NULL. * 0,1,2,3,4,5,6,10,11,12,13,14,15,16 * * * python /home/pi/lighting/offzone.py> NULL
Catatan: Jika nama pengguna yang Anda masuki dengan Raspberry Pi Anda bukan default pi, ubah jalurnya.
Daftar semua jam di mana Anda ingin lampu menyala ketika gelap di baris pertama. Semua jam di mana Anda ingin lampu mati masuk di baris kedua.
Sekarang atur skrip override untuk dijalankan secara otomatis ketika Pi dijalankan:
sudo nano /etc/rc.local
Rekatkan baris ini di bagian bawah file, lalu simpan dan keluar:
nohup python /home/pi/lighting/lightserver.py &
Terakhir, reboot Raspberry Pi sehingga Anda dapat memeriksa apakah skrip server memuat sebagaimana mestinya
sudo reboot
Langkah 6: Tes Relay
Sebelum menghubungkan lampu Anda, uji bahwa semuanya berfungsi dengan menggunakan fungsi override. Ketikkan yang berikut ini ke browser web di jaringan yang sama dengan Pi Anda, ganti alamat IP dengan alamat Raspberry Pi Anda sendiri:
11.22.33.44:1234/overrideon/3
Jika semuanya baik-baik saja, Anda akan mendengar klik relai dan browser akan merespons bahwa lampu telah dinyalakan selama tiga menit.
Saat relai ditutup, Anda dapat menguji fungsi override lainnya. Ini akan memberi tahu Anda berapa menit lagi lampu akan menyala karena penggantian:
11.22.33.44:1234/getoverrideremaining
Ini akan memberi tahu Anda bahwa lampu menyala:
11.22.33.44:1234/lightstatus
Akhirnya, Anda dapat mematikannya lagi dengan:
11.22.33.44:1234/overrideoff
Relai akan klik saat terbuka.
Langkah 7: Hubungkan Lampu Anda
Matikan dan cabut Raspberry Pi Anda sebelum menghubungkan lampu Anda ke relay. Gunakan konektor yang biasanya terbuka (TIDAK) di papan relai sebagai pengganti sakelar biasa, seperti ini:

Akhirnya, Anda dapat memasang sensor lux Anda di tempat yang akan menangkap tingkat cahaya sekitar. Perhatikan bahwa TSL2561 akan dilaporkan jenuh jika bertemu langsung dengan sinar matahari, jadi sebaiknya simpan di tempat teduh jika memungkinkan.
Lebih Banyak Proyek Raspberry Pi untuk Anda Coba
Mengesampingkan pengaturan pencahayaan cerdas baru Anda dari jarak jauh dengan mengetikkan perintah ke browser web cukup rumit. Cara yang lebih baik adalah menghubungkan sesuatu seperti Amazon Echo untuk mempermudah. Menggabungkan layanan Alexa dan layanan Webhooks di IFTTT adalah cara sederhana untuk menambahkan kontrol suara.
Lihat kami panduan untuk menggunakan IFTTT untuk membantu Anda memulai.

Pilihan lain adalah menggunakan Shortcut Siri. Pintasan tunggal dengan menu dapat menanyakan status lampu dan menggunakan fungsi override untuk menyalakan dan mematikannya.
Jika Anda menikmati proyek ini, pastikan untuk melihatnya proyek Raspberry Pi aneh 10 Proyek Raspberry Pi TeranehAda seorang ilmuwan gila di dalam diri kita masing-masing, dan Raspberry Pi memungkinkan singa batin Anda keluar dan bermain. Terkadang, hal-hal menjadi aneh. Sangat aneh. Baca lebih banyak untuk lebih banyak ide.
Hamish adalah penulis lepas, pencinta teknologi seumur hidup, dan kutu buku yang dikonfirmasi. Dia bekerja di departemen TI sejumlah perusahaan multinasional sebelum akhirnya memecat bosnya dan melakukannya sendiri.