当前位置: 首页 > news >正文

免费企业建站模板跨境电商网址

免费企业建站模板,跨境电商网址,可以做h5的网站有哪些,asp.net网站设计分工一、项目概述 随着物联网(IoT)的快速发展,边缘计算的应用越来越广泛。边缘计算可以将数据处理和分析推向离数据源更近的地方,从而降低延迟,提高效率。本文将介绍如何利用树莓派构建一个多协议边缘计算网关&#xff0c…

一、项目概述

随着物联网(IoT)的快速发展,边缘计算的应用越来越广泛。边缘计算可以将数据处理和分析推向离数据源更近的地方,从而降低延迟,提高效率。本文将介绍如何利用树莓派构建一个多协议边缘计算网关,以支持各种传感器和设备的连接和数据传输。

该项目的主要目标是实现一个边缘网关,能够通过不同的通信协议(如MQTT、HTTP、CoAP等)采集和处理来自传感器的数据,并将这些数据发送至云端或本地数据库进行存储和分析。

二、系统架构

1. 硬件选型

  • 主控单元:树莓派4B

  • 传感器:温度传感器(如DHT11)、湿度传感器、运动传感器等

  • 其他模块:Wi-Fi和蓝牙模块(树莓派4B内置)

2. 通信协议

  • MQTT:用于轻量级的设备间消息传递。

  • HTTP/HTTPS:用于与云服务或Web应用程序的交互。

  • CoAP:用于低功耗设备的通信。

3. 技术栈

  • 操作系统:Raspberry Pi OS

  • 编程语言:Python

  • 数据库:SQLite(用于本地数据存储)

  • 中间件:Eclipse Mosquitto(MQTT代理)

  • 云平台:AWS IoT(可选)

4. 系统架构图

Cloud
数据采集
消息传递
存储数据
提供数据
HTTP请求
可选数据转发
AWS IoT
传感器设备
MQTT代理
树莓派边缘计算网关
SQLite数据库
Flask Web服务
用户界面

三、环境搭建

1. 安装Raspberry Pi OS

  1. 下载Raspberry Pi Imager并安装。

  2. 使用Raspberry Pi Imager将Raspberry Pi OS写入SD卡。

  3. 将SD卡插入树莓派,连接显示器和电源,启动树莓派。

2. 更新系统

运行以下命令更新系统:

sudo apt updatesudo apt upgrade -y

3. 安装Python和依赖库

树莓派通常预装Python,但我们需要安装一些额外的库。

sudo apt install python3 python3-pip -ysudo pip3 install paho-mqtt flask

4. 安装并配置Eclipse Mosquitto

sudo apt install mosquitto mosquitto-clients -y

启动Mosquitto服务:

sudo systemctl start mosquittosudo systemctl enable mosquitto

5. 安装SQLite

sudo apt install sqlite3 libsqlite3-dev -y

四、代码实现

1. 数据采集模块

在上面的代码中,我们已经完成了读取DHT11传感器数据并将其发布到MQTT代理的功能。接下来,我们需要将此脚本保存并运行。

保存并运行数据采集脚本
  1. 在树莓派上创建一个Python脚本文件,例如 sensor_data.py

    nano sensor_data.py
    
  2. 将以下代码粘贴到文件中:

import Adafruit_DHTimport paho.mqtt.client as mqttimport time\# 设置传感器类型和GPIO引脚sensor = Adafruit_DHT.DHT11pin = 4  # GPIO引脚编号\# MQTT设置mqtt_broker = "localhost"  # 本地Mosquitto代理mqtt_topic = "sensor/data"\# 创建MQTT客户端client = mqtt.Client()client.connect(mqtt_broker)while True:# 读取传感器数据humidity, temperature = Adafruit\_DHT.read\_retry(sensor, pin)if humidity is not None and temperature is not None:# 构建消息message = f"Temperature: {temperature}°C, Humidity: {humidity}%"print(message)# 发布到MQTTclient.publish(mqtt_topic, message)else:print("Failed to retrieve data from the sensor.")# 每10秒读取一次数据time.sleep(10)
  1. 保存并退出编辑器(在nano中按 CTRL + X,然后按 Y 确认保存)。

  2. 运行Python脚本:

    python3 sensor_data.py
    

2. 创建Web服务模块

接下来,我们将创建一个简单的Flask Web服务,用于展示传感器数据。

创建Flask应用
  1. 创建一个新的Python文件,例如 app.py

    nano app.py
    
  2. 将以下代码粘贴到文件中:

from flask import Flask, jsonify
import sqlite3app = Flask(__name__)
# 数据库连接函数
def get_db_connection():conn = sqlite3.connect('sensor_data.db')conn.row_factory = sqlite3.Rowreturn conn@app.route('/data', methods=['GET'])
def get_data():conn = get_db_connection()data = conn.execute('SELECT * FROM readings ORDER BY id DESC').fetchall()conn.close()return jsonify([dict(row) for row in data])if __name__ == '__main__':app.run(host='0.0.0.0', port=5000)
  1. 保存并退出编辑器。

3. 数据存储模块

为了将传感器数据存储到SQLite数据库中,我们需要在数据采集模块中添加数据库写入的逻辑。

修改数据采集模块以支持SQLite

sensor_data.py 中,添加数据库写入功能:

import Adafruit_DHT
import paho.mqtt.client as mqtt
import time
import sqlite3# 设置传感器类型和GPIO引脚
sensor = Adafruit_DHT.DHT11
pin = 4  # GPIO引脚编号# MQTT设置
mqtt_broker = "localhost"  # 本地Mosquitto代理
mqtt_topic = "sensor/data"# 创建MQTT客户端
client = mqtt.Client()
client.connect(mqtt_broker)# 数据库连接函数
def get_db_connection():conn = sqlite3.connect('sensor_data.db')return conn# 创建表(如果不存在)
conn = get_db_connection()
conn.execute('''
CREATE TABLE IF NOT EXISTS readings (id INTEGER PRIMARY KEY AUTOINCREMENT,temperature REAL,humidity REAL,timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
)
''')
conn.close()while True:# 读取传感器数据humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)if humidity is not None and temperature is not None:# 保存数据到SQLite数据库conn = get_db_connection()conn.execute('INSERT INTO readings (temperature, humidity) VALUES (?, ?)',(temperature, humidity))conn.commit()conn.close()# 构建消息message = f"Temperature: {temperature}°C, Humidity: {humidity}%"print(message)# 发布到MQTTclient.publish(mqtt_topic, message)else:print("Failed to retrieve data from the sensor.")# 每10秒读取一次数据time.sleep(10)

四、代码实现

4. 启动Web服务

在终端中启动Flask Web服务,以便我们可以通过浏览器访问传感器数据。

  1. 运行Flask应用:

    python3 app.py
    
  2. 在浏览器中访问 http://<树莓派的IP地址>:5000/data,你应该能够看到从传感器采集到的温度和湿度数据的JSON格式输出。这些数据是从SQLite数据库中读取的。

    例如,输出可能如下所示:

    [
    {"id": 1, "temperature": 22.0, "humidity": 45.0, "timestamp": "2024-08-04 12:01:22"},
    {"id": 2, "temperature": 23.0, "humidity": 50.0, "timestamp": "2024-08-04 12:01:32"},
    ...
    ]
    

5. 测试MQTT功能

为了验证MQTT功能的正常工作,可以使用MQTT客户端订阅传感器数据主题。

  1. 在另一个终端中,使用Mosquitto客户端进行订阅:

    mosquitto_sub -h localhost -t sensor/data
    
  2. 你应该能够看到来自传感器的数据实时打印在终端中。

五、项目总结

在本项目中,我们成功地使用树莓派构建了一个多协议的边缘计算网关,涉及以下关键步骤:

  1. 硬件和软件环境搭建:我们选择了树莓派4B作为控制单元,并安装了Raspberry Pi OS。通过安装Python及其相关库,确保了系统的正常运行。

  2. 数据采集模块:通过DHT11传感器实时采集温度和湿度数据,并将这些数据通过MQTT协议发送到本地的Mosquitto代理。

  3. 数据存储模块:使用SQLite数据库存储传感器数据,并确保数据持久性。

  4. Web服务模块:通过Flask框架创建Web服务,以便用户可以通过HTTP请求获取传感器的历史数据。

  5. 测试和验证:通过MQTT客户端订阅消息和通过浏览器访问Web服务,验证了整个系统的功能和数据流的正确性。

http://www.yayakq.cn/news/908215/

相关文章:

  • 建设网站涉及的技术延安微网站建设
  • 建设外贸型网站流程安徽省网站建设
  • 信息化和网站建设管理工作情况个人主页设计dw模板
  • a00000网站建设丽丽app 官方网站 案例
  • 做网站可以申请国家补助吗莱州市做网站的公司
  • 鞍山+网站建设制作公司网站多少钱
  • 桐城网站定制淘宝网络营销案例分析
  • C 如何做简易网站.wordpress淘宝客模版
  • 第三方网站开发的商家可以做微网站的第三方平台有哪些
  • 电子商务网站建设需要的语言及特点6达濠网红小吃
  • 一个网站费用换友情链接的网站
  • wow313做宏的网站软件开发公司简介模板
  • 盐城网站开发怎么样西安建设网站平台
  • 母婴产品网站模板国外网站源代码
  • 建设什么网站比较好万网 网站 ip
  • 建设工程业绩补录 网站怎么自己做砍价网站
  • 学网站建设需要什么软件有哪些网页设计代码为什么没有颜色
  • 装修网站设计师wordpress标记已读
  • 建网站怎样往网站传视频做seo网站诊断书怎么做
  • 网站运营单位是什么意思乐山网站制作设计公司
  • 阜阳讯拓网站建设公司网站建设公司包括哪些
  • 石家庄市工程建设造价管理站网站伪造wordpress浏览量
  • 有什么网站可以做设计兼职的php 网站开发框架
  • 服务器做jsp网站教程国外免费可以做网站的服务器
  • 做商城网站要什么手续给wordpress网站做ssl卸载
  • 网站建设 技术外贸网站建设原则
  • 专业的微网站哪家好nginx wordpress 404.php
  • 装修设计网站哪个好wordpress自定义字段图文
  • ps做网站的分辨率多少钱wordpress原生封装app
  • wordpress网站弹窗插件如何做网站怎么赚钱吗