پیشرفته⏱ 18 دقیقه مطالعه
در درسهای قبل با MQTT (درس ۱۳) برای ارتباط سبک بین دستگاهها آشنا شدید. اما برای گرفتن اطلاعات از سرویسهای وب معمولی (مثل یک API آبوهوا یا نرخ ارز)، معمولاً به درخواستهای HTTP نیاز داریم. کتابخانهٔ urequests نسخهٔ سبکی از requests معروف پایتون است.
ارسال یک درخواست GET
PYTHON
import network
import urequests
from time import sleep
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("Wokwi-GUEST", "")
while not wlan.isconnected():
sleep(1)
response = urequests.get("https://api.publicapis.org/entries")
data = response.json()
print("تعداد رکوردها:", len(data.get("entries", [])))
response.close()⚠️ هشدار
همیشه پس از استفاده از پاسخ، متد response.close() را صدا بزنید؛ در غیر این صورت حافظهٔ محدود ESP32 بهمرور پر میشود.
ارسال داده با POST
PYTHON
import urequests, ujson
payload = {"sensor": "esp32-academy", "value": 23.5}
headers = {"Content-Type": "application/json"}
response = urequests.post(
"https://example.com/api/readings",
data=ujson.dumps(payload),
headers=headers
)
print("کد پاسخ:", response.status_code)
response.close()🛠️ کارگاه عملی
کارگاه عملی: با استفاده از یک API عمومی رایگان (مثل قیمت لحظهای ارز)، هر ۳۰ ثانیه یک مقدار جدید بگیرید و روی نمایشگر OLED (درس ۹) نشان دهید.
❓ پس از پردازش پاسخ یک درخواست HTTP در میکروپایتون، چرا باید response.close() را صدا بزنیم؟
→ درس قبلی: درس ۱۹: ماژول ساعت واقعی (RTC) با DS3231
درس بعدی: درس ۲۱: ذخیرهسازی داده روی فایلسیستم و JSON ←
طراحی و توسعه: امین شیخ نجدی — glcd.ir | نسخهٔ افزونه: 1.11.0