V1.5: 新增SIM卡号ICCID读取与上报(4G初始化AT+ICCID,MQTT OK后随pow上报,标识符iccid)
This commit is contained in:
parent
01b5ab0e44
commit
ac2aca4286
Binary file not shown.
|
|
@ -228,6 +228,8 @@ static int cat_wait_cgatt_attached(int max_wait_s) {
|
|||
#define CAT_BAUD_TARGET 921600u
|
||||
#define CAT_BAUD_DEFAULT 115200u
|
||||
|
||||
static char s_iccid[24] = {0}; /* SIM 卡号,MQTT OK 后上报平台 */
|
||||
|
||||
static int cat_connect_network(void) {
|
||||
log_info("> 4G: 网络...");
|
||||
g_net_ui_phase = NET_UI_4G_AT;
|
||||
|
|
@ -284,6 +286,24 @@ static int cat_connect_network(void) {
|
|||
return -1;
|
||||
}
|
||||
|
||||
/* 读取 SIM 卡号 ICCID(物联网卡套餐管理:平台可查卡号缴费) */
|
||||
{
|
||||
s_iccid[0] = 0;
|
||||
if (catSendCmd("AT+ICCID", "+ICCID:", 1, 10) == 0) {
|
||||
char *p = strstr((char *)U2_CopyBuff, "+ICCID:");
|
||||
if (p) {
|
||||
p += 7;
|
||||
while (*p == ' ') p++;
|
||||
int n = 0;
|
||||
while (p[n] >= '0' && p[n] <= '9' && n < 20) n++;
|
||||
memcpy(s_iccid, p, n);
|
||||
s_iccid[n] = 0;
|
||||
}
|
||||
}
|
||||
if (s_iccid[0]) log_info("> 4G: ICCID %s", s_iccid);
|
||||
else log_warn("> 4G: ICCID 读取失败");
|
||||
}
|
||||
|
||||
if (cat_wait_cgatt_attached(30) != 0) return -1;
|
||||
|
||||
/* 信号质量检测:AT+CSQ → +CSQ: rssi,ber(rssi 0~31,99=未知/无信号)。
|
||||
|
|
@ -761,6 +781,11 @@ void air780e_init(void) {
|
|||
sprintf(pub, "AT+MPUB=\"/iot/data/up/%s\",0,0,\"{\\22header\\22:\\22iot.prop.post\\22,\\22body\\22:{\\22pow\\22:1}}\"", MqttInfoStr.ClientID);
|
||||
CAT1_printf("%s", pub);
|
||||
HAL_Delay(50);
|
||||
if (s_iccid[0]) {
|
||||
sprintf(pub, "AT+MPUB=\"/iot/data/up/%s\",0,0,\"{\\22header\\22:\\22iot.prop.post\\22,\\22body\\22:{\\22iccid\\22:\\22%s\\22}}\"", MqttInfoStr.ClientID, s_iccid);
|
||||
CAT1_printf("%s", pub);
|
||||
HAL_Delay(50);
|
||||
}
|
||||
return;
|
||||
}
|
||||
log_warn("> 4G: MQTT 失败,重试 %d", retry);
|
||||
|
|
|
|||
|
|
@ -6,8 +6,12 @@
|
|||
|
||||
/*===== 用户配置区 =====*/
|
||||
/* 固定 WiFi 凭据:优先尝试连接的热点;连不上(60s)则进 Smart Config 智能配网 */
|
||||
#define WIFI_SSID "TP_Link-02" /* TODO: 輕흙미땍 WiFi 츰냔 */
|
||||
#define WIFI_PASS "zxcvbnmm112" /* TODO: 輕흙미땍 WiFi 쵱쯤 */
|
||||
#define WIFI_SSID "OrayBox-6B0E" /* TODO: 輕흙미땍 WiFi 츰냔 */
|
||||
#define WIFI_PASS "nky20192006" /* TODO: 輕흙미땍 WiFi 쵱쯤 */
|
||||
|
||||
|
||||
//#define WIFI_SSID "TP_Link-01" /* TODO: 輕흙미땍 WiFi 츰냔 */
|
||||
//#define WIFI_PASS "zxcvbnmm112" /* TODO: 輕흙미땍 WiFi 쵱쯤 */
|
||||
|
||||
//#define WIFI_SSID "TP_Link" /* TODO: 填入固定 WiFi 名称 */
|
||||
//#define WIFI_PASS "zxcvbnm888" /* TODO: 填入固定 WiFi 密码 */
|
||||
|
|
|
|||
|
|
@ -337,7 +337,8 @@ W25Q64 外部 Flash(8MB):
|
|||
| `sw1` / `feeding` | 第一路继电器状态 | 1=投喂中,0=停止;无秤模式下两字段**同时上报**,平台两个开关同步刷新 |
|
||||
| `sw2~sw4` | 备用继电器状态 | 0/1 |
|
||||
| `pow` | 电量状态 | 1=正常,0=低电量 |
|
||||
| `energy` | 累计消耗电量 | HLW8032 计量,单位 kWh,两位小数,联网后每分钟上报 |
|
||||
| `energy` | 累计消耗电量 | HLW8032 计量,单位 kWh,两位小数(>10W 每 30s,否则首次+开关切换) |
|
||||
| `iccid` | SIM 卡号 | 仅 4G 通道,MQTT 连上后随 pow 上报一次,用于物联网卡套餐查询缴费 |
|
||||
| `GPS` | 定位坐标 | 仅 4G 通道(Air780EG),GCJ-02 高德坐标系,格式 `"经度,纬度"`,每 5 分钟上报 |
|
||||
|
||||
> 注:`zero`(剩余料重)与 `onceWt` 为称重模式专用字段——`PRODUCT_WITH_FEED_SCALE=0` 时状态上报不携带这两个字段,平台下发设置会收到 `no scale on this device` 拒绝应答。
|
||||
|
|
|
|||
|
|
@ -133,3 +133,5 @@
|
|||
- 修复 4G MPUB 转义错误:`` 误写为 C 八进制 ``(=0x12 字节),energy/pow/指令应答
|
||||
共 8 处独立报文平台收不到(上电能收到是因为状态大报文转义本来就对)
|
||||
- OLED 欢迎页按产品模式显示标题;运行时间改 天:时:分 格式
|
||||
- 新增 SIM 卡号上报:4G 初始化 SIM 就绪后 AT+ICCID 读卡号,MQTT OK 后随 pow 上报平台
|
||||
(标识符 iccid,字符串;平台物模型加字符串字段即可,便于物联网卡套餐到期查询缴费)
|
||||
|
|
|
|||
Loading…
Reference in New Issue