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, 02 Desember 2025

Raspberry Pi Pico W - Kirim Pesan ke WhatsApp (MicroPython)

Dalam panduan ini, Anda akan mempelajari cara mengirim pesan WhatsApp menggunakan Raspberry Pi Pico W melalui API CallMeBot gratis. API ini memungkinkan integrasi notifikasi otomatis dari Pico, termasuk pengiriman peringatan berbasis pembacaan sensor—misalnya ketika nilai sensor melebihi atau berada di bawah ambang batas tertentu, deteksi gerakan, dan berbagai aplikasi otomasi lainnya.

Pengenalan WhatsApp

 

WhatsApp Messenger adalah layanan pesan instan dan VoIP lintas platform milik Meta Platforms, yang memungkinkan pengiriman pesan melalui koneksi internet tanpa biaya SMS. Layanan ini mendukung Android dan iOS. Untuk menggunakan API, pastikan WhatsApp telah diinstal dan dikonfigurasi pada perangkat Anda.

API WhatsApp CallMeBot

Untuk mengirim pesan WhatsApp melalui Raspberry Pi Pico, kita akan memanfaatkan API CallMeBot, layanan gratis yang menyediakan endpoint HTTP untuk mengirim pesan otomatis. CallMeBot berfungsi sebagai gateway antara perangkat Anda dan WhatsApp, memungkinkan pengiriman pesan ke nomor Anda sendiri atau nomor tujuan yang telah terdaftar.

Dokumentasi lengkap tentang penggunaan endpoint API, parameter yang diperlukan, dan format permintaan HTTP tersedia di:

(https://www.callmebot.com/)

Mendapatkan Kunci API CallMeBot

Sebelum menggunakan API CallMeBot untuk WhatsApp, Anda perlu memperoleh API Key yang akan digunakan untuk autentikasi permintaan HTTP. Langkah-langkah teknisnya sebagai berikut:

1. Tambahkan nomor telepon +34 611 01 16 37 ke daftar kontak ponsel Anda (nama kontak bebas).

Catatan: Pastikan memeriksa dokumentasi resmi CallMeBot, karena nomor ini dapat berubah.

2. Kirim pesan berikut melalui WhatsApp ke kontak tersebut: "Saya mengizinkan callmebot mengirimi saya pesan"

3. Tunggu balasan dari CallMeBot yang berisi konfirmasi aktivasi API dan API Key Anda: "API Diaktifkan untuk nomor telepon Anda. APIKEY Anda adalah XXXXXX"

API Key ini nantinya akan digunakan sebagai parameter autentikasi pada endpoint HTTP untuk mengirim pesan dari Raspberry Pi Pico.


Catatan: Jika API Key tidak diterima dalam waktu ±2 menit, sistem CallMeBot membatasi permintaan selanjutnya hingga 24 jam. Pesan WhatsApp dari bot akan berisi API Key yang diperlukan untuk autentikasi permintaan HTTP dari Raspberry Pi Pico. Pastikan juga bahwa pesan dikirim ke nomor telepon resmi yang tertera pada dokumentasi CallMeBot terbaru untuk menghindari kegagalan aktivasi.

API CallMeBot

Untuk mengirim pesan WhatsApp melalui API CallMeBot, Raspberry Pi Pico harus membuat permintaan HTTP GET ke endpoint berikut dengan parameter spesifik:

 

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

 

Keterangan parameter:

- `[phone_number]`: Nomor telepon penerima yang terhubung dengan akun WhatsApp, dalam format internasional (misal: +628123456789).

- `[message]`: Konten pesan yang akan dikirim, harus di-URL encode agar karakter khusus tidak mengganggu sintaks URL.

-`[your_apikey]`: Kunci API unik yang diterima saat proses aktivasi CallMeBot, digunakan untuk autentikasi permintaan.

 

Baca juga: Panduan Lengkap Memulai Wi-Fi di Raspberry Pi Pico W Menggunakan MicroPython

Mengirim Pesan WhatsApp – Implementasi MicroPython

Untuk mengirim pesan ke akun WhatsApp menggunakan Raspberry Pi Pico, papan harus melakukan permintaan HTTP GET ke endpoint CallMeBot yang sudah dikonfigurasi sebelumnya. Kode berikut menunjukkan implementasi dasar untuk mengirim pesan uji coba ke akun WhatsApp Anda melalui API CallMeBot saat dijalankan pada Raspberry Pi Pico.

 

# Rui Santos & Sara Santos - Random Nerd Tutorials

# Complete project details at https://RandomNerdTutorials.com/raspberry-pi-pico-w-whatsapp-micropython/


import network

import requests

from time import sleep


# Wi-Fi credentials

ssid = 'REPLACE_WITH_YOUR_SSID'

password = 'REPLACE_WITH_YOUR_PASSWORD'


# Your phone number in international format (including the + sign)

phone_number = 'YOUR_PHONE_NUMER_INTERNATIONAL_FORMAT'

# Example: phone_number = '+351912345678'


# Your callmebot API key

api_key = 'CALLMEBOT_API_KEY'


# Init Wi-Fi Interface

def init_wifi(ssid, password):

    wlan = network.WLAN(network.STA_IF)

    wlan.active(True)

    # Connect to your network

    wlan.connect(ssid, password)

    # Wait for Wi-Fi connection

    connection_timeout = 10

    while connection_timeout > 0:

        if wlan.status() >= 3:

            break

        connection_timeout -= 1

        print('Waiting for Wi-Fi connection...')

        sleep(1)

    # Check if connection is successful

    if wlan.status() != 3:

        return False

    else:

        print('Connection successful!')

        network_info = wlan.ifconfig()

        print('IP address:', network_info[0])

        return True


def send_message(phone_number, api_key, message):

    # Set the URL

    url = f'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)

try: 

    # Connect to WiFi

    if init_wifi(ssid, password):

        # Send message to WhatsApp "Hello"

        # ENTER YOUR MESSAGE BELOW (URL ENCODED) https://www.urlencoder.io/

        message = 'Hello%20from%20the%20Raspberry%20Pi%20Pico%21' 

        send_message(phone_number, api_key, message)

except Exception as e:

print('Error:', e)

 

Anda perlu memasukkan kredensial jaringan, nomor telepon, dan kunci API CallMeBot agar berfungsi.

Cara Kerja Kode

1. Impor Modul

Kode diawali dengan mengimpor modul yang diperlukan:

import network       # Modul untuk konfigurasi dan koneksi Wi-Fi

import requests      # Modul untuk melakukan permintaan HTTP

from time import sleep  # Modul untuk penjadwalan jeda eksekusi

2. Konfigurasi Kredensial Wi-Fi

Variabel berikut menyimpan SSID dan kata sandi jaringan lokal untuk memungkinkan Raspberry Pi Pico menginisialisasi koneksi Wi-Fi:

 

ssid = 'REPLACE_WITH_YOUR_SSID'

password = 'REPLACE_WITH_YOUR_PASSWORD'

 

3. Konfigurasi Nomor Telepon dan API Key

- `phone_number`: Nomor telepon penerima dalam format internasional, termasuk kode negara dan tanda `+`.

     Contoh: `'+351912345678'`

- `api_key`: Kunci API yang diterima dari CallMeBot untuk autentikasi permintaan HTTP.

     api_key = 'CALLMEBOT_API_KEY'

4. Inisialisasi Koneksi Wi-Fi

Fungsi `init_wifi()` dibuat untuk menginisialisasi antarmuka jaringan stasiun (`WLAN`) dan menghubungkan Raspberry Pi Pico ke jaringan lokal menggunakan kredensial yang telah ditentukan. Fungsi ini mengembalikan status koneksi (True jika berhasil, False jika gagal).

 

def init_wifi(ssid, password):

    wlan = network.WLAN(network.STA_IF)

    wlan.active(True)

    # Connect to your network

    wlan.connect(ssid, password)

    # Wait for Wi-Fi connection

    connection_timeout = 10

    while connection_timeout > 0:

        if wlan.status() >= 3:

            break

        connection_timeout -= 1

        print('Waiting for Wi-Fi connection...')

        sleep(1)

    # Check if connection is successful

    if wlan.status() != 3:

        return False

    else:

        print('Connection successful!')

        network_info = wlan.ifconfig()

        print('IP address:', network_info[0])

        return True

 

Untuk modularitas dan kemudahan integrasi dalam proyek lanjutan, dibuat fungsi `send_message()` yang mengenkapsulasi seluruh prosedur pengiriman pesan WhatsApp melalui API CallMeBot. Fungsi ini menerima parameter sebagai berikut:

- `phone_number`: nomor telepon penerima dalam format internasional (termasuk tanda `+`)

- `api_key`: kunci autentikasi CallMeBot yang diperoleh sebelumnya

- `message`: string pesan yang akan dikirim

Dengan struktur ini, setiap pengiriman pesan cukup memanggil `send_message(phone_number, api_key, message)` tanpa perlu menulis ulang kode HTTP request, sehingga mendukung reuse dan skalabilitas kode.

 

def send_message(phone_number, api_key, message):

  # Set the URL

  url = f'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 == 400):

    print('Success!')

  else:

    print('Error')

    print(response.text)

 

Setelah mendefinisikan semua fungsi utilitas, jalankan fungsi `init_wifi()` untuk menginisialisasi koneksi Raspberry Pi Pico ke jaringan Wi-Fi lokal Anda dan memastikan konektivitas internet sebelum melakukan permintaan HTTP.

 

if init_wifi(ssid, password):

 

Kami mendefinisikan variabel `message` yang berisi konten teks yang akan dikirim. Konten ini harus di-URL-encode agar aman dikirim melalui permintaan HTTP. Untuk konversi teks ke format URL-encoded, Anda dapat menggunakan utilitas atau pustaka pengkodean URL.

 

message = 'Hello%20from%20the%20Raspberry%20Pi%20Pico%21'

 

Terakhir, panggil fungsi send_message() untuk mengirim pesan.

 

send_message(phone_number, api_key, message)

 

Demonstrasi Teknis

Setelah memasukkan kredensial jaringan Wi-Fi, nomor WhatsApp dalam format internasional, dan kunci API CallMeBot, jalankan skrip pada Raspberry Pi Pico. Jika konfigurasi benar, Pico akan berhasil melakukan koneksi ke jaringan internet dan mengirim permintaan HTTP GET ke endpoint CallMeBot.


Dalam beberapa detik, API akan memproses permintaan, dan akun WhatsApp yang terkait dengan nomor yang ditentukan akan menerima pesan yang dikirim oleh Pico.

 

Baca juga: Panduan Lengkap Mengirim Email via SMTP pada Raspberry Pi Pico W (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: "Raspberry Pi Pico W - Kirim Pesan ke WhatsApp (MicroPython)"