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: Memulai Permintaan HTTP GET (MicroPython)

Tutorial ini membahas implementasi permintaan HTTP GET menggunakan Raspberry Pi Pico W. Permintaan HTTP merupakan mekanisme penting untuk komunikasi dengan layanan web, termasuk pengambilan data dari sumber eksternal, integrasi dengan API pihak ketiga, dan interaksi dengan platform IoT secara real-time. Dalam artikel ini, Anda akan mempelajari konsep dasar HTTP GET, beserta contoh implementasi untuk mengekstraksi data dari internet menggunakan Pico W. Dalam konteks proyek IoT, HTTP GET memungkinkan perangkat untuk:

- Mengambil data dari sensor atau sumber eksternal melalui web,

- Mengakses layanan dan API web pihak ketiga untuk memperluas fungsi aplikasi,

- Mengontrol atau memantau Raspberry Pi Pico dari jarak jauh melalui platform eksternal yang terhubung ke internet.

Apa itu Permintaan HTTP?

Salah satu metode utama untuk bertukar data antara perangkat dengan server di internet adalah melalui protokol HTTP (Hypertext Transfer Protocol). HTTP beroperasi berdasarkan arsitektur klien-server, di mana perangkat klien (seperti Raspberry Pi Pico W) menginisiasi komunikasi dengan server melalui HTTP request. Permintaan ini merupakan paket data yang dikirim oleh klien untuk meminta eksekusi aksi tertentu atau mengambil informasi dari server. Server kemudian merespons dengan HTTP response, yang menyampaikan data atau status hasil pemrosesan permintaan tersebut, sehingga memungkinkan pertukaran informasi secara sinkron dan terstruktur antara klien dan server.


- Client: Memulai komunikasi dengan mengirimkan HTTP request ke server.

- Server: Menerima request, memprosesnya sesuai instruksi, dan mengembalikan HTTP response kepada klien.

Raspberry Pi Pico W dapat berfungsi sebagai HTTP client maupun HTTP server. Saat berperan sebagai klien, Pico menginisiasi permintaan ke server eksternal. Sebaliknya, saat berperan sebagai server, Pico dapat menangani permintaan HTTP dari perangkat klien. Dalam tutorial ini, fokus akan diberikan pada Raspberry Pi Pico sebagai HTTP client. Beberapa skenario penggunaan HTTP client pada Pico antara lain:

1. Pengambilan Data dari Internet: Mengakses informasi real-time seperti waktu, kondisi cuaca, harga saham, pembaruan lalu lintas, dan data publik lainnya melalui API web.

2. Pencatatan dan Penyimpanan Data: Mengirimkan data sensor atau log ke platform cloud untuk penyimpanan dan analisis daring.

3. Kontrol dan Monitoring Jarak Jauh: Berinteraksi dengan platform IoT seperti Adafruit IO, Node-RED, dan lainnya, memungkinkan kendali dan pemantauan Raspberry Pi Pico melalui pertukaran data berbasis HTTP.

4. Integrasi dengan Layanan Pihak Ketiga: Mengirim notifikasi, SMS, email, atau memicu aksi pada sistem eksternal menggunakan permintaan HTTP.

Tinjauan Teknis HTTP Request

Struktur HTTP Request

Sebuah HTTP request tersusun atas beberapa komponen utama: request line, header, dan body (jika ada).

Request Line (Baris Permintaan)

Baris permintaan mendefinisikan:

   - Metode HTTP yang akan digunakan (misalnya `GET`, `POST`, `PUT`, `DELETE`),

   - Sumber daya yang dituju, biasanya berupa path atau URL,

   - Versi protokol HTTP yang digunakan.

Contoh request line:

GET /path/to/resource HTTP/1.1

Pada contoh ini:

- `GET` adalah metode HTTP,

- `/path/to/resource` adalah path sumber daya yang diminta,

- `HTTP/1.1` menunjukkan versi protokol yang digunakan.

Header

Header berfungsi sebagai metadata yang menyertai HTTP request, memberikan informasi tambahan tentang permintaan yang dikirim klien. Header dapat mencakup:

- Host: alamat server atau domain tujuan permintaan,

- Content-Type: tipe data yang dikirim atau diharapkan oleh klien,

- User-Agent: identifikasi perangkat atau aplikasi klien yang membuat permintaan,

- Parameter tambahan seperti otentikasi, caching, dan kontrol koneksi.

Contoh header:

 

Host: example.com

User-Agent: RaspberryPiPico

Accept: application/json


Body

Body merupakan komponen opsional dari HTTP request yang memuat payload data yang akan dikirim ke server. Body umumnya digunakan pada metode HTTP yang memodifikasi sumber daya, seperti POST dan PUT, untuk menyertakan data dalam format tertentu (misalnya JSON, XML, atau form-encoded).

 

POST /submit-form HTTP/1.1

Content-Type: application/x-www-form-urlencoded

username=johndoe&password=secretpassword

 

Metode HTTP Request

Metode HTTP yang digunakan dalam sebuah request menentukan aksi yang akan dieksekusi pada server. Beberapa metode utama yang sering digunakan antara lain:

- GET: Mengambil data atau representasi sumber daya dari server tanpa memodifikasi state server.

- POST: Mengirimkan data ke server untuk diproses atau membuat sumber daya baru.

- PUT: Memperbarui atau menimpa sumber daya yang ada di server dengan data yang dikirim.

- DELETE: Menghapus sumber daya tertentu dari server.

Dalam panduan ini, fokus akan diberikan pada implementasi HTTP GET menggunakan Raspberry Pi Pico W untuk pengambilan data dari layanan web.

Kode Status HTTP

Setelah server menerima request, server akan merespons dengan **HTTP status code**, yang menunjukkan hasil pemrosesan permintaan. Kode status dibagi menjadi beberapa kelas:

- 2xx (Success): Permintaan berhasil diproses, contohnya `200 OK`.

- 3xx (Redirection): Memerlukan tindakan tambahan dari klien untuk menyelesaikan permintaan.

- 4xx (Client Error): Permintaan tidak valid atau sumber daya tidak ditemukan, contohnya `404 Not Found`.

- 5xx (Server Error): Terjadi kesalahan di sisi server saat memproses permintaan.

Kode status ini membantu klien untuk menafsirkan hasil permintaan dan menentukan langkah selanjutnya. 

Implementasi HTTP Request pada Raspberry Pi Pico W

Metode paling efisien untuk mengirim permintaan HTTP dari Raspberry Pi Pico W adalah melalui pustaka `urequests`, yang menyediakan API tingkat tinggi untuk melakukan request HTTP. Pendekatan ini menyerupai pustaka `requests` pada Python standar, namun disesuaikan untuk lingkungan MicroPython dengan footprint memori yang lebih kecil.

 

Sebagai alternatif, Anda dapat menggunakan modul `usocket`, yang memungkinkan kontrol lebih rendah atas koneksi TCP/IP, tetapi memerlukan penanganan manual terhadap header dan parsing HTTP, sehingga lebih kompleks bagi pemula. Contoh berikut menunjukkan implementasi HTTP GET sederhana untuk mengakses halaman web (misalnya Google) menggunakan pustaka `urequests` pada Raspberry Pi Pico W:


# Rui Santos & Sara Santos - Random Nerd Tutorials

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

 

import network

import requests


# Wi-Fi credentials

ssid = 'REPLACE_WITH_YOUR_SSID'

password = 'REPLACE_WITH_YOUR_PASSWORD'


# Connect to network

wlan = network.WLAN(network.STA_IF)

wlan.active(True)


# Connect to your network

wlan.connect(ssid, password)


# Make GET request

response = requests.get("http://www.google.com")

# Get response code

response_code = response.status_code

# Get response content

response_content = response.content


# Print results

print('Response code: ', response_code)

print('Response content:', response_content)

 

Cara Kerja Kode

Langkah awal dalam implementasi HTTP request pada Raspberry Pi Pico W adalah mengimpor modul `network` untuk konfigurasi Wi-Fi dan pustaka `urequests` untuk menangani komunikasi HTTP tingkat tinggi.

 

import network 

import requests

 

Ganti ‘REPLACE_WITH_YOUR_SSID‘ dan ‘REPLACE_WITH_YOUR_PASSWORD‘ dengan nama jaringan Wi-Fi (SSID) dan kata sandi Anda.

 

ssid = 'REPLACE_WITH_YOUR_SSID' 

password = 'REPLACE_WITH_YOUR_PASSWORD'

 

Kemudian, inisialisasi antarmuka Wi-Fi, aktifkan, dan sambungkan ke jaringan Anda menggunakan SSID dan kata sandi yang ditetapkan sebelumnya.

 

# Connect to network 

wlan = network.WLAN(network.STA_IF) 

wlan.active(True) 

# Connect to your network 

wlan.connect(ssid, password)

 

Langkah selanjutnya adalah menginisiasi HTTP GET request. Dengan menggunakan pustaka `urequests`, metode `get()` dipanggil untuk mengirim permintaan ke server tujuan (misalnya situs web Google). HTTP response yang diterima dari server disimpan dalam variabel `response` untuk kemudian diproses atau dibaca kontennya.

 

response = requests.get("http://www.google.com")

 

Hasil dari permintaan HTTP disimpan dalam objek `Response`. Objek ini menyediakan atribut dan metode yang memungkinkan akses ke data respons secara terstruktur, antara lain:

- `response.status_code` → mengembalikan integer yang menunjukkan kode status HTTP dari server.

- `response.content` → mengembalikan payload mentah sebagai bytes.

- `response.text` → mengembalikan konten respons dalam format string, didekode menggunakan encoding karakter (misalnya UTF-8).

- `response.json()` → mengembalikan payload respons sebagai objek JSON (dictionary di MicroPython).

- `response.headers` → mengakses metadata header HTTP dari respons server.

Dengan atribut ini, data yang diterima dari server dapat diolah sesuai kebutuhan aplikasi IoT Anda.

Setelah menerima HTTP response, kita dapat mengekstrak kode status respons menggunakan atribut `status_code` dari objek `Response`, yang menunjukkan hasil eksekusi permintaan pada server.

 

response_code = response.status_code

 

Konten HTTP response disimpan dalam variabel `response_content` dengan mengakses atribut `content` dari objek `Response`, yang berisi payload mentah dalam bentuk bytes.

 

response_content = response.content

 

Terakhir, kode status HTTP dan payload respons dikirimkan ke REPL Shell untuk verifikasi, dengan menggunakan perintah `print()` untuk menampilkan nilai `status_code` dan konten respons.

 

print('Response code: ', response_code) 

print('Response content:', response_content)

 

Menguji Kode

Setelah memasukkan SSID dan kata sandi jaringan Wi-Fi, jalankan skrip pada Raspberry Pi Pico W.

Jika koneksi dan permintaan HTTP berhasil, kode status respons yang dikembalikan seharusnya `200 OK`, dan payload respons akan menampilkan konten HTML dari halaman web Google.

 


Mendapatkan Data dari Web Menggunakan HTTP GET Request

Setelah memahami implementasi dasar HTTP GET pada Raspberry Pi Pico W, kita akan mengeksplorasi beberapa studi kasus praktis untuk memperoleh data dari internet. Dua contoh implementasi yang akan dibahas adalah:

1. Perolehan Data Cuaca – Mengambil informasi cuaca terkini dari layanan API publik.

2. Perolehan Harga Bitcoin Real-Time – Mengambil nilai tukar Bitcoin saat ini dari API kripto.

Contoh 1: Implementasi Perolehan Data Cuaca

Dalam studi kasus ini, kita akan menggunakan Weather API untuk mengakses data cuaca secara real-time. API ini menyediakan endpoint publik gratis yang memberikan informasi meteorologi untuk hampir semua lokasi global.

Raspberry Pi Pico W akan mengirim HTTP GET request ke endpoint API untuk memperoleh data cuaca spesifik lokasi yang ditentukan. Payload respons kemudian diparsing dan ditampilkan pada REPL Shell untuk analisis lebih lanjut.

Mendapatkan API Key untuk Weather API

1. Akses situs resmi Weather API: [https://www.weatherapi.com/]

2. Buat akun pengguna dengan melakukan registrasi.

3. Setelah verifikasi akun selesai, lakukan login ke dashboard pengguna.

4. Pada dashboard, navigasikan ke [https://www.weatherapi.com/my/] untuk memperoleh API Key. Kunci ini digunakan untuk otentikasi permintaan HTTP ke endpoint Weather API.

Catatan: Meskipun dashboard menampilkan informasi bahwa masa uji coba akan berakhir, API Key tetap dapat digunakan untuk melakukan panggilan API sesuai batasan yang berlaku.

 


Simpan API Key di lokasi yang aman karena akan digunakan dalam skrip Raspberry Pi Pico W untuk otentikasi permintaan HTTP ke Weather API.

 

Untuk memperoleh data cuaca pada lokasi tertentu, Anda dapat menguji endpoint API menggunakan peramban web dengan format URL berikut, menggantikan parameter `location` dan `API key` sesuai kebutuhan:

 

https://api.weatherapi.com/v1/current.json?

q=YOUR_LOCATION+&key=YOUR_API_KEY'

 

Sebagai contoh implementasi, URL endpoint API untuk lokasi tertentu dapat berupa:

 

https://api.weatherapi.com/v1/current.json?q=Oporto&key=d1578a064b07453c917164350240106

 

Salin URL endpoint ini dan akses melalui peramban web untuk memverifikasi respons JSON. Server Weather API akan mengembalikan payload JSON berisi data cuaca terkini untuk lokasi yang ditentukan.


{

  "location": {

    "name": "Oporto",

    "region": "Porto",

    "country": "Portugal",

    "lat": 41.15,

    "lon": -8.62,

    "tz_id": "Europe/Lisbon",

    "localtime_epoch": 1719843562,

    "localtime": "2024-07-01 15:19"

  },

  "current": {

    "last_updated_epoch": 1719843300,

    "last_updated": "2024-07-01 15:15",

    "temp_c": 22.3,

    "temp_f": 72.1,

    "is_day": 1,

    "condition": {

      "text": "Sunny",

      "icon": "//cdn.weatherapi.com/weather/64x64/day/113.png",

      "code": 1000

    },

    "wind_mph": 10.5,

    "wind_kph": 16.9,

    "wind_degree": 310,

    "wind_dir": "NW",

    "pressure_mb": 1021,

    "pressure_in": 30.15,

    "precip_mm": 0,

    "precip_in": 0,

    "humidity": 69,

    "cloud": 0,

    "feelslike_c": 24.7,

    "feelslike_f": 76.4,

    "windchill_c": 21.9,

    "windchill_f": 71.5,

    "heatindex_c": 24.6,

    "heatindex_f": 76.2,

    "dewpoint_c": 15,

    "dewpoint_f": 58.9,

    "vis_km": 10,

    "vis_miles": 6,

    "uv": 6,

    "gust_mph": 15.4,

    "gust_kph": 24.7

  }

}

 

Kode – Implementasi HTTP GET ke Weather API

Skrip berikut melakukan permintaan HTTP GET ke Weather API untuk memperoleh data cuaca real-time pada lokasi yang ditentukan. Setelah menerima respons JSON, skrip mem-parsing data dan mengekstrak informasi penting seperti kondisi cuaca, suhu, kelembapan, dan curah hujan. Data ini kemudian ditampilkan secara terstruktur di REPL Shell untuk analisis lebih lanjut.

 

# Rui Santos & Sara Santos - Random Nerd Tutorials

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


import network

import time

import requests


# Wi-Fi credentials

ssid = 'REPLACE_WITH_YOUR_SSID'

password = 'REPLACE_WITH_YOUR_PASSWORD'


api_key = 'REPLACE_WITH_YOUR_API_KEY'

location ='Oporto'


# Request URL

url = f'https://api.weatherapi.com/v1/current.json?q={location}+&key={api_key}'


def init_wifi(ssid, password):# Init Wi-Fi Interface

    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...')

        time.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


if init_wifi(ssid, password):

    try:

        # Make the request

        response = requests.get(url)

        #Print the response code

        print('Response code: ', response.status_code)

        

        # Get response content

        weather = response.json()

        # Close the request

        response.close()

        

        # Print bulk weather data

        print('Weather JSON: ', weather)

        

        # Get specific weather data

        weather_description = weather['current']['condition']['text']

        print('Current weather: ', weather_description)

        

        # Temperature and humidity

        temperature_c = weather['current']['temp_c']

        temperature_f = weather['current']['temp_f']

        humidity = weather['current']['humidity']

        print(f'Temperature in Celsius: {temperature_c:.2f}')

        print(f'Temperature in Fahrenheit: {temperature_f:.2f}')

        print(f'Humidity (%): {humidity:.2f}')              

        

        # Precipitation

        precipitation = weather['current']['precip_mm']

        print(f'Precipitation in mm: {precipitation}')              

        

        # Wind

        wind_speed = weather['current']['wind_kph']

        print('Wind speed in kph:', wind_speed)


    except Exception as e:

        # Handle any exceptions during the request

        print('Error during request:', e)

 

Cara Kerja Kode

Agar skrip ini dapat dieksekusi dengan benar, terlebih dahulu konfigurasikan kredensial jaringan Wi-Fi pada Raspberry Pi Pico untuk memastikan papan dapat melakukan koneksi internet sebelum melakukan permintaan HTTP ke Weather API.

 

# Wi-Fi credentials

ssid = 'REPLACE_WITH_YOUR_SSID'

password = 'REPLACE_WITH_YOUR_PASSWORD'

 

Selanjutnya, tentukan API Key Weather API dan parameter `location` sesuai dengan kota atau koordinat geografis yang ingin Anda ambil datanya, untuk digunakan dalam permintaan HTTP GET ke endpoint API.

 

api_key = 'REPLACE_WITH_YOUR_API_KEY'

city = 'REPLACE_WITH_YOUR_CITY'

 

Kami menyimpan URL permintaan pada variabel url. Ini adalah string f dengan placeholder sehingga URL diperbarui dengan detail Anda saat dijalankan.

 

url = f'https://api.weatherapi.com/v1/current.json?q={location}+&key={api_key}'

 

Kami mengimplementasikan fungsi `init_wifi()` yang bertanggung jawab untuk menjalin koneksi ke jaringan Wi-Fi lokal. Fungsi ini mengembalikan nilai `True` apabila Raspberry Pi Pico berhasil melakukan asosiasi dan mendapatkan alamat IP dari router, atau `False` jika koneksi 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...')

        time.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

 

Selanjutnya, skrip melakukan inisialisasi dan koneksi ke jaringan Wi-Fi, kemudian memverifikasi status koneksi sebelum mengeksekusi permintaan HTTP GET ke Weather API.

 

if init_wifi(ssid, password):

 

Permintaan HTTP dibuat dengan memanggil metode `get()` dari modul `urequests`, dengan URL endpoint API diteruskan sebagai argumen untuk menginisialisasi permintaan GET ke server.

 

response = requests.get(url)

 

Permintaan HTTP GET akan menghasilkan respons dalam format JSON. Untuk memanipulasi data tersebut di MicroPython, kita dapat mengonversi respons JSON menjadi dictionary Python dengan memanggil metode `json()` pada objek respons.

 

weather = response.json()

 

Selanjutnya, koneksi HTTP ditutup menggunakan metode `close()` untuk melepaskan buffer dan sumber daya jaringan yang digunakan oleh objek respons.

 

# Close the request

response.close()

 

Saat ini, seluruh data JSON yang diperoleh dari API cuaca telah disimpan dalam variabel `weather`.

Untuk mengekstrak informasi spesifik, kita dapat mengakses nilai melalui kunci (key) yang sesuai dalam dictionary Python. Contohnya, kita dapat mengambil deskripsi kondisi cuaca, suhu, kelembaban, curah hujan, dan kecepatan angin. Properti tambahan juga dapat diakses dengan menelusuri kunci terkait dalam objek JSON tersebut.

 

# Get specific weather data

weather_description = weather['current']['condition']['text']

print('Current weather: ', weather_description)

        

# Temperature and humidity

temperature_c = weather['current']['temp_c']

temperature_f = weather['current']['temp_f']

humidity = weather['current']['humidity']

print(f'Temperature in Celsius: {temperature_c:.2f}')

print(f'Temperature in Fahrenheit: {temperature_f:.2f}')

print(f'Humidity (%): {humidity:.2f}')              

        

# Precipitation

precipitation = weather['current']['precip_mm']

print(f'Precipitation in mm: {precipitation}')              

        

# Wind

wind_speed = weather['current']['wind_kph']

print('Wind speed in kph:', wind_speed)

 

Pengujian Kode

Setelah memasukkan kredensial jaringan Wi-Fi, kunci API Weather, dan parameter lokasi, jalankan skrip pada Raspberry Pi Pico Anda.

 

Jika koneksi berhasil dan permintaan HTTP GET ke API cuaca berhasil, kode akan mengekstrak dan menampilkan data cuaca dari JSON respons. Output akan berisi informasi kondisi cuaca, suhu, kelembaban, curah hujan, dan kecepatan angin sesuai lokasi yang telah ditentukan, serupa dengan ilustrasi berikut namun menyesuaikan dengan lokasi yang dipilih.

 


Proyek ini dapat diperluas dengan menampilkan data cuaca pada antarmuka visual, seperti modul LCD atau OLED. Anda dapat mengimplementasikan loop while atau timer berbasis interrupt untuk melakukan polling data secara periodik. Selain itu, Anda dapat memperoleh data untuk beberapa lokasi secara dinamis dengan memodifikasi parameter `city` sebelum mengirim permintaan HTTP GET ke API.

Contoh 2: Permintaan HTTP GET untuk Harga Bitcoin


Dalam contoh ini, kita akan melakukan permintaan HTTP GET ke API CoinGecko untuk memperoleh harga Bitcoin terkini. API menyediakan endpoint yang mengembalikan nilai pasar Bitcoin dalam USD secara real-time, yang kemudian dapat diproses dan ditampilkan pada Raspberry Pi Pico.

 

https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd

 

Jika Anda mengakses URL tersebut melalui peramban web, server akan mengembalikan respons JSON yang berisi data harga Bitcoin saat ini, mirip dengan contoh berikut:

 

{"bitcoin":{"usd":62748}}

 

Dengan memanfaatkan URL tersebut, Raspberry Pi Pico dapat melakukan permintaan HTTP GET untuk memperoleh data harga Bitcoin secara real-time dari API CoinGecko.

 

# Rui Santos & Sara Santos - Random Nerd Tutorials

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

 

import network

import requests

from time import sleep


# Wi-Fi credentials

ssid = 'REPLACE_WITH_YOUR_SSID'

password = 'REPLACE_WITH_YOUR_PASSWORD'


# Request URL

url = 'https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd'


def init_wifi(ssid, password):# Init Wi-Fi Interface

    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


if init_wifi(ssid, password):

    try:

        # Make the request

        response = requests.get(url)

        #Print the response code

        print('Response code: ', response.status_code)

        

        # Get response content

        bitcoin = response.json()

        # Close the request

        response.close()

        

        # Print bitcoin price

        bitcoin_price = bitcoin['bitcoin']['usd']

        print('Bitcoin price (USD): ', bitcoin_price)


    except Exception as e:

        # Handle any exceptions during the request

        print('Error during request:', e)


Kode ini beroperasi dengan mekanisme yang sama seperti contoh permintaan HTTP GET sebelumnya.

 


Pengembangan Lanjutan

Proyek ini dapat ditingkatkan dengan menampilkan harga Bitcoin secara real-time pada layar OLED atau LCD, dengan pembaruan data secara periodik (misalnya harian). Selain itu, Anda dapat memperluas permintaan untuk memantau berbagai mata uang kripto lainnya.

Integrasi logika notifikasi juga memungkinkan pengiriman alert ketika harga aset digital melewati ambang batas tertentu, misalnya melalui email, SMS, atau platform IoT pihak ketiga.


 

 

 

 

 

 

 

 

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: Memulai Permintaan HTTP GET (MicroPython)"