数码之家

标题: SRNE-ML2420全版本蓝牙支持程序 [打印本页]

作者: 猪小呆    时间: 2024-11-19 23:49
标题: SRNE-ML2420全版本蓝牙支持程序
终于搞明白了,问题出在MTU上,旧版本的APP期望小的MTU,一次最多传20字节,而新版本的APP期望一次最大传200多字节,所以给旧版传大MTU和给新版传小MTU都会出问题。现在加了MTU检测,自动根据MTU设置单次传输的字节数,测试了安卓的旧版和新版APP均正常运行,ios理论上没问题但没测试,有兴趣的坛友可以测一下试试。代码在ESP32-C3的arduino平台下编译通过,下载密码srne:
https://wwwy.lanzouq.com/b0foxi9kf  

作者: hanxue1205    时间: 2024-11-20 07:46
感谢二师兄分享
作者: wlhcq    时间: 2024-11-20 09:20
谢谢分享资料!
作者: yiran    时间: 2024-11-20 12:08
楼主厉害
作者: yiran    时间: 2024-11-20 12:23
C:\Users\Administrator\Documents\Arduino\reno_bt\reno_bt.ino: In function 'void setup()':
C:\Users\Administrator\Documents\Arduino\reno_bt\reno_bt.ino:67:23: error: 'ESP_MAC_BT' was not declared in this scope
   67 |   esp_read_mac(macBT, ESP_MAC_BT);
      |                       ^~~~~~~~~~
C:\Users\Administrator\Documents\Arduino\reno_bt\reno_bt.ino:67:3: error: 'esp_read_mac' was not declared in this scope
   67 |   esp_read_mac(macBT, ESP_MAC_BT);
      |   ^~~~~~~~~~~~

exit status 1

Compilation error: 'ESP_MAC_BT' was not declared in this scope
作者: yiran    时间: 2024-11-20 12:24
编译错误
作者: 猪小呆    时间: 2024-11-20 12:58
yiran 发表于 2024-11-20 12:23
C:%users\Administrator\Documents\Arduino\reno_bt\reno_bt.ino: In function 'void setup()':
C:%users\A ...

重新上传了一份,你重新下一个试试,下载链接不变
作者: 猪小呆    时间: 2024-11-20 13:00
yiran 发表于 2024-11-20 12:24
编译错误

估计是不同的编译环境里的库版本包含的东西不一致导致的,我修改后重新上传了
作者: yiran    时间: 2024-11-20 13:16
C:\Users\Administrator\Documents\Arduino\reno_bt\reno_bt.ino: In member function 'virtual void MyCallbacks::onWrite(BLECharacteristic*)':
C:\Users\Administrator\Documents\Arduino\reno_bt\reno_bt.ino:49:54: error: conversion from 'String' to non-scalar type 'std::string' {aka 'std::__cxx11::basic_string<char>'} requested
   49 |       std::string rxValue = pCharacteristic->getValue();
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~^~

exit status 1

Compilation error: conversion from 'String' to non-scalar type 'std::string' {aka 'std::__cxx11::basic_string<char>'} requested


改成下边可以了

String rxValue = pCharacteristic->getValue();
作者: 猪小呆    时间: 2024-11-20 13:19
yiran 发表于 2024-11-20 13:16
C:%users\Administrator\Documents\Arduino\reno_bt\reno_bt.ino: In member function 'virtual void MyCal ...

试试ios能不能用
作者: yiran    时间: 2024-11-20 13:21
SRNE  Solar还是不行,Renogy BT正常
作者: liding    时间: 2024-11-20 13:21
谢谢分享!!!
作者: 猪小呆    时间: 2024-11-20 13:23
yiran 发表于 2024-11-20 13:21
SRNE  Solar还是不行,Renogy BT正常

SRNE是哪个版本?
作者: yiran    时间: 2024-11-20 13:27
  SRNE 4.2

Solar 2.0.22
作者: 猪小呆    时间: 2024-11-20 13:28
yiran 发表于 2024-11-20 13:27
SRNE 4.2

Solar 2.0.22

你这是安卓还是IOS环境?安卓应该正常才对
作者: yiran    时间: 2024-11-20 13:31
猪小呆 发表于 2024-11-20 13:28
你这是安卓还是IOS环境?安卓应该正常才对

这个是Ios的
作者: 猪小呆    时间: 2024-11-20 13:32
yiran 发表于 2024-11-20 13:31
这个是Ios的

不知道ios用了什么魔法,没有环境没法搞了,有安卓手机的话可以装个安卓的版本试试
作者: vip2128    时间: 2024-11-20 15:13
yiran 发表于 2024-11-20 13:16
C:%users\Administrator\Documents\Arduino\reno_bt\reno_bt.ino: In member function 'virtual void MyCal ...

可以编译正常, 估计是arduino 版本是最新的2.3.3,回退到 2.32 就可以,以前我也是编译错,
arduino-ide_2.3.2_Windows_64bit.exe 重装旧版本就可以,, app 新老版本都有数据
作者: vip2128    时间: 2024-11-20 15:48

我把mqtt上传巴法和esp蓝牙合并代码, 云平台和app 都正常,
但是按键开负载偶尔就会影响app断开连接
  
[attach]2254000[/attach]


[attach]2254001[/attach]


作者: szy912    时间: 2024-11-20 16:13
vip2128 发表于 2024-11-20 15:48
我把mqtt上传巴法和esp蓝牙合并代码, 云平台和app 都正常,
但是按键开负载偶尔就会影响app断开连接
  

你俩还在搞这个板子啊,卖家还有货么?
作者: yiran    时间: 2024-11-20 18:55
https://www.mydigit.cn/thread-480769-3-1.html

这个帖子中54楼,你的代码刷上,可以连上ios版本的SRNE 和Solar。
作者: 猪小呆    时间: 2024-11-20 18:59
yiran 发表于 2024-11-20 18:55
https://www.mydigit.cn/thread-480769-3-1.html

这个帖子中54楼,你的代码刷上,可以连上ios版本的SRNE  ...

那个版本即便能连上也是有问题的,你用ios版本的solar app连本帖的蓝牙程序跑一份日志出来我看跟之前有没有什么变化
作者: yiran    时间: 2024-11-20 20:25
猪小呆 发表于 2024-11-20 18:59
那个版本即便能连上也是有问题的,你用ios版本的solar app连本帖的蓝牙程序跑一份日志出来我看跟之前有没 ...

http://obj.srne.net/FvS_ytc-y7dGHPLu1GL7MCcxtYHr
作者: 猪小呆    时间: 2024-11-20 21:00
yiran 发表于 2024-11-20 20:25
http://obj.srne.net/FvS_ytc-y7dGHPLu1GL7MCcxtYHr

跟上次的一样,通过跟安卓版APP正常的日志比较,是在蓝牙连接成功后发送第一条查询命令时出的问题,ios app在这个时候直接停止了:
[attach]2254149[/attach]

而安卓版正常的则是发送一条读取命令成功:
[attach]2254152[/attach]

这条命令是一条查询设备基本信息的命令,命令代码是FF03000A0011B01A
如果方便的话,你可以试一下用蓝牙调试工具连上去并发送这条指令,看有没有返回结果



作者: yiran    时间: 2024-11-20 21:04
猪小呆 发表于 2024-11-20 21:00
跟上次的一样,通过跟安卓版APP正常的日志比较,是在蓝牙连接成功后发送第一条查询命令时出的问题,ios ap ...

跟安卓不一样,不会搞啊
作者: 猪小呆    时间: 2024-11-20 21:08
yiran 发表于 2024-11-20 21:04
跟安卓不一样,不会搞啊

应该是右边这个向上的箭头表示发送数据,点它试试:
[attach]2254178[/attach]

作者: yiran    时间: 2024-11-20 21:09
猪小呆 发表于 2024-11-20 21:08
应该是右边这个向上的箭头表示发送数据,点它试试:

是不是这个?
作者: yiran    时间: 2024-11-20 21:11
还有这个
作者: 猪小呆    时间: 2024-11-20 21:16
yiran 发表于 2024-11-20 21:11
还有这个

对,然后到上面那个FFF1的项目点右边向下的箭头接收数据试试:
[attach]2254195[/attach]

作者: yiran    时间: 2024-11-20 21:21
点了之后是这个
作者: 猪小呆    时间: 2024-11-20 21:24
yiran 发表于 2024-11-20 21:21
点了之后是这个

在这个状态下再重新发送一次刚才那条命令,看会不会有数据被自动接收
作者: yiran    时间: 2024-11-20 21:27
出现了这个
作者: 猪小呆    时间: 2024-11-20 21:30
yiran 发表于 2024-11-20 21:27
出现了这个

那个向上的按钮是打开通知,按一下让它保持住被打开的状态,然后用下面那个向上的按钮发送之前那条命令,这个时候应该能正常接收到设备返回的数据,你这里没看到发送数据,只看到了打开通知,要发送一条命令才行
作者: yiran    时间: 2024-11-20 21:31
返回了数据
作者: yiran    时间: 2024-11-20 21:32
yiran 发表于 2024-11-20 21:31
返回了数据

还有这个
作者: 猪小呆    时间: 2024-11-20 21:45
yiran 发表于 2024-11-20 21:32
还有这个

看上去是正常的,跟我安卓版的蓝牙调试APP返回的数据有一点不同的地方是我的是分两次返回的,因为默认是一次传输20字节,你这个好像一次就全部返回了?你的蓝牙调试软件里有设置MTU的地方吗?
作者: yiran    时间: 2024-11-20 21:57
猪小呆 发表于 2024-11-20 21:45
看上去是正常的,跟我安卓版的蓝牙调试APP返回的数据有一点不同的地方是我的是分两次返回的,因为默认是 ...

找不到啊
作者: 猪小呆    时间: 2024-11-20 22:03
yiran 发表于 2024-11-20 21:57
找不到啊

怀疑还是MTU问题导致的,我改了一下程序将MTU固定为一次传输20字节,你刷一下试试能不能用:
https://wwwy.lanzouq.com/iCITk2fny2da
密码:srne
作者: yiran    时间: 2024-11-20 22:23
还是不行,日志http://obj.srne.net/FsyUjlxm1Ph0E7q811Z0TSrm5HWX
作者: yiran    时间: 2024-11-20 22:26
反馈一个问题,renogy Bt连上后,别的正常,但是这个页面不正常。
作者: 猪小呆    时间: 2024-11-20 22:33
yiran 发表于 2024-11-20 22:26
反馈一个问题,renogy Bt连上后,别的正常,但是这个页面不正常。

好奇怪,安卓没有这个问题。这个链接是你说的54楼的那个版本,据说可以连上?那你用这个程序,IOS app打开日志然后登录,抓取一份成功登录过程的日志看看:
https://wwwy.lanzouq.com/idLw42endzyh
密码:srne
作者: yiran    时间: 2024-11-20 22:42
http://obj.srne.net/FpiAvCQkbbZdJmuCjKwqHaYYMThL
作者: 猪小呆    时间: 2024-11-20 23:02
yiran 发表于 2024-11-20 22:42
http://obj.srne.net/FpiAvCQkbbZdJmuCjKwqHaYYMThL

试试这个版本,不行就睡觉吧,今天就不搞了:
https://wwwy.lanzouq.com/ic65f2fo4fbc
密码:srne
作者: aec    时间: 2024-11-20 23:19
我试了一下,用合宙那个esp32c3,能搜到连不上
作者: 猪小呆    时间: 2024-11-20 23:24
aec 发表于 2024-11-20 23:19
我试了一下,用合宙那个esp32c3,能搜到连不上

试的是哪个版本?43楼的还是1楼的?
作者: aec    时间: 2024-11-20 23:29
猪小呆 发表于 2024-11-20 23:24
试的是哪个版本?43楼的还是1楼的?

首页主楼那个链接的,安卓手机
作者: 猪小呆    时间: 2024-11-20 23:31
aec 发表于 2024-11-20 23:29
首页主楼那个链接的,安卓手机

安卓应该没问题,RX TX线对调试试?
作者: aec    时间: 2024-11-20 23:32
猪小呆 发表于 2024-11-20 23:31
安卓应该没问题,RX TX线对调试试?

对调后就搜不到了
作者: 猪小呆    时间: 2024-11-20 23:35
aec 发表于 2024-11-20 23:32
对调后就搜不到了

C3板子有供电就有信号,信号跟RX TX没关系,但是RX TX不对就没法正常通信
作者: yiran    时间: 2024-11-21 07:13
最后一个可以用了!
作者: yiran    时间: 2024-11-21 07:21
yiran 发表于 2024-11-21 07:13
最后一个可以用了!

Srne可以用了,但是renogy BT不能用了,能搜到,能连上,没有数据。
作者: 猪小呆    时间: 2024-11-21 10:23
yiran 发表于 2024-11-21 07:21
Srne可以用了,但是renogy BT不能用了,能搜到,能连上,没有数据。

你用最后一个版本抓一份登录过程的日志发上来看看
作者: yiran    时间: 2024-11-21 10:34
http://obj.srne.net/FgrJMkp_GTftn6zlKjpXL9TKyKgI
作者: vip2128    时间: 2024-11-21 10:45
yiran 发表于 2024-11-21 10:34
http://obj.srne.net/FgrJMkp_GTftn6zlKjpXL9TKyKgI

这后台管理咋进入的
作者: yiran    时间: 2024-11-21 10:49
新版软件,设置  app日志 打开 登陆 再关闭
作者: aec    时间: 2024-11-21 11:58
猪小呆 发表于 2024-11-20 23:35
C3板子有供电就有信号,信号跟RX TX没关系,但是RX TX不对就没法正常通信

arduinoide1.8.19版本的arduinoide下载后,可以连上,显示电池电压,负载开关打不开无输出,换回妙享蓝牙模块后负载开关也打不开了,无输出,难道坏了?
作者: 猪小呆    时间: 2024-11-21 12:03
aec 发表于 2024-11-21 11:58
arduinoide1.8.19版本的arduinoide下载后,可以连上,显示电池电压,负载开关打不开无输出,换回妙享蓝牙 ...

应该不是,有些版本APP能打开,有些版本就不行,有些版本有时能打开有时就不行,具体我也搞不明白这个开关到底是怎么回事
作者: 猪小呆    时间: 2024-11-21 12:05
yiran 发表于 2024-11-21 10:34
http://obj.srne.net/FgrJMkp_GTftn6zlKjpXL9TKyKgI

试试这个版本:
https://wwwy.lanzouq.com/i6JC02fqbqlc
密码:srne
作者: aec    时间: 2024-11-21 12:14
猪小呆 发表于 2024-11-21 12:03
应该不是,有些版本APP能打开,有些版本就不行,有些版本有时能打开有时就不行,具体我也搞不明白这个开 ...

换回妙享也就是最初的样子,app也用老版本,应该是有输出才对,也没动其它的,无输出那就不能用了
作者: 猪小呆    时间: 2024-11-21 12:17
aec 发表于 2024-11-21 12:14
换回妙享也就是最初的样子,app也用老版本,应该是有输出才对,也没动其它的,无输出那就不能用了 ...

老版本的开关一般没问题都能正常切换,新版本的我就没几次能切换的,你负载上有接东西吗?如果没有的话可以接个灯泡或者电阻之类的上去再试试
作者: yiran    时间: 2024-11-21 12:21
猪小呆 发表于 2024-11-21 12:05
试试这个版本:
https://wwwy.lanzouq.com/i6JC02fqbqlc
密码:srne

都能连上了,显示也正常!!

只有一个问题了,就是renogyBt 显示不了序列号等信息。
作者: 猪小呆    时间: 2024-11-21 12:24
yiran 发表于 2024-11-21 12:21
都能连上了,显示也正常!!

只有一个问题了,就是renogyBt 显示不了序列号等信息。 ...

这个没办法了,不过也不影响使用,就不管它了
作者: yiran    时间: 2024-11-21 12:27
猪小呆 发表于 2024-11-21 12:24
这个没办法了,不过也不影响使用,就不管它了

好的,辛苦了!
作者: aec    时间: 2024-11-21 13:40
猪小呆 发表于 2024-11-21 12:17
老版本的开关一般没问题都能正常切换,新版本的我就没几次能切换的,你负载上有接东西吗?如果没有的话可 ...

现在又可以了有点莫名其妙,新老app都可以开关负载,新版有点迟钝
作者: 光速蜗牛    时间: 2024-11-21 15:48
这个程序怎么用啊 需要用编程器刷进太阳能板子?
作者: aec    时间: 2024-11-21 16:12
光速蜗牛 发表于 2024-11-21 15:48
这个程序怎么用啊 需要用编程器刷进太阳能板子?

刷入esp32 c3,8-10元一块的开发板
作者: 光速蜗牛    时间: 2024-11-21 17:12
aec 发表于 2024-11-21 16:12
刷入esp32 c3,8-10元一块的开发板

以后要长期配合这个ESP32 C3用么
作者: aec    时间: 2024-11-21 17:35
光速蜗牛 发表于 2024-11-21 17:12
以后要长期配合这个ESP32 C3用么

楼主的代码配合esp32主要是为了能够使用2.0以上手机端app查看一些数据,当然也可以用2.0以下的,如果只用2.0以下的,只需淘宝上一个小的蓝牙模块就可以了,你可以看看楼主其它贴子或论其他坛友的贴子
作者: 光速蜗牛    时间: 2024-11-21 21:53
aec 发表于 2024-11-21 17:35
楼主的代码配合esp32主要是为了能够使用2.0以上手机端app查看一些数据,当然也可以用2.0以下的,如果只用 ...

谢谢回复,我现在加了蓝牙版了,只是没办法把电压调超过17v
作者: niceday    时间: 2024-11-21 22:39
std::string rxValue = pCharacteristic->getValue();错误,好象哪里有提过,我终于把arduio环境整起了,现在整哪个最新版
作者: 猪小呆    时间: 2024-11-21 22:54
niceday 发表于 2024-11-21 22:39
std::string rxValue = pCharacteristic->getValue();错误,好象哪里有提过,我终于把arduio环境整起了,现 ...

把std::string 改成String,库版本不一样导致的
String rxValue = pCharacteristic->getValue();

作者: 猪小呆    时间: 2024-11-21 22:55
niceday 发表于 2024-11-21 22:39
std::string rxValue = pCharacteristic->getValue();错误,好象哪里有提过,我终于把arduio环境整起了,现 ...

主楼的下载链接就是最新版,已支持ios
作者: kinpangtsai    时间: 2024-11-22 21:13
猪小呆 发表于 2024-11-21 22:55
主楼的下载链接就是最新版,已支持ios

怎么下载连接挂了兄弟
作者: 猪小呆    时间: 2024-11-22 22:45
kinpangtsai 发表于 2024-11-22 21:13
怎么下载连接挂了兄弟

没有挂,很正常啊:
https://wwwy.lanzouq.com/b0foxi9kf
作者: niceday    时间: 2024-11-23 09:43
在ios上测了一下,有蓝牙丢失现象,估计是esp32死机了,重新上电能再次联上。
作者: 猪小呆    时间: 2024-11-23 12:06
niceday 发表于 2024-11-23 09:43
在ios上测了一下,有蓝牙丢失现象,估计是esp32死机了,重新上电能再次联上。 ...

频繁出现还是偶发的?有什么规律吗,比如点了某个功能之后出现
作者: niceday    时间: 2024-11-23 15:08
猪小呆 发表于 2024-11-23 12:06
频繁出现还是偶发的?有什么规律吗,比如点了某个功能之后出现

没找到明显的规律,上午好好的,中午睡觉就连不上了,reset后又能联上了,用调试工具也看不到蓝牙,应该是死机了
作者: vip2128    时间: 2024-11-24 16:09
bl2420 的rx tx 接c3的20 21,有时会影响启动,卡在wifi连接上,串口打印.......,不知咋回事,
所以改了其它两个脚做软串口就正常
#include <SoftwareSerial.h>
SoftwareSerial myserial(5, 6);

void setup() {
   Serial.begin(9600);
   myserial.begin(9600);

-----------
Serial2全改myserial

//#include "HardwareSerial.h"
//HardwareSerial Serial2(0);  屏蔽

作者: szy912    时间: 2024-11-25 07:50
vip2128 发表于 2024-11-24 16:09
bl2420 的rx tx 接c3的20 21,有时会影响启动,卡在wifi连接上,串口打印.......,不知咋回事,
所以改了其 ...

这个就像修复BUG,发现问题,修复问题。我这没动力刷了试了。
作者: szy912    时间: 2024-11-25 08:13
vip2128 发表于 2024-11-24 16:09
bl2420 的rx tx 接c3的20 21,有时会影响启动,卡在wifi连接上,串口打印.......,不知咋回事,
所以改了其 ...

不要误会,我只是一直用蓝牙模块基本用不到更高版本没折腾。关注你们这研究精神,我这发电评论凑2段积分,发了老是审核怪难受的。
作者: nvy    时间: 2024-11-25 13:51
  问题多多:string' was not declared in this scope
作者: 猪小呆    时间: 2024-11-25 13:57
nvy 发表于 2024-11-25 13:51
问题多多:string' was not declared in this scope

把你的代码截图看一下
作者: nvy    时间: 2024-11-25 14:07
猪小呆 发表于 2024-11-25 13:57
把你的代码截图看一下

你上传的文档。。
作者: nvy    时间: 2024-11-25 14:10
[attach]2257496[/attach]
作者: 猪小呆    时间: 2024-11-25 14:10
nvy 发表于 2024-11-25 14:07
你上传的文档。。

报错信息里会有告诉你是哪行报的错,不会看就截图发上来,你这样发完全看不出来是哪里的问题
作者: 猪小呆    时间: 2024-11-25 14:14
nvy 发表于 2024-11-25 14:10

没看到报错信息,乱码看不懂什么意思
作者: nvy    时间: 2024-11-25 14:14
可能是2.3..3的版本问题
作者: nvy    时间: 2024-11-25 14:20
错误。。。
作者: 猪小呆    时间: 2024-11-25 14:22
nvy 发表于 2024-11-25 14:20
错误。。。

string错了,第一个字母要大写,改成String就行了
作者: nvy    时间: 2024-11-25 14:34
谢谢了。。。。
作者: confessor    时间: 2024-11-26 19:17
感谢二师兄分享

作者: nvy    时间: 2024-12-3 11:46
请教这个问题怎么解决
作者: 猪小呆    时间: 2024-12-3 12:21
nvy 发表于 2024-12-3 11:46
请教这个问题怎么解决

重新下载网盘里的程序
作者: eye51    时间: 2024-12-4 21:16
{:057:}{:057:}{:057:}{:057:}
作者: 核动力骡子    时间: 2024-12-5 09:10
厉害
作者: 158112239    时间: 2025-2-22 18:19
用了一段时间蓝牙连接,主力是ios下一个下来看看
作者: lovely0629    时间: 2025-2-24 12:27
感谢二师兄分享




欢迎光临 数码之家 (https://www.mydigit.cn/) Powered by Discuz! X3.4