- Komponen Diperlukan
- Rajah Litar
- Penyediaan Flask di Raspberry Pi untuk Mengawal Pintu Garaj
- Membuat Skrip Python untuk Pembuka Pintu Garasi Pintar
- Membuat halaman HTML untuk Raspberry Pi Webserver
- {{pins.name}} {% if pins.state == true%} sedang Dibuka
Di zaman IoT ini (Internet of Things) di mana semuanya dapat dikendalikan dari jauh menggunakan telefon pintar anda, mengapa perlu membawa kunci dengan anda. Terdapat banyak teknologi untuk menyokong pengendalian peranti tanpa wayar seperti RFID, Bluetooth, Wi-Fi, LoRa. Kami sebelum ini membina beberapa penggera pintu dan litar kawalan pintu untuk membuka dan menutup pintu tanpa wayar:
- Kunci Pintu RFID Arduino
- Pembuka Pintu Automatik menggunakan Arduino
- Litar Penggera Pintu Magnetik menggunakan Hall Sensor
- Penggera Keselamatan Pintu berasaskan IoT yang dikendalikan oleh Pembantu Google
Di sini dalam tutorial ini kita akan membina Pembuka Pintu Garasi Pintar menggunakan Raspberry Pi. Di sini pelayan web Raspberry Pi akan dibuat untuk membuka dan menutup pintu garaj menggunakan telefon pintar anda.
Komponen Diperlukan
- Papan pi Raspberry dengan Raspbian dipasang di dalamnya
- Modul Relay
- Wayar Penyambung
Diandaikan bahawa Raspberry Pi anda sudah dilengkapi dengan sistem operasi dan dapat menyambung ke internet. Sekiranya tidak, ikuti tutorial Bermula dengan Raspberry Pi sebelum meneruskan. Di sini kita menggunakan Rasbian Jessie Raspberry Pi 3 yang dipasang.
Di sini Monitor Luar menggunakan kabel HDMI digunakan sebagai paparan untuk berhubung dengan Raspberry Pi. Sekiranya anda tidak mempunyai monitor, anda boleh menggunakan pelayan SSH (Putty) atau pelayan VNC untuk menyambung ke Raspberry pi menggunakan Laptop atau komputer. Ketahui lebih lanjut mengenai penyediaan Raspberry Pi tanpa kepala di sini.
Rajah Litar
Sambungkan mekanisme pembukaan pintu Garage ke output geganti. Di sini kita baru sahaja menyambungkan LED dengan relay untuk tujuan demonstrasi.
Penyediaan Flask di Raspberry Pi untuk Mengawal Pintu Garaj
Di sini, kami telah membuat pelayan web menggunakan Flask, yang menyediakan cara untuk menghantar perintah dari laman web ke Raspberry Pi untuk mengendalikan Robot melalui rangkaian. Flask membolehkan kami menjalankan skrip python kami melalui laman web dan kami dapat menghantar & menerima data dari Raspberry Pi ke penyemak imbas web dan sebaliknya. Flask adalah kerja mikro untuk Python. Alat ini berasaskan Unicode yang mempunyai pelayan pembangunan dan penyahpepijat yang dibangunkan, sokongan pengujian unit bersepadu, sokongan untuk kuki yang selamat dan mudah digunakan, perkara-perkara ini menjadikannya berguna untuk penggemar.
Jalankan arahan berikut untuk memasang termos di Raspberry Pi anda:
sudo apt-get update sudo apt-get install python-pip python-flask
Sekarang, jalankan arahan pip untuk memasang Flask dan kebergantungannya:
sudo pip pasang kelalang
Anda boleh mengetahui lebih lanjut mengenai pengaturcaraan menggunakan Flask di sini, juga periksa projek kami sebelumnya di mana kami telah menggunakan Flask untuk mengawal robot melalui pelayan web, menghantar mesej dari Halaman Web ke Raspberry Pi dan mengirim nilai berat ke Raspberry Pi di Smart Container.
Sekarang, kami akan menulis skrip python untuk pelayan web pintu garaj kami.
Membuat Skrip Python untuk Pembuka Pintu Garasi Pintar
Skrip ini akan berinteraksi dengan GPIO Raspberry Pi kami dan menyediakan pelayan web. Jadi, ini adalah skrip teras untuk aplikasi kami. Skrip Python lengkap untuk pembuka pintu diberikan pada akhir, di sini kami telah menerangkan beberapa bahagiannya.
Pertama, buat folder. Semua folder lain yang diperlukan mesti ada di folder ini sahaja. Jalankan di bawah arahan untuk membuat folder dan buat fail 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.
Mulakan dengan memasukkan perpustakaan penting.
import RPi.GPIO sebagai GPIO dari termos import termos, render_template, request app = Flask (__ name__, static_url_path = '/ static')
Sekarang, buat kamus sebagai pin untuk menyimpan nombor pin, nama, dan keadaan pin. Anda boleh menggunakan lebih dari satu pin mengikut keperluan anda.
pin = { 14: {'name': 'Garage Door', 'state': GPIO.LOW} }
Kemudian, tetapkan pin sebagai output dan buat rendah pada mulanya.
Untuk pin dalam pin: GPIO.setup (pin, GPIO.OUT) GPIO.output (pin, GPIO.LOW)
Sekarang, buat fungsi utama untuk membaca keadaan pin dan menyimpan keadaan ini dalam pemboleh ubah.
@ app.route ("/") def main (): untuk pin dalam pin: pin = GPIO.input (pin) ..
Kita harus menyampaikan data ini ke halaman html kita sehingga kita dapat mengawal keadaan butang input.
return render_template ('main.html', ** templateData)
Sekarang, buat fungsi untuk menangani permintaan dari URL dengan nombor pin dan tindakan di dalamnya.
@ app.route ("/
Tukarkan pin dari URL menjadi bilangan bulat.
changePin = int (perubahanPin)
Sekiranya bahagian tindakan URL "terbuka", lakukan perkara berikut.
jika tindakan == "terbuka": GPIO.output (changePin, GPIO.HIGH) jika tindakan == "tutup": GPIO.output (changePin, GPIO.LOW)
Anda boleh menyalin skrip lengkap dari akhir tutorial ini dan menyimpannya menggunakan ctrl + x dan kemudian tekan enter. Kami telah selesai dengan skrip python. Sekarang, kita harus membuat halaman HTML untuk berinteraksi dengan skrip python.
Membuat halaman HTML untuk Raspberry Pi Webserver
Dalam folder garage_door yang sama, buat folder lain yang bernama templat dan di dalam folder ini buat fail.html menggunakan perintah di bawah.
templat mkdir cd templat nano main.html
Dalam penyunting teks nano , tulis kod html. Anda boleh mengedit bahagian halaman dan gayakan mengikut pilihan anda. Saya baru sahaja menggunakan skema css pihak ketiga menggunakan tag pautan. Kod HTML lengkap diberikan di bawah:
Pelayan Web Garage Door
{% untuk pin dalam pin%}{{pins.name}} {% if pins.state == true%} sedang Dibuka
Di sini bahagian pentingnya ialah membuat butang untuk membuka dan menutup pintu dan menetapkan keadaan untuk membuka dan menutup butang. Butang akan menghantar dan mengambil keadaan GPIO dari skrip python.
Anda boleh menggunakan kod HTML yang diberikan di atas dalam editor dan menyimpannya. Kini pelayan web siap dilancarkan.
Buka terminal dan arahkan ke folder garage_door dan jalankan arahan di bawah
sudo python app.py
Buka penyemak imbas dan masukkan alamat IP raspberry pi anda dan tekan enter. Untuk mencari alamat IP anda, anda boleh menjalankan perintah di bawah di terminal.
nama hos -I
Anda akan melihat halaman seperti ini.
Pastikan modul geganti disambungkan ke raspberry pi. Tekan butang Open untuk menghidupkan Relay atau untuk membuka Garage Door. Anda juga dapat melihat keadaan geganti. Sebaik sahaja anda menghidupkan Relay, teks butang akan diubah Tutup untuk mematikan relay. Sekarang apabila anda mengklik butang sekali lagi, relay akan dimatikan dan teks butang akan diubah menjadi Buka lagi.
Untuk menghentikan pelayan tekan ctrl + c.
Oleh itu, sambungkan geganti ini ke beberapa mekanisme Pembuka Pintu, yang sudah tersedia di pasaran, dan mulailah mengawal pintu garaj menggunakan Telefon Pintar.
A demonstrasi Video diberikan di bawah.