پایتون و اینترنت اشیاء (IoT): ارسال داده از سنسور دما به سایت با Flask
دستهبندی: پایتون و اینترنت اشیاء | تاریخ: چهارم شهریور ۱۴۰۴
۱. معرفی پروژه
هدف پروژه:- خواندن داده دما از سنسور (مثلاً DS18B20 یا DHT11)
- ارسال داده به یک سرور Flask
- ذخیرهسازی و نمایش دما روی وبسایت
۲. ابزارها و پیشنیازها
برای شروع نیاز داریم:- سنسور دما (DHT11 یا DS18B20)
- برد سختافزاری (Raspberry Pi یا Arduino + ماژول WiFi)
- پایتون ۳ و کتابخانههای مربوطه
- فریمورک Flask برای ایجاد وبسرور
pip install flask
۳. خواندن داده از سنسور
فرض کنیم از سنسور DHT11 استفاده میکنیم. کد نمونه:import Adafruit_DHT sensor = Adafruit_DHT.DHT11 pin = 4 # پایه اتصال سنسور humidity, temperature = Adafruit_DHT.read(sensor, pin) print(f"Temp: {temperature}°C | Humidity: {humidity}%")این کد دما و رطوبت را از سنسور خوانده و نمایش میدهد.
۴. ارسال داده به سرور Flask
حالا دادهها را به سرور میفرستیم. ابتدا یک API در Flask میسازیم:from flask import Flask, request, jsonify app = Flask(__name__) data_store = [] @app.route('/send', methods=['POST']) def receive_data(): temp = request.json.get("temperature") data_store.append(temp) return jsonify({"status": "success", "received": temp}) @app.route('/show', methods=['GET']) def show_data(): return jsonify({"temperatures": data_store}) if __name__ == "__main__": app.run(host="0.0.0.0", port=5000)این API دو مسیر دارد: یکی برای دریافت دادهها و دیگری برای نمایش لیست دماها.
نکته کلیدی
برای امنیت بیشتر، میتوانید کلید API تعریف کنید تا فقط دستگاههای مجاز بتوانند داده ارسال کنند.
۵. ارسال داده از دستگاه IoT
حالا در کدی که روی Raspberry Pi اجرا میشود، دادهها را به Flask API ارسال میکنیم:import requests url = "http://localhost:5000/send" data = {"temperature": 24.5} response = requests.post(url, json=data) print(response.json())این کد دما را به سرور ارسال کرده و پاسخ موفقیت دریافت میکند.
۶. نمایش داده روی سایت
میتوانیم دادهها را در یک صفحه HTML ساده نمایش دهیم. در Flask یک route اضافه میکنیم:@app.route('/') def home(): latest = data_store[-1] if data_store else "No Data" return f"هر بار که کاربر صفحه اصلی را باز کند، آخرین دما نمایش داده خواهد شد.دمای فعلی: {latest} °C
"
۷. کاربردهای پروژه
این پروژه میتواند در حوزههای مختلف بهکار رود:- مانیتورینگ دمای اتاق سرور
- کنترل گلخانهها و مزارع
- فروشگاهها یا یخچالهای صنعتی
- سیستمهای هوشمند خانگی