1. 多对一(多个监测设备检测,数据发送给一个服务器)
2. 原理
充电桩温度变化引起PT100阻值变换(测温电流衰减微弱,几乎恒定,电压随之变化),经过测温模块转化成电压的变化(内部是电流的变化),输出电压值,模拟电压值经过ADS1115转化成数字量的温度值
3. 存储使用本地文件而非数据库,数据量小,不需要数据库
4. 每天十二点之后,要关闭当前文件夹,新建新的一天文件夹进行数据存储
5. 采集一组数据,去掉最小最大值,计算平均值,防止误差
6. 采集端
1. 多久采集一次
2. 采集后给发送给其余模块,线程邮箱
实操
1. 线程随机生成检测的数据,先写软件、后加硬件
1. 先采集(随机生成)
2. 存储
3. 显示(简单)
4. 网络发送
5. 告警
6. 服务器
线程邮箱
1. 用链表将各个线程串联起来,各个线程内容使用结构体保存,使用队列保存各个线程间的数据,线程间共享数据,通过遍历链表名,或者线程id找到对应要发送数据的位置,使用队列,将数据入队到目的队列中,获取接收到的数据时,使用getpid或者线程名找到自己的结构体,找到自己的队列,出队数据
2. 每次入队出队数据要加锁,资源保护
线程邮箱代码
1. create_msg_box();创建空链表
2. 注册线程任务
3. 发送函数,遍历链表寻找要发送的线程名称,将所要发送的数据入队
4. 接收数据,遍历链表找自己,出队数据
项目一
客户端
1.采集端使用何种平台实现
分析不同平台的优缺点:树莓派、单片机、stm32、2440
2. 确定每个项目中需要检测哪些数据指标?使用哪些传感器来完成?
3. 如何实现屏幕显示?(LVGL、QT、Framebuffer)(为什么要选framebuffer)
屏幕最好做到人机交互
1. 界面显示实时信息
2. 输入阈值
3. 如何实现界面跳转
4. 图像显示
柱状图、折线图、饼状图、曲线
4. 数据如何实现记录?(多大数据量需要数据库)
5. 使用网络编程(TCP、UDP)
采集端
1. 第三方平台:(阿里云、腾讯云)MQTT
2. 如何编写服务器端
1. 如何实现并发接收
2. 如何管理数据(分库、分表)
3. http服务器搭建
任务
1. 确定题目
2. 确定项目框架
3. 绘制软件框图
项目软件如何划分?每个模块实现哪些功能?利用何种技术实现该功能?
项目二
1. 基于单片机与K210的人脸追踪相机(机器视觉)
人脸识别
2. 基于人工智能模型的对话系统(机器听觉、对话)