littlebot
Published on 2025-04-13 / 0 Visits
0

【源码】基于Python和Arduino的MNIST TensorFlow Lite云物联网服务器框架

项目简介

本项目是一个MNIST TensorFlow Lite云物联网服务器/客户端框架。ESP8266运行Arduino固件作为TCP客户端,连接到运行Python脚本的TCP服务器,请求对负载进行推理。服务器需具备运行Python 3和TensorFlow的能力,已在Jetson nano和普通工作站上测试。

项目的主要特性和功能

  1. ESP8266客户端:ESP8266作为客户端,通过TCP协议与服务器通信,发送序列化数据请求推理。支持通过串口发送特定命令控制推理请求,如单次请求、定时请求和停止定时请求。
  2. 服务器端:服务器端使用Python实现,可运行在Jetson nano或普通工作站上,对客户端发送的数据进行推理,并返回结果。
  3. Jupyter notebook支持:提供Jupyter notebook,方便在Jetson nano上运行和调试。
  4. 压力测试工具:提供tcp - stress - tool工具,可对服务器进行压力测试,评估服务器的性能。

安装使用步骤

ESP8266固件

  1. 打开Arduino IDE(版本 > 1.8),打开esp8266 - tf - client/esp8266 - tf - client.ino文件。
  2. 根据网络设置修改代码中的以下变量: ```cpp

define SSID "SSID"

define SSID_PASSWD "PASSWORD"

define SERVER_IP "192.168.0.123"

define SERVER_PORT 32001

3. 若将ESP8266运行频率从160MHz改为80MHz,需修改`MS_CONST`:cpp

define MS_CONST 80000.0f

`` 4. 点击VerifyUpload`构建并上传固件。

服务器端

Jupyter notebook

若使用Jetson nano运行Jupyter notebook,安装好依赖后,运行以下命令: sh sudo jupyter notebook --allow - root --ip 192.168.0.86 --port 8888 替换ipport为合适的值,然后运行所有单元格。

TfliteServer

运行TfliteServer前,需修改jupyter_notebook/TfliteServer/TfliteServer.py中的IP和端口,然后在终端运行: sh python3 TfliteServer

压力测试工具

  1. 进入tcp - stress - tool目录,运行以下命令编译工具: sh make
  2. 使用以下命令运行压力测试: sh ./tcp - stress - tool [server ip] [server port] [num of connections]

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】