MicroPython
Mengirim bacaan dengan MicroPython dari ESP32, Raspberry Pi Pico W, atau papan lain yang punya WiFi. Kodenya Python biasa, disimpan sebagai main.py di papan.
Yang dibutuhkan
- Papan dengan firmware MicroPython 1.23 atau lebih baru. Unduh firmware untuk papan Anda di micropython.org/download.
- Thonny untuk menyalin file ke papan dan melihat keluarannya.
- WiFi 2,4 GHz.
- Perangkat yang sudah dibuat di INCLUDE. Belum ada? Ikuti Perangkat rakitan sendiri, langkah 1.
1. Sambungkan Thonny ke papan
- Colokkan papan, buka Thonny.
- Run > Configure interpreter.
- Pilih MicroPython (ESP32) atau MicroPython (Raspberry Pi Pico), dan port papannya.
- Tekan OK. Di panel Shell muncul
>>>.
2. Ambil kodenya dari INCLUDE
- Buka perangkat Anda, tab Pengaturan, lalu Koneksi & Integrasi.
- Di Contoh kode, pilih HTTP dan tab MicroPython, lalu Salin.

3. Simpan sebagai main.py
import time
import network
import requests
WIFI_SSID = "your-wifi"
WIFI_PASSWORD = "your-password"
URL = "https://app.include.co.id/api/v1/YOUR_DEVICE_TOKEN/telemetry"
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASSWORD)
while not wlan.isconnected():
time.sleep(0.5)
print("WiFi connected")
def read_sensor():
# Replace with your sensor reading.
return {"temperature": 25.4, "humidity": 61}
while True:
try:
r = requests.post(URL, json=read_sensor())
print(r.status_code, r.text)
r.close()
except OSError as e:
print("send failed:", e)
time.sleep(10)- Tempel ke file baru di Thonny.
- Isi
WIFI_SSIDdanWIFI_PASSWORD, dan ganti isiread_sensor()dengan bacaan sensor Anda. - File > Save as > MicroPython device, beri nama
main.py. - Tekan tombol reset di papan, atau Run > Send EOF / Soft reboot.
Di panel Shell:
WiFi connected
202 {"ok":true}Papan menjalankan main.py setiap kali menyala, jadi ia tetap mengirim walau dilepas dari komputer.
Lewat MQTT
Di Contoh kode, pilih MQTT dan tab MicroPython.
import json
import time
import network
from umqtt.simple import MQTTClient
WIFI_SSID = "your-wifi"
WIFI_PASSWORD = "your-password"
HOST = "app.include.co.id"
DEVICE_ID = "YOUR_DEVICE_ID"
DEVICE_TOKEN = "YOUR_DEVICE_TOKEN"
TOPIC = "includeapps/YOUR_ORG_ID/YOUR_SOLUTION_SLUG/YOUR_DEVICE_ID/telemetry"
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASSWORD)
while not wlan.isconnected():
time.sleep(0.5)
print("WiFi connected")
client = MQTTClient(DEVICE_ID, HOST, port=1883, user=DEVICE_ID, password=DEVICE_TOKEN,
keepalive=60)
client.connect()
print("connected")
def read_sensor():
# Replace with your sensor reading.
return {"temperature": 25.4, "humidity": 61}
while True:
client.publish(TOPIC, json.dumps(read_sensor()))
print("sent")
time.sleep(10)Kalau muncul ImportError: no module named 'umqtt', pasang dulu dari Shell, dengan papan sudah tersambung ke WiFi:
import mip
mip.install("umqtt.simple")Untuk ImportError: no module named 'requests' caranya sama, dengan mip.install("requests").
Contoh ini memakai port 1883. Untuk koneksi terenkripsi, pilih port 8883 (TLS) di Contoh kode:
import json
import ssl
import time
import network
from umqtt.simple import MQTTClient
WIFI_SSID = "your-wifi"
WIFI_PASSWORD = "your-password"
HOST = "app.include.co.id"
DEVICE_ID = "YOUR_DEVICE_ID"
DEVICE_TOKEN = "YOUR_DEVICE_TOKEN"
TOPIC = "includeapps/YOUR_ORG_ID/YOUR_SOLUTION_SLUG/YOUR_DEVICE_ID/telemetry"
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASSWORD)
while not wlan.isconnected():
time.sleep(0.5)
print("WiFi connected")
context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context.verify_mode = ssl.CERT_NONE
client = MQTTClient(DEVICE_ID, HOST, port=8883, user=DEVICE_ID, password=DEVICE_TOKEN,
keepalive=60, ssl=context)
client.connect()
print("connected")
def read_sensor():
# Replace with your sensor reading.
return {"temperature": 25.4, "humidity": 61}
while True:
client.publish(TOPIC, json.dumps(read_sensor()))
print("sent")
time.sleep(10)Tentang sertifikat
Contoh HTTP dan contoh MQTT port 8883 mengenkripsi koneksi, tetapi tidak memeriksa sertifikat server. Contoh MQTT port 1883 tidak dienkripsi sama sekali. Memeriksanya di MicroPython butuh sertifikat akar dalam bentuk DER dan jam yang benar dari ntptime, dan dukungannya berbeda antarpapan. Untuk perangkat di jaringan yang tidak Anda kendalikan, pakai ESP32 dengan Arduino, yang memeriksa sertifikat.
Membaca sensor sungguhan
Contoh untuk sensor suhu DHT22 di pin 4 (modul dht sudah ada di firmware ESP32 dan Pico W):
import dht
from machine import Pin
sensor = dht.DHT22(Pin(4))
def read_sensor():
sensor.measure()
return {"temperature": sensor.temperature(), "humidity": sensor.humidity()}Kalau tidak berhasil
| Di Shell | Artinya |
|---|---|
Tidak pernah WiFi connected | Nama atau kata sandi WiFi salah, atau WiFi-nya 5 GHz. |
OSError: -202 atau [Errno 113] | Server tidak terjangkau. Periksa internet dari WiFi itu. |
401 | Token salah. Salin ulang kode dari Koneksi & Integrasi. |
MQTTException: 5 | Device ID atau Device Token salah. |
MemoryError | Memori papan habis. Matikan program lain di main.py, atau pakai HTTP. |
Lihat juga Data belum masuk.

