Sensor Keberadaan Kamar Mandi Berbasis Raspberry Pi dengan Pemberitahuan Suara dan SMS melalui Twilio
Ringkasan
Selama waktu kami di Hacker School, kami mengamati bahwa dua toilet fasilitas—satu di samping ruang kerja utama dan satu di tingkat bawah—perlu indikator status keberadaan secara real-time. Dengan mengetahui apakah toilet sedang digunakan sebelum pergi ke lantai bawah, kami dapat mengurangi waktu tunggu yang tidak perlu dan meningkatkan kenyamanan.
Solusi kami memungkinkan pengguna memeriksa status toilet melalui telepon atau SMS. Sensor cahaya sederhana, dipasang pada Raspberry Pi, memantau pencahayaan toilet; jika lampu menyala, sistem mengasumsikan toilet sedang digunakan.
Raspberry Pi mengirim pembaruan berkala ke aplikasi Flask yang dihosting di Heroku, yang juga menerima permintaan Twilio masuk. Saat pengguna menelepon atau mengirim SMS ke nomor Twilio khusus, aplikasi membalas dengan status keberadaan saat ini—baik melalui text-to-speech atau sebagai pesan SMS.
Selain antarmuka suara/SMS, @gelstudios mengembangkan dashboard web yang intuitif untuk menampilkan status sensor secara real-time.
Server
Twilio
Twilio adalah platform komunikasi cloud yang menyederhanakan pengiriman dan penerimaan panggilan telepon serta SMS melalui RESTful API. Kami menggunakan pustaka bantu Python Twilio dan tutorial Quickstart untuk menghubungkan nomor telepon kami ke endpoint Flask.
Heroku
Heroku menyediakan platform terkelola untuk menyebarkan aplikasi full-stack. Menggunakan panduan Pusat Pengembang Heroku, kami menyiapkan aplikasi Python/Flask dan menyajikannya melalui HTTPS untuk komunikasi aman dengan Twilio.
Kode Server
Kode lengkap aplikasi web tersedia di GitHub: twilio-light-sensor-server/run.py.
Rute /twilio/voice dan /twilio/text menerima permintaan masuk dari Twilio. Bergantung pada apakah pengguna menelepon atau mengirim SMS, server merangkaian respons yang mencerminkan status keberadaan toilet saat ini dan mengembalikannya ke Twilio untuk dikirimkan sebagai suara atau teks.
Rute /update menerima payload HTTP POST dari sensor Raspberry Pi. Setiap payload harus mencakup parameter sensor_id dan sensor_val sehingga server dapat mengidentifikasi sumber dan memperbarui status internal sesuai kebutuhan.
Untuk detail lebih lanjut, lihat tulisan asli proyek: Sensor Cahaya dengan Suara dan SMS Menggunakan Raspberry Pi dan Twilio.