Peringatan Email & SMS Instan untuk Detak Jantung Tidak Normal
Komponen dan perlengkapan
Modul Sensor Pengukur Detak Jantung
×
1
Arduino Mega 2560
×
1
Modul WiFi Bolt IoT Bolt
×
1
Kabel jumper (umum)
×
7
Aplikasi dan layanan online
Bolt IoT Bolt Cloud
DigitalOcean
Layanan VPS untuk menjalankan kode pemantauan detak jantung.
Mailgun
Layanan otomatisasi email
Twilio SMS Messaging API
Tentang proyek ini
Alat pemantauan detak jantung 24x7 seperti gelang kebugaran sudah umum di pasar saat ini dan Anda mungkin memiliki satu atau dua bahkan!. Bagaimana jika Anda bisa membuat perangkat serupa tetapi juga dapat mengirim SMS atau email atau keduanya jika terjadi kekurangannya dalam detak jantung Anda? Tertarik? Proyek ini tentang bagaimana melakukannya dengan cara paling mudah.
Lihat proyek ini dalam aksi:
Langkah 1: Menghubungkan Modul Sensor Detak Jantung ke Arduino
Menggunakan kabel jumper jantan-ke-betina, buat koneksi berikut :
pin 2 Arduino & pin Output Modul Sensor Detak Jantung.
pin 5V Arduino & pin VCC Modul Sensor Detak Jantung.
pin GND Arduino & pin GND Modul Sensor Detak Jantung.
Langkah 2: Pemrograman di Arduino
Instal Arduino IDE dari https://www.arduino.cc/en/Main/Software dan tulis kode berikut:
unsigned long highCounter = 0; int pulse = 0; int val = 0; int lastPulse = LOW; unsigned long oldMillis = 0; void setup() { pinMode(2, INPUT); Serial.begin(9600); } void loop() { pulse = digitalRead(2); if (pulse != lastPulse) { lastPulse = pulse; if (pulse == HIGH) highCounter++; } // print and reset highCounter every seconds if ( millis() - oldMillis >= 10000 ) { oldMillis = millis(); val = highCounter * 6; if (highCounter > 1) Serial.println(val); highCounter = 0; } }
Simpan, Verifikasi dan Unggah kode.
Kode ini akan:
Mengumpulkan data dari modul sensor detak jantung,
Menghitung detak jantung
Mencetak nilai sehingga modul wifi Bolt dapat menerimanya melalui komunikasi serial.
Langkah 3: Menghubungkan Modul WiFi BOLT ke Arduino
Menggunakan kabel jumper jantan-ke-jantan, buat koneksi berikut:
pin 3V3 Modul WiFi BOLT & pin 3.3V Arduino
pin TX Modul WiFi BOLT & pin RX Arduino
pin RX Modul WiFi BOLT & pin TX Arduino
Koneksi ini memberikan daya pada Modul WiFi BOLT dan mendirikan komunikasi serial antara Modul WiFi BOLT dan Arduino.
Titik ini semua koneksi perangkat keras selesai
Langkah 4: Menyiapkan Layanan Otomatisasi Email menggunakan Mailgun
Buat akun di Mailgun
Setelah verifikasi nomor telepon Anda, Pergi ke Domains bagian. Klik tombol Add Recipient.
Klik tombol Invite New Recipient. Masukkan Email ID Penerima.
Setelah menambahkan Email ID, sandbox baru akan dibuat. Klik ID dari sandbox yang baru saja dibuat.
Layar baru akan memiliki semua kredensial yang Anda perlukan untuk mengirim email. Salin semua kredensial ini dan simpan di notepad.
Langkah 5: Menyiapkan Layanan SMS menggunakan Twilio
Pergi ke https://www.twilio.com dan Klik tombol Get a Free API Key untuk mendaftar
Isi semua detail yang diperlukan dalam formulir SIGN UP seperti yang ditunjukkan di bawah:
Masukkan dan Verifikasi nomor telepon Anda.
Klik “Products” seperti yang ditunjukkan di layar di bawah.
Aktifkan layanan SMS dengan mengklik dua kotak centang untuk Programmable SMS dan Phone Numbers seperti yang ditunjukkan di bawah.
Klik “Continue”. Klik “Continue” lagi setelah Anda memasukkan nama proyek.
Klik “Skip this step” saat meminta untuk Undang Teman.
Klik “Project Info” untuk melihat kredensial akun.
Anda dapat melihat Account SID dan Auth token di halaman ini. Simpan info ini dengan aman.
Dari menu drop-down, pilih “Programmable SMS”. Sekarang klik tombol Get Started untuk menghasilkan nomor telepon.
Klik tombol Get a number. Lalu popup akan muncul. Klik tombol Choose this number.
Lalu popup akan muncul yang akan memiliki nomor akhir. Salin nomor ini dan simpan dengan aman.
Langkah 6: Menggunakan VPS DigitalOcean untuk Menjalankan Kode Pemantauan Detak Jantung
Catatan: Anda juga dapat menyimpan komputer linux khusus atau menjalankan linux dalam virtual machine alih-alih menggunakan VPS seperti DigitalOcean.
Pergi ke https://www.digitalocean.com dan Daftar untuk akun.
Buat proyek. Lalu buat droplet yang menjalankan ubuntu dan akses mesin menggunakan PuTTY.
Masuk ke ubuntu dengan kredensial yang dikirimkan ke email Anda.
Jalankan kode berikut :
Untuk memperbarui paket pada Ubuntu
sudo apt-get -y update
Untuk Instal python3 pip3
sudo apt install python3-pip
Untuk menginstal library boltiot menggunakan pip
sudo pip3 install boltiot
Untuk membuat file python bernamaconf.py
sudo nano confi.py
Tulis kode berikut dengan data yang benar:
#Credentials from Twilio SID = 'You can find SID in your Twilio Dashboard' AUTH_TOKEN = 'You can find on your Twilio Dashboard' FROM_NUMBER = 'This is the no. generated by Twilio. You can find this on your Twilio Dashboard' TO_NUMBER = 'This is your number. Make sure you are adding +91 in beginning' #Credentials from Mailgun MAILGUN_API_KEY = 'This is the private API key which you can find on your Mailgun Dashboard' SANDBOX_URL= 'You can find this on your Mailgun Dashboard' SENDER_EMAIL = 'This would be test@your SANDBOX_URL' RECIPIENT_EMAIL = 'Enter your Email ID Here' #Credentials from Bolt API_KEY = 'This is your Bolt Cloud accout API key' DEVICE_ID = 'This is the ID of your Bolt device'
Simpan conf.py
Buat file python bernama heart_rate.py
sudo nano heart_rate.py
Tulis kode berikut dalam heart_rate.py:
import conf, json, time from boltiot import Email, Bolt from boltiot import Sms, Bolt minimum_limit = 57 #the minimum threshold of heart rate maximum_limit = 100 #the maximum threshold of heart rate mybolt = Bolt(conf.API_KEY, conf.DEVICE_ID) mailer = Email(conf.MAILGUN_API_KEY, conf.SANDBOX_URL, conf.SENDER_EMAIL, conf.RECIPIENT_EMAIL) sms = Sms(conf.SSID, conf.AUTH_TOKEN, conf.TO_NUMBER, conf.FROM_NUMBER) while True: response = mybolt.serialRead(2) data = json.loads(response) sensor_value = data['value'] try: sensor_value = data['value'] if sensor_value > maximum_limit or sensor_value < minimum_limit: response = mailer.send_email("Alert", "The Current Heart Rate is " +str(sensor_value)) response = sms.send_sms("Alert! The Current Heart Rate is " +str(sensor_value)) except Exception as e: print () time.sleep(10)
Simpan heart_rate.py
Jalankan Heart_rate.py.
sudo python3 Heart_rate.py
Ketika detak jantung menjadi tidak normal, SMS dan email akan dikirim ke ponsel dan email ID Anda masing-masing.
Kode
Kode Arduino
conf.py
heart_rate.py
Kode ArduinoArduino
Kode untuk menghitung nilai detak.
unsigned long highCounter = 0; int pulse = 0; int val = 0; int lastPulse = LOW; unsigned long oldMillis = 0; void setup() { pinMode(2, INPUT); Serial.begin(9600); } void loop() { pulse = digitalRead(2); if (pulse != lastPulse) { lastPulse = pulse; if (pulse == HIGH) highCounter++; } // print and reset highCounter every seconds if ( millis() - oldMillis >= 10000 ) { oldMillis = millis(); val = highCounter * 6; if (highCounter > 1) Serial.println(val); highCounter = 0; } }
conf.pyPython
Kode yang berisi kunci API dan kredensial lainnya untuk menggunakan Bolt, MailGun dan Twilio
#Credentials from Twilio SID = 'You can find SID in your Twilio Dashboard' AUTH_TOKEN = 'You can find on your Twilio Dashboard' FROM_NUMBER = 'This is the no. generated by Twilio. You can find this on your Twilio Dashboard' TO_NUMBER = 'This is your number. Make sure you are adding +91 in beginning' #Credentials from Mailgun MAILGUN_API_KEY = 'This is the private API key which you can find on your Mailgun Dashboard' SANDBOX_URL= 'You can find this on your Mailgun Dashboard' SENDER_EMAIL = 'This would be test@your SANDBOX_URL' RECIPIENT_EMAIL = 'Enter your Email ID Here' #Credentials from Bolt API_KEY = 'This is your Bolt Cloud accout API key' DEVICE_ID = 'This is the ID of your Bolt device'
heart_rate.pyPython
Kode untuk mengumpulkan nilai detak dan memeriksa anomali
import conf, json, time from boltiot import Email, Bolt from boltiot import Sms, Bolt minimum_limit = 57 #the minimum threshold of heart rate maximum_limit = 100 #the maximum threshold of heart rate mybolt = Bolt(conf.API_KEY, conf.DEVICE_ID) mailer = Email(conf.MAILGUN_API_KEY, conf.SANDBOX_URL, conf.SENDER_EMAIL, conf.RECIPIENT_EMAIL) sms = Sms(conf.SSID, conf.AUTH_TOKEN, conf.TO_NUMBER, conf.FROM_NUMBER) while True: response = mybolt.serialRead(2) data = json.loads(response) sensor_value = data['value'] try: sensor_value = data['value'] if sensor_value > maximum_limit or sensor_value < minimum_limit: response = mailer.send_email("Alert", "The Current Heart Rate is " +str(sensor_value)) response = sms.send_sms("Alert! The Current Heart Rate is " +str(sensor_value)) except Exception as e: print () time.sleep(10)
Skematik
Buat koneksi seperti yang ditunjukkan dalam skematik ini