Raspberry Pi
Mengirim bacaan dari Raspberry Pi dengan Python, lalu menjalankannya otomatis setiap Pi menyala. Berlaku juga untuk komputer Linux lain, seperti Orange Pi atau gateway industri berbasis Debian.
Yang dibutuhkan
- Raspberry Pi dengan Raspberry Pi OS (Bookworm atau lebih baru) yang tersambung ke internet.
- Akses terminal ke Pi, langsung atau lewat SSH.
- Perangkat yang sudah dibuat di INCLUDE. Belum ada? Ikuti Perangkat rakitan sendiri, langkah 1.
1. Siapkan Python
Raspberry Pi OS menolak pip install ke Python sistem. Buat lingkungan terpisah sekali saja:
python3 -m venv ~/include
~/include/bin/pip install requests paho-mqtt2. Ambil kodenya dari INCLUDE
- Buka perangkat Anda, tab Pengaturan, lalu Koneksi & Integrasi.
- Di Contoh kode, pilih HTTP dan tab Python, lalu Salin.

3. Simpan dan jalankan
nano ~/send.py # tempel kodenya, simpan dengan Ctrl+O, keluar dengan Ctrl+X
~/include/bin/python ~/send.pyimport time
import requests
URL = "https://app.include.co.id/api/v1/YOUR_DEVICE_TOKEN/telemetry"
def read_sensor():
# Replace with your sensor reading.
return {"temperature": 25.4, "humidity": 61}
while True:
try:
r = requests.post(URL, json=read_sensor(), timeout=10)
print(r.status_code, r.text)
except requests.RequestException as e:
print("send failed:", e)
time.sleep(10)Kalau berhasil, setiap 10 detik muncul:
202 {"ok":true}Hentikan dengan Ctrl+C.
4. Kirim bacaan sungguhan
Contoh yang bisa langsung dicoba di setiap Pi: suhu prosesornya sendiri. Ganti read_sensor():
def read_sensor():
with open("/sys/class/thermal/thermal_zone0/temp") as f:
return {"cpu_temperature": int(f.read()) / 1000}Untuk sensor di pin GPIO, pasang library sensornya ke lingkungan yang sama, misalnya ~/include/bin/pip install adafruit-circuitpython-dht, lalu kembalikan nilainya dari read_sensor().
5. Jalan otomatis saat Pi menyala
Buat layanan systemd:
sudo nano /etc/systemd/system/include-sensor.serviceIsinya (ganti pi dengan nama pengguna Anda):
[Unit]
Description=Kirim bacaan sensor ke INCLUDE
After=network-online.target
Wants=network-online.target
[Service]
User=pi
ExecStart=/home/pi/include/bin/python /home/pi/send.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.targetLalu nyalakan:
sudo systemctl daemon-reload
sudo systemctl enable --now include-sensor
journalctl -u include-sensor -f # lihat keluarannya, keluar dengan Ctrl+CProgram kini berjalan setiap Pi menyala, dan dijalankan ulang kalau berhenti.
Lewat MQTT
Pilih MQTT dan tab Python di Contoh kode, simpan sebagai ~/publish.py, dan jalankan dengan cara yang sama. Untuk layanan systemd, ganti send.py dengan publish.py.
import json
import time
import paho.mqtt.client as mqtt
HOST = "app.include.co.id"
PORT = 1883
DEVICE_ID = "YOUR_DEVICE_ID"
DEVICE_TOKEN = "YOUR_DEVICE_TOKEN"
TOPIC = "includeapps/YOUR_ORG_ID/YOUR_SOLUTION_SLUG/YOUR_DEVICE_ID/telemetry"
def read_sensor():
# Replace with your sensor reading.
return {"temperature": 25.4, "humidity": 61}
def on_connect(client, userdata, flags, reason_code, properties):
print("connected:", reason_code)
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=DEVICE_ID)
client.username_pw_set(DEVICE_ID, DEVICE_TOKEN)
client.on_connect = on_connect
client.connect(HOST, PORT)
client.loop_start()
while True:
info = client.publish(TOPIC, json.dumps(read_sensor()), qos=1)
info.wait_for_publish(timeout=10)
print("sent:", info.is_published())
time.sleep(10)Kalau tidak berhasil
| Pesan | Artinya |
|---|---|
error: externally-managed-environment | pip dijalankan tanpa venv. Ulangi langkah 1. |
ModuleNotFoundError: No module named 'requests' | Program dijalankan dengan python3 sistem. Pakai ~/include/bin/python. |
send failed: ... NameResolutionError | Pi belum tersambung ke internet. |
401 ... | Token salah. Salin ulang kode dari Koneksi & Integrasi. |
connected: Not authorized | Device ID atau Device Token salah (MQTT). |
Lihat juga Data belum masuk.

