Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Selasa, 23 Desember 2025

MicroPython: Mengirim Pesan WhatsApp dengan ESP32/ESP8266

Pelajari cara memprogram papan ESP32 dan ESP8266 menggunakan MicroPython untuk mengirim pesan langsung ke akun WhatsApp Anda. Fitur ini sangat berguna untuk menerima notifikasi otomatis dari perangkat, seperti data pembacaan sensor, pesan peringatan ketika nilai sensor melewati batas ambang tertentu (threshold), deteksi gerakan, serta berbagai aplikasi IoT lainnya. Pada proyek ini, kita akan memanfaatkan API gratis bernama CallMeBot sebagai perantara pengiriman pesan WhatsApp.

Pengenalan WhatsApp

WhatsApp Messenger, atau yang lebih dikenal sebagai WhatsApp, adalah layanan pesan instan dan voice-over-IP (VoIP) lintas platform yang tersedia secara global dan dimiliki oleh Meta Platforms. Aplikasi ini memungkinkan pengguna mengirim dan menerima pesan melalui koneksi internet pada smartphone, sehingga tidak memerlukan layanan SMS konvensional dan dapat menghindari biaya SMS.

 


WhatsApp dapat digunakan secara gratis dan tersedia untuk sistem operasi Android dan iOS. Pastikan aplikasi WhatsApp telah terpasang di smartphone Anda sebelum melanjutkan ke tahap berikutnya.

CallMeBot WhatsApp API

Untuk mengirim pesan WhatsApp dari papan ESP32 dan ESP8266, pada proyek ini kita akan menggunakan layanan API gratis bernama CallMeBot. CallMeBot berfungsi sebagai gateway yang memungkinkan perangkat IoT mengirim pesan WhatsApp ke nomor pengguna yang telah terdaftar.

Informasi lengkap mengenai cara kerja serta format pengiriman pesan melalui API CallMeBot dapat dipelajari melalui situs resminya:

- https://www.callmebot.com/

Mendapatkan API Key CallMeBot Subjudul

Sebelum dapat menggunakan layanan API CallMeBot, Anda perlu memperoleh API Key WhatsApp CallMeBot terlebih dahulu. Ikuti langkah-langkah berikut (panduan resmi juga tersedia di situs CallMeBot):

1. Simpan nomor +34 621 331 709 ke dalam daftar kontak pada smartphone Anda (nama kontak bebas).

   ⚠️ Pastikan untuk selalu memverifikasi nomor terbaru melalui situs resmi CallMeBot, karena nomor ini dapat berubah sewaktu-waktu.

2. Kirim pesan berikut ke kontak yang baru disimpan menggunakan aplikasi WhatsApp:

   “I allow callmebot to send me messages”

3. Tunggu hingga Anda menerima balasan dari bot CallMeBot dengan pesan:

   “API Activated for your phone number. Your APIKEY is XXXXXX”

Pesan tersebut menandakan bahwa API telah berhasil diaktifkan dan API Key yang diberikan akan digunakan untuk proses pengiriman pesan WhatsApp dari ESP32 atau ESP8266.


Catatan: Jika Anda tidak menerima API Key dalam waktu 2 menit, silakan coba kembali setelah 24 jam. Pesan WhatsApp yang dikirim oleh bot CallMeBot akan berisi API Key yang diperlukan untuk mengirim pesan melalui layanan API.

CallMeBot API Subjudul

Untuk mengirim pesan menggunakan CallMeBot API, Anda perlu melakukan permintaan HTTP POST ke URL berikut dengan menyesuaikan parameter sesuai data Anda sendiri:

 

https://api.callmebot.com/whatsapp.php?phone=[phone_number]&text=[message]&apikey=[your_apikey]

 

- [phone_number]: nomor telepon yang terhubung dengan akun WhatsApp Anda, ditulis dalam format internasional (tanpa spasi atau simbol tambahan).

- [message]: pesan yang akan dikirimkan. Nilai ini harus dalam format URL encoded agar dapat diproses dengan benar oleh API.

- [your_apikey]: API Key yang diperoleh pada proses aktivasi CallMeBot di tahap sebelumnya.

Untuk dokumentasi resmi CallMeBot, Anda dapat mengunjungi halaman berikut: https://www.callmebot.com/blog/free-api-whatsapp-messages/

Untuk melakukan permintaan HTTP dari papan ESP32 dan ESP8266 menggunakan MicroPython, Anda dapat memanfaatkan fungsi-fungsi yang tersedia pada library `urequests`.

Mengirim Pesan WhatsApp – Script MicroPython (ESP32/ESP8266)

Salin kode berikut ke dalam file `main.py` pada proyek MicroPython Anda. Script ini kompatibel dan dapat dijalankan pada papan ESP32 maupun ESP8266.

 

Sebelum mengunggah kode ke perangkat, pastikan Anda telah menyesuaikan kredensial jaringan Wi-Fi, nomor telepon dalam format internasional, serta API Key CallMeBot sesuai dengan data Anda.

 

try:

  import urequests as requests

except:

  import requests

  

import network


import esp

esp.osdebug(None)


import gc

gc.collect()


#Your network credentials

ssid = 'REPLACE_WITH_YOUR_SSID'

password = 'REPLACE_WITH_YOUR_SSID'


#Your phone number in international format

phone_number = 'YOUR_PHONE_NUMER_INTERNATIONAL_FORMAT'

#Your callmebot API key

api_key = 'CALLMEBOT_API_KEY'


def connect_wifi(ssid, password):

  #Connect to your network

  station = network.WLAN(network.STA_IF)

  station.active(True)

  station.connect(ssid, password)

  while station.isconnected() == False:

    pass

  print('Connection successful')

  print(station.ifconfig())


def send_message(phone_number, api_key, message):

  #set your host URL

  url = 'https://api.callmebot.com/whatsapp.php?phone='+phone_number+'&text='+message+'&apikey='+api_key


  #make the request

  response = requests.get(url)

  #check if it was successful

  if response.status_code == 200:

    print('Success!')

  else:

    print('Error')

    print(response.text)


# Connect to WiFi

connect_wifi(ssid, password)

# Send message to WhatsApp "Hello"

message = 'Hello%20from%20ESP32%20%28micropython%29' #YOUR MESSAGE HERE (URL ENCODED)https://www.urlencoder.io/ 

send_message(phone_number, api_key, message)

 

Cara Kerja Kode Program

Alur kerja kode pada contoh ini relatif sederhana dan mudah dipahami.

Pada bagian awal, program memuat library yang diperlukan, yaitu `urequests` untuk melakukan permintaan HTTP, serta library `network` untuk mengonfigurasi ESP32/ESP8266 sebagai Wi-Fi station dan menghubungkannya ke jaringan lokal.

 

try:

  import urequests as requests

except:

  import requests

  

import network


import esp

esp.osdebug(None)


import gc

gc.collect()

 

Masukkan kredensial jaringan Wi-Fi Anda ke dalam variabel berikut agar ESP32/ESP8266 dapat terhubung ke jaringan lokal dan memperoleh akses internet.

 

#Your network credentials

ssid = 'REPLACE_WITH_YOUR_SSID'

password = 'REPLACE_WITH_YOUR_SSID'

 

Masukkan nomor telepon Anda dalam format internasional (termasuk tanda “+”) pada baris kode berikut:

 

#Your phone number in international format

phone_number = 'YOUR_PHONE_NUMER_INTERNATIONAL_FORMAT

 

Selanjutnya, masukkan API Key CallMeBot yang telah Anda peroleh pada tahap sebelumnya.

 

#Your callmebot API key

api_key = 'CALLMEBOT_API_KEY'

 

Pada kode program ini, dibuat sebuah fungsi bernama `connect_wifi()` yang menerima SSID dan kata sandi jaringan sebagai parameter. Fungsi ini perlu dipanggil pada bagian selanjutnya agar papan ESP benar-benar terhubung ke internet.

 

def connect_wifi(ssid, password):

  #Connect to your network

  station = network.WLAN(network.STA_IF)

  station.active(True)

  station.connect(ssid, password)

  while station.isconnected() == False:

    pass

  print('Connection successful')

  print(station.ifconfig())

 

Untuk memudahkan penyesuaian kode dengan berbagai proyek, dibuat sebuah fungsi bernama `send_message()` yang berisi seluruh instruksi yang diperlukan untuk mengirim pesan ke WhatsApp. Fungsi ini menerima nomor telepon, API Key CallMeBot, dan isi pesan sebagai parameter.

Anda cukup memanggil fungsi ini dengan parameter yang sesuai setiap kali ingin mengirim pesan.

 

def send_message(phone_number, api_key, message):

  #set your host URL

  url = 'https://api.callmebot.com/whatsapp.php?phone='+phone_number+'&text='+message+'&apikey='+api_key


  #make the request

  response = requests.get(url)

  #check if it was successful

  if response.status_code == 200:

    print('Success!')

  else:

    print('Error')

    print(response.text)

 

Setelah seluruh fungsi yang diperlukan dibuat, panggil fungsi `connect_wifi()` untuk menghubungkan ESP ke jaringan lokal Anda.

 

connect_wifi(ssid, password)

 

Pada contoh ini, dibuat sebuah variabel bernama `message` yang berisi teks pesan yang akan dikirimkan. Nilai pesan harus dalam format URL encoded agar dapat diproses dengan benar oleh API CallMeBot. Anda dapat menggunakan alat URL encoder untuk mengonversi teks biasa ke format tersebut. Pada contoh ini, pesan yang dikirim adalah: “Hello from ESP32 (MicroPython)”. Namun, Anda dapat menyesuaikan isi pesan sesuai kebutuhan proyek, termasuk menambahkan data hasil pembacaan sensor atau informasi penting lainnya.

 

message = 'Hello%20from%20ESP32%20%28micropython%29' #YOUR MESSAGE HERE (URL ENCODED)https://www.urlencoder.io/ 

 

Terakhir, panggil fungsi `send_message()` untuk mengirimkan pesan.

 

send_message(phone_number, api_key, message)

 

Seperti yang dapat dilihat, proses pengiriman pesan WhatsApp menggunakan MicroPython relatif sederhana. Anda dapat memanfaatkan fungsi `send_message()` pada berbagai proyek untuk mengirim pesan melalui papan ESP32 atau ESP8266.

Demonstrasi

Setelah memasukkan kredensial jaringan, nomor telepon, dan API Key, unggah file `main.py` ke papan ESP menggunakan IDE MicroPython pilihan Anda.

Selanjutnya, lakukan reset pada papan untuk menjalankan program. Jika konfigurasi sudah benar, Anda akan melihat pesan berhasil (success message) pada shell/terminal.


Setelah pesan berhasil tersebut muncul, Anda akan menerima pesan WhatsApp dari bot dengan isi sesuai dengan teks yang telah ditentukan di dalam kode program.


Selamat! Anda telah berhasil mengirim pesan ke akun WhatsApp menggunakan papan ESP32 dan ESP8266 yang diprogram dengan MicroPython.

 

 

 

 

 

 

 

 

 

Siap Untuk Membuat Proyek Impianmu Menjadi Kenyataan?

Klik di sini untuk chat langsung via WhatsApp dan dapatkan dukungan langsung dari tim ahli kami! 

 

0 on: "MicroPython: Mengirim Pesan WhatsApp dengan ESP32/ESP8266"