Raspberry Pi Smart Home Controller Dengan Antarmuka Web Moderen

Referensi bagus untuk yang mau buat proyek smarthome menggunakan Raspberry Pi dengan teknologi berbasis React, Websocket, Python 3, Tornado Web Framework.


on Sab, 04/23/2016 - 19:09
48.978 View

Mengapa melakukan interfacing menggunakan antarmuka web moderen?

Menggunakan teknologi web sebagai antarmuka sistem memberikan kita banyak keuntungan ketimbang menggunakan aplikasi native (desktop/bawaan platform). Keuntungan yang kita dapatkan diantarnya adalah kemudahan dalam penyebaran sistem (deployment) dan pengembangan sistem (development).

Dengan menggunakan teknologi web sebagai antarmuka, kita dapat menjangkau banyak platform (multi-platform), baik platform mobile, desktop bahkan embedded sekalipun. Hal ini dikarenakan teknologi web telah tersemat kedalam banyak platform yang kita jumpai dewasa ini. Hanya diperlukan sebuah web browser moderen, dan sistem kita pun dapat diakses dari perangkat tersebut.

Menggunakan teknologi web juga mempermudah kita dari sisi pengembangan. Kita tidak perlu membuat banyak versi aplikasi hanya untuk mendukung platform tertentu. Cukup implementasi sekali saja disisi server, dan antarmuka yang berbasis web telah dapat diakses di berbagai macam perangkat yang menggunakan platform berbeda.

Contoh nyatanya yang paling sering kita gunakan adalah aplikasi media sosial seperti Facebook dan Twitter. Meskipun kita tidak menginstal aplikasi native pada perangkat kita, kita masih dapat mengakses dan menggunakan sistem mereka dengan menggunakan antarmuka berbasis web hanya dengan menggunakan web browser yang telah terinstall di perangkat kita.

Begitu pula halnya dengan Raspberry Pi. Untuk dapat mengakses perangkat yang terhubung ke Raspi kita, kita dapat membuatkan sebuah antarmuka sistem berbasis web sehingga juga dapat diakses menggunakan banyak perangkat dari mana saja. Pada tulisan kali ini, kita akan membuat proyek mengenai cara membuat antarmuka (interfacing) berbagai macam sensor dan transducer di Raspi menggunakan bahasa pemrograman Python, untuk dikembangkan menjadi smart home controller berbasis Raspberry Pi.

Tingkatan Kesulitan & Tahapan

Tulisan ini diperuntukan bagi para pemula tingkat menengah yang telah memiliki kemampuan dan pengalaman dalam menggunakan dan memprogram Raspberry Pi. Alur dari tulisan ini akan dimulai dengan langkah yang paling pertama yaitu:

  1. Setting lingkungan jaringan & internet di Raspberry Pi
  2. Menginstall dan mempersiapkan lingkungan pemrograman headless-mode di Raspberry Pi
  3. Setup Python 3 untuk menjalankan Tornado Web Framework
  4. Membuat template dan menghubungkan antarmuka web ke server menggunakan WebSocket
  5. Interfacing Sensor & Aktuator menggunakan Python 3
  6. Pengembangan

Keperluan Perangkat Keras

  1. Seperangkat Raspberry Pi 1, 2, 3 yang telah terinstall sistem operasi Debian Jessie.
  2. Koneksi Internet (kabel / wifi)
  3. Sensor Suhu DS18B20 x1
  4. Sensor Ultrasonic SRF-HC04 x1
  5. Lampu LED x1
  6. Relay 5V x2

 

Link turorial?

Untuk pengkabelan ada pada masing-masing tutorial "Artikel Terkait" dibawah, dan untuk setup ada pada tutorial [Setup] Salamigal - Smart Home Controller Modern Web Interface. Semuanya sudah ada di link tutorial terkait di bawah. Silahkan dicoba, apabila mendapat kesulitan bisa diskusi dibawah :D

Profil Penulis

User Picture
  • Member Since 9 tahun 5 bulan ago
Aditya Suranata

Embedded System, Internet of Things, Precision Agriculture, Controlled Environment...

Aditya suka menulis, bukan hanya sekedar hobi, menulis menjadi medianya untuk mencurahkan pikiran dan perasaan. Di TutorKeren.com kebanyakan menyumbang tulisan sesuai dengan minat dan keahliannya yaitu pada kategori pemrograman dan elektronika....

Comments

Gan saya mau nanya jika saya ingin menambahkan relay yang ingin di pakai itu penambahan scripnya dmn aja ya gan mohon bantuannya
Sab, 12/31/2016 - 15:33 Link permanen

Halo Gan,

Silahkan edit script salamigalnet.py, terus tambahkan dua block kode untuk inisialisasi relay, tinggal copy aja kode relay contohnya,

pada baris ke 25 sampai 29:

#Manually create relay 2
relay_2 = Relay(18)
relay_2.name = 'AC Samsung 1PK'
relay_2.location = 'Kamar'
relay_2.load_watt = 500

ganti angka dua dengan 3, hingga 8 jika menggunakan 8 relay. Ingat bagian yang paling penting ketika menambah relay adalah pin GPIOnya pastikan cocok untuk output relay. Pada contoh ini menggunakan GPIO nomer 18. Silahkan sesuaikan sendiri. Kemudian block kodenya yang kedua ada di baris 81 sampai 91, copas juga dibawahnya dan ganti angkanya dengan 3 dan seterusnya hingga 8.

{
                'uid': {'label': 'UID', 'value': relay_2.uid},
                'name': {'label': 'Device Name', 'value':  relay_2.name},
                'location': {'label': 'Location', 'value': relay_2.location},
                'group': {'label': 'Group/Type', 'value':relay_2.group},
                'watt': {'label': 'Load (Watt)', 'value': relay_2.load_watt},
                'ontime': {'label': 'ON time (Hours)', 'value':  round(relay_1.get_ontime(),2)},
                'state': {'label': 'Load State', 'value': relay_2.state},
                'stream': {'label': 'Streaming', 'value': relay_2.streaming},
                'usage': {'label': 'Usage (Wh)', 'value': round(relay_2.get_usage(),2)}
},

Simpan lalu jalankan, antarmukanya akan otomatis menyesuaikan dengan jumlah relay yang ada, karena berkat React, antarmukanya jadi dinamis menyesuaikan dengan konfigurasi server, sehingga tidak perlu rubah kode apapun dibagian antarmuka.

Semoga membantu, jika masih bingung silahkan tanya lagi

Kam, 01/05/2017 - 18:10 Link permanen

maaf saya masih baru belajar tentang raspi, apakah sama antara sistem operasi raspbian dan debian jessie?

 

Sen, 04/22/2019 - 22:41 Link permanen

In reply to by prima

Halo,

Untuk sistem operasi antara Raspbian dan Debian tentu saja sama, karena faktanya Raspbian diturunkan dari Debian. Cuma bedanya adalah Raspbian memiliki beberapa fitur tambahan untuk dapat digunakan pada Raspberry Pi. Misalnya konfigurasi dan booting dari SD Card. Sisanya sama saja, dari segi konfigurasi dan fitur standarnya.

Jadi kalau sudah fasih memakai Debian, maka harusnya juga biasa saja saat menggunakan Raspbian.

Rab, 04/24/2019 - 12:12 Link permanen

kak, mohon maaf, raspberry pi tersebut bisa berjalan baik apabila ada koneksi internet apapun? (misal tethering dari HP, atau menggunakan hotspot HP). Ataukah harus menggunakan koneksi internet dari router sejenis indihome gitu? Pertanyaan saya terkait dengan IP public / IP static kak. mohon pencerahan

Jum, 05/17/2019 - 17:57 Link permanen