- Komponen Diperlukan
- Diagram Sirkuit
- Pengaturan Flask di Raspberry Pi untuk Mengontrol Pintu Garasi
- Membuat Skrip Python untuk Pembuka Pintu Garasi Cerdas
- Membuat halaman HTML untuk Webserver Raspberry Pi
- {{pins.name}} {% if pins.state == true%} saat ini Terbuka
Di era IoT (Internet of Things) ini di mana semuanya dapat dikontrol dari jarak jauh menggunakan ponsel cerdas Anda, mengapa harus membawa kunci bersama Anda. Ada banyak teknologi untuk mendukung pengontrolan perangkat nirkabel seperti RFID, Bluetooth, Wi-Fi, LoRa. Sebelumnya kami membuat beberapa alarm pintu dan sirkuit pengontrol pintu untuk membuka dan menutup pintu secara nirkabel:
- Kunci Pintu Arduino RFID
- Pembuka Pintu Otomatis menggunakan Arduino
- Rangkaian Alarm Pintu Magnetik menggunakan Sensor Hall
- Alarm Keamanan Pintu berbasis IoT dikendalikan oleh Asisten Google
Di sini, di tutorial ini kita akan membangun Pembuka Pintu Garasi Cerdas menggunakan Raspberry Pi. Disini akan dibuat web server Raspberry Pi untuk membuka dan menutup pintu garasi menggunakan smartphone anda.
Komponen Diperlukan
- Papan raspberry pi dengan Raspbian terpasang di dalamnya
- Modul Relai
- Menghubungkan Kabel
Diasumsikan bahwa Raspberry Pi Anda sudah di-flash dengan sistem operasi dan sudah bisa terkoneksi ke internet. Jika tidak, ikuti tutorial Memulai Raspberry Pi sebelum melanjutkan. Di sini kami menggunakan Rasbian Jessie yang diinstal Raspberry Pi 3.
Di sini Monitor Eksternal yang menggunakan kabel HDMI digunakan sebagai tampilan untuk terhubung dengan Raspberry Pi. Jika Anda tidak memiliki monitor, Anda dapat menggunakan klien SSH (Putty) atau server VNC untuk terhubung ke Raspberry pi menggunakan Laptop atau komputer. Pelajari lebih lanjut tentang menyiapkan Raspberry Pi tanpa kepala di sini.
Diagram Sirkuit
Hubungkan mekanisme bukaan pintu garasi ke output relai. Di sini kami baru saja menghubungkan LED dengan relai untuk tujuan demonstrasi.
Pengaturan Flask di Raspberry Pi untuk Mengontrol Pintu Garasi
Di sini, kami telah membuat server web menggunakan Flask, yang menyediakan cara untuk mengirim perintah dari halaman web ke Raspberry Pi untuk mengontrol Robot melalui jaringan. Flask memungkinkan kita menjalankan skrip python kita melalui halaman web dan kita dapat mengirim & menerima data dari Raspberry Pi ke browser web dan sebaliknya. Flask adalah microframework untuk Python. Alat ini berbasis Unicode yang memiliki server pengembangan dan debugger bawaan, dukungan pengujian unit terintegrasi, dukungan untuk cookie yang aman dan mudah digunakan, hal-hal ini membuatnya berguna bagi penghobi.
Jalankan perintah berikut untuk menginstal flask di Raspberry Pi Anda:
sudo apt-get pembaruan sudo apt-get install python-pip python-flask
Sekarang, jalankan perintah pip untuk menginstal Flask dan dependensinya:
sudo pip install flask
Anda dapat mempelajari lebih lanjut tentang pemrograman menggunakan Flask di sini, juga memeriksa proyek kami sebelumnya di mana kami telah menggunakan Flask untuk mengontrol robot melalui server web, mengirim pesan dari Halaman Web ke Raspberry Pi dan mengirim nilai bobot ke Raspberry Pi di Smart Container.
Sekarang, kita akan menulis skrip python untuk server web pintu garasi kita.
Membuat Skrip Python untuk Pembuka Pintu Garasi Cerdas
Skrip ini akan berinteraksi dengan Raspberry Pi GPIO kami dan menyiapkan server web. Jadi, ini adalah skrip inti untuk aplikasi kita. Script Python Lengkap untuk pembuka pintu diberikan di bagian akhir, di sini kami telah menjelaskan beberapa bagiannya.
Pertama, buat folder. Semua folder lain yang diperlukan harus ada di folder ini saja. Jalankan perintah di bawah ini untuk membuat folder dan membuat file python bernama app.py di dalam folder ini.
mkdir garage_door cd garage_door nano app.py
Ini akan membuka editor Nano di mana kita harus menulis skrip.
Mulailah dengan memasukkan perpustakaan penting.
impor RPi.GPIO sebagai GPIO dari flask import Flask, render_template, request app = Flask (__ name__, static_url_path = '/ static')
Sekarang, buat kamus sebagai pin untuk menyimpan nomor pin, nama, dan status pin. Anda dapat menggunakan lebih dari satu pin sesuai dengan kebutuhan Anda.
pin = { 14: {'name': 'Garage Door', 'state': GPIO.LOW} }
Kemudian, atur pin sebagai output dan turunkan awalnya.
Untuk pin di pin: GPIO.setup (pin, GPIO.OUT) GPIO.output (pin, GPIO.LOW)
Sekarang, buat fungsi utama untuk membaca status pin dan menyimpan status ini dalam sebuah variabel.
@ app.route ("/") def main (): untuk pin di pin: pins = GPIO.input (pin) ..
Kita harus meneruskan data ini ke halaman html kita sehingga kita dapat mengontrol status tombol input.
return render_template ('main.html', ** templateData)
Sekarang, buat sebuah fungsi untuk menangani permintaan dari URL dengan nomor pin dan tindakan di dalamnya.
@ app.route ("/
Ubah pin dari URL menjadi integer.
changePin = int (changePin)
Jika bagian tindakan dari URL adalah "terbuka", lakukan hal berikut.
if action == "open": GPIO.output (changePin, GPIO.HIGH) if action == "close": GPIO.output (changePin, GPIO.LOW)
Anda dapat menyalin skrip lengkap dari akhir tutorial ini dan menyimpannya menggunakan ctrl + x lalu tekan enter. Kami telah selesai dengan skrip python. Sekarang, kita harus membuat halaman HTML untuk berinteraksi dengan script python.
Membuat halaman HTML untuk Webserver Raspberry Pi
Di folder garage_door yang sama, buat folder lain bernama templates dan di dalam folder ini buat file.html menggunakan perintah di bawah ini.
template mkdir cd template nano main.html
Di editor teks nano , tulis kode html. Anda dapat mengedit file bagian dari halaman dan gaya sesuai pilihan Anda. Saya baru saja menggunakan skema css pihak ketiga menggunakan tag tautan. Kode HTML lengkap diberikan di bawah ini:
Server Web Pintu Garasi
{% untuk pin di pin%}{{pins.name}} {% if pins.state == true%} saat ini Terbuka
Di sini bagian yang penting adalah membuat tombol untuk membuka dan menutup pintu dan menetapkan status untuk tombol buka dan tutup . Tombol tersebut akan mengirim dan mengambil status GPIO dari skrip python.
Anda dapat menggunakan kode HTML yang diberikan di atas di editor dan menyimpannya. Sekarang server web siap diluncurkan.
Buka terminal dan arahkan ke folder garage_door dan jalankan perintah di bawah ini
sudo python app.py
Buka browser dan masukkan alamat IP raspberry pi Anda dan tekan enter. Untuk menemukan alamat IP Anda, Anda dapat menjalankan perintah di bawah ini di terminal.
nama host -Aku
Anda akan melihat halaman seperti ini.
Pastikan modul relai terhubung ke raspberry pi. Tekan tombol Open untuk menyalakan Relay atau untuk membuka Pintu Garasi. Anda juga dapat melihat status relai. Segera setelah Anda menyalakan Relai, teks tombol akan diubah Tutup untuk mematikan relai. Sekarang ketika Anda mengklik tombol lagi, relai akan dimatikan dan teks tombol akan diubah menjadi Buka lagi.
Untuk menghentikan server tekan ctrl + c.
Jadi hubungkan saja relai ini ke beberapa mekanisme Pembuka Pintu, yang sudah tersedia di pasaran, dan mulailah mengontrol pintu garasi menggunakan Smartphone.
Sebuah demonstrasi Video diberikan di bawah ini.