本帖最后由 qgyhd1234 于 2019-5-29 11:00 编辑
第一帖地址:https://bbs.hassbian.com/thread-7307-1-1.html
之前的帖子讲到要用 RTL8710 进行开发,RTL8710 有一个缺点,就是下载需要使用串口,速度慢,每次下载都需要按开发板上的 flash 按纽和 rst 按纽,十分不方便。考虑到以后自己画板子,做成模块后,不可能像开发时一样,一直串口连着电脑,如果想升级相关功能,再次用串口烧录就非常反人类了。所以在固件中加入了 ota 升级功能。
在我自己的群晖上装上 Web Station 套件后,直接将要升级的固件丢到群晖的 web 文件夹下即可,要 ota 升级了,直接将文件下载下来升级即可 。
测试效果良好,效果如下所示:
下载固件
固件校验,搬运,跳转
--------------------------分割线-------------------------------------
ze08 对接完成后,接下来要进行的就是攀藤的 PMS7003 的对接了,PMS7003 和 M1 主板的连接线用的是软排线,软排线飞线不好飞。测试期间,直接将 PMS7003 模块上粘的转接板拿下来,传感器上有一个 1.27mm 2*5P 的端子,将杜邦线飞到排母上,然后再将排母插到 PMS7003 用于调试。
飞线后如下所示:
PMS7003 的供电必须是 5V,因为需要驱动里面的电机,但是通信管脚需要是 3.3V。测试时 5V 应该单独供,不能从 RTL8710 模块中取电。PMS7003 的金属外壳与内部电源地导通,调试时要小心不能和其他外部板组电路短接。PMS7003 接口定义如下图所示:
PMS7003 和 ze08 一样有两种输出状态,分别是主动输出和被动输出两种。本次开发将会和 ze08 一样,使用被动输出的模式。PMS7003 的波特率为 9600bps,无校验位,1 位停止位。在使用 PMS7003 时要注意从待机模式回到正常模式后,传感器的数据需要在 30s 后才是准确的。
需要用到的命令和数据结构体如下所示:
const char pms7003_cmd_initiative_upload_mode[] = {0x42, 0x4D, 0xE1, 0x00, 0x01, 0x01, 0x71};
const char pms7003_cmd_question_answer_mode[] = {0x42, 0x4D, 0xE1, 0x00, 0x00, 0x01, 0x70};
const char pms7003_cmd_standby_mode[] = {0x42, 0x4D, 0xE4, 0x00, 0x00, 0x01, 0x73};
const char pms7003_cmd_normal_mode[] = {0x42, 0x4D, 0xE4, 0x00, 0x01, 0x01, 0x74};
const char pms7003_cmd_read_data[] = {0x42, 0x4D, 0xE2, 0x00, 0x00, 0x01, 0x71};
struct pms7003_data_format
{
volatile uint8_t start1;
volatile uint8_t start2;
volatile uint8_t len_h;
volatile uint8_t len_l;
volatile uint8_t data1_h;
volatile uint8_t data1_l;
volatile uint8_t data2_h;
volatile uint8_t data2_l;
volatile uint8_t data3_h;
volatile uint8_t data3_l;
volatile uint8_t data4_h;
volatile uint8_t data4_l;
volatile uint8_t data5_h;
volatile uint8_t data5_l;
volatile uint8_t data6_h;
volatile uint8_t data6_l;
volatile uint8_t data7_h;
volatile uint8_t data7_l;
volatile uint8_t data8_h;
volatile uint8_t data8_l;
volatile uint8_t data9_h;
volatile uint8_t data9_l;
volatile uint8_t data10_h;
volatile uint8_t data10_l;
volatile uint8_t data11_h;
volatile uint8_t data11_l;
volatile uint8_t data12_h;
volatile uint8_t data12_l;
volatile uint8_t data13_h;
volatile uint8_t data13_l;
volatile uint8_t verify_h;
volatile uint8_t verify_l;
}
RTL8710 读取 PMS7003 数据截图如下所示:
HA 数据显示:
PMS7003 数据手册:
PMS7003颗粒物传感器中文说明书 V2.2 .pdf
(757.38 KB, 下载次数: 20)
|