『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 141748|回复: 327

[经验分享] 精简下斐讯TC1固件

  [复制链接]

23

主题

302

帖子

2165

积分

论坛技术达人

积分
2165
金钱
1838
HASS币
110

活跃会员教程狂人

发表于 2019-4-25 09:30:48 | 显示全部楼层 |阅读模式
本帖最后由 cnk700i 于 2019-4-25 10:23 编辑

备注

  1. 排版不细调整了,如有问题可以去博客看。
  2. 把某大佬的zTC1固件根据自己使用习惯做了些(没什么用的)精简,当作部署开发环境教程看吧。

提醒回复用

并没有隐藏内容,如果觉得有用回复下帮忙顶贴。


游客,如果您要查看本帖隐藏内容请回复


1. 改动说明

基于原固件v0.10进行修改:

  • 设定WIFI和MQTT设置直接烧录,懒得再装APP了
  • 去掉UDP通信功能,只保留MQTT通信功能
  • 去掉插座命名、定时功能,这块用Home Assistant来管理
  • MQTT通信协议根据自己使用习惯进行了调整:调整topic、增加上线下线通知、使用qos
  • 把编译的warning警告基本去掉了

WARING:因为精简掉UDP通信协议,使用上会造成不方便,精简带来的好处实际也不明显,请自行权衡。


2. 编译环境

使用docker,docker安装方法传送门

  • 拉一个python2.7的镜像

    docker pull python:2-slim
  • 启动容器并进入容器

    #自己调整主机映射目录/home/mico;容器内工程目录设置为/workdir,可根据喜好调整,但注意后续命令也要调整。
    docker run -it --name mico -v /home/mico:/workdir python:2-slim bash

    DEBUG:后续进入容器可以用命令docker exec -it mico bash,更多docker命令介绍传送门

  • 更新源、安装软件

    #容器bash
    apt update && apt install git wget lib32ncurses5

    INFO:一个坑,不安装lib32ncurses5库编译会报"arm-none-eabi-gcc: not found"错误。

  • python bin

    ln -s /usr/local/bin/python /usr/bin/python

    INFO:一个坑,不设置软链接编译会报"/usr/bin/python: not found"错误。

  • 安装MiCo编译环境(mico-cube、MiCoder)

    #容器bash
    pip install mico-cube && \
    cd /workdir && \
    wget http://firmware.mxchip.com/MiCoder_v1.1.Linux.tar.gz && \
    tar -zxf MiCoder_v1.1.Linux.tar.gz && \
    rm MiCoder_v1.1.Linux.tar.gz && \
    mico config --global MICODER /workdir/MiCoder

    DEBUG:mico-cube是MXCHIP的MiCO项目开发管理工具包;MiCoder是MiCO编译和调试系统必须的工具软件包。


3.编译固件

  • 创建一个空项目,名为TC1,自己开发则自定义

    #容器bash
    cd /workdir && \
    mico new TC1 --create-only

    INFO:命令执行完后,会在当前目录生成名称为TC1项目目录。

  • 添加mico-os组件

    #容器bash
    cd /workdir/TC1 && \
    mico add https://code.aliyun.com/mico/mico-os.git/#6c465211d3ff8797cd835e400ec54a06530dd476

    INFO:需要在项目目录下执行。

  • 添加项目代码,代码目录在项目目录下的项目同名目录,/workdir/TC1/TC1,自己开发则自定义

    #容器bash
    git clone https://github.com/cnk700i/tc1_mqtt.git && \
    mv tc1_mqtt/TC1 . && \
    rm tc1_mqtt -r

    DEBUG:下载zip解压后再拷贝进去也可以。

  • 设置WiFi及MQTT,修改项目代码main.h文件

    //自定义
    #define CONFIG_SSID "wifi_ssid"                 //WiFi名称
    #define CONFIG_USER_KEY "wifi_password"         //WiFi密码
    #define CONFIG_MQTT_IP "mqtt_ip"                //MQTT服务器IP
    #define CONFIG_MQTT_PORT 1883                   //MQTT服务器端口     
    #define CONFIG_MQTT_USER "mqtt_user"            //MQTT用户名
    #define CONFIG_MQTT_PASSWORD "mqtt_password"    //MQTT密码
    #define STATE_UPDATE_INTERVAL 10000             //功率上报间隔,单位ms
    #define MQTT_CLIENT_SUB_TOPIC   "cmnd/%s"       //命令控制接收topic,%s代表名称,默认tc1_xxxxxxxxxxxx(xxx为mac地址)
    #define MQTT_CLIENT_PUB_TOPIC   "stat/%s"       //状态信息topic,%s代表名称,默认tc1_xxxxxxxxxxxx(xxx为mac地址)
  • 编译项目代码

    #容器bash
    #/workdir/TC1
    mico make TC1@MK3031@moc

    4.刷固件

  • 编译成功后的固件文件

INFO:主机映射目录/home/mico/TC1/build/TC1@MK3031@moc/binary内可找到固件。

  • 线刷方法见原固件教程的固件烧录
  • OTA方法见原固件教程的通信协议

    5.小结

  • MiCo开发平台比之前DC1用的ESPHome容易上手好多,搭建环境也简单些,遇到一些小坑还是比较快就解决了。
  • C语言看着真的头大,又感觉到了被指针支配的恐惧,还好原固件作者代码的业务逻辑还是比较清晰,于是就简单地改一改。


评分

参与人数 1金钱 +20 HASS币 +20 收起 理由
+ 20 + 20 楼主厉害!感谢分享!

查看全部评分

博客 https://ljr.im
回复

使用道具 举报

5

主题

166

帖子

1395

积分

金牌会员

Rank: 6Rank: 6

积分
1395
金钱
1229
HASS币
0
发表于 2019-5-10 21:28:52 | 显示全部楼层
作为一名一直以来的伸手党回复一下 ,感谢大神制作精简固件


建议增加配置NTP服务器的地方,且尽量使用自己的(大部分人的路由器应该都有NTP服务吧)或者阿里、腾讯的NTP服务器 【我自己测试编译通过,因为比较晚了没刷机,喜欢玩的可以参考试试,等明天有时间我自己刷机测一下】

附代码修改:
    main.h:在“STATE_UPDATE_INTERVAL”后增加一行“#define NTP_SERVERS "ntp1.aliyun.com,ntp6.aliyun.com,time1.cloud.tencent.com,time2.cloud.tencent.com,cn.ntp.org.cn"”
    user_rtc.c:修改程序逻辑,从“ NTP_SERVERS”内读取NTP服务器地址
附图:
01.png

02.png

03.png


再次强调,我只是测试编译通过了,还没刷,等明天有时间刷了试试,不喜勿喷。请自行评估风险。祝各位折腾愉快。

评分

参与人数 1金钱 +20 收起 理由
+ 20 赠人玫瑰,手留余香!

查看全部评分

回复

使用道具 举报

19

主题

598

帖子

4073

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4073
金钱
3460
HASS币
40
发表于 2019-4-25 09:50:08 | 显示全部楼层
大神又发帖子了,这波TC1给力!
回复

使用道具 举报

2

主题

414

帖子

2388

积分

金牌会员

Rank: 6Rank: 6

积分
2388
金钱
1974
HASS币
0
QQ
发表于 2019-4-25 09:59:57 | 显示全部楼层
请问 大雕 HASS 可以跟手机APP 一样有定时或倒计时功能吗?
回复

使用道具 举报

13

主题

238

帖子

3296

积分

论坛元老

Rank: 8Rank: 8

积分
3296
金钱
3058
HASS币
0
发表于 2019-4-25 10:06:42 | 显示全部楼层
看看 感谢大佬提供相应教程
回复

使用道具 举报

123

主题

4629

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16065
金钱
11351
HASS币
45
发表于 2019-4-25 10:09:46 | 显示全部楼层
亲,mico平台我一直没搞定,有空请教下
回复

使用道具 举报

123

主题

4629

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16065
金钱
11351
HASS币
45
发表于 2019-4-25 10:10:57 | 显示全部楼层
貌似本贴就有环境搭建,厉害厉害,我来学习~
回复

使用道具 举报

23

主题

302

帖子

2165

积分

论坛技术达人

积分
2165
金钱
1838
HASS币
110

活跃会员教程狂人

 楼主| 发表于 2019-4-25 10:16:27 | 显示全部楼层
[email protected] 发表于 2019-4-25 09:59
请问 大雕 HASS 可以跟手机APP 一样有定时或倒计时功能吗?

定时用自己做的插件,不过高版本插件用不了的。定点执行用自动化也够了。
博客 https://ljr.im
回复

使用道具 举报

23

主题

302

帖子

2165

积分

论坛技术达人

积分
2165
金钱
1838
HASS币
110

活跃会员教程狂人

 楼主| 发表于 2019-4-25 10:37:01 | 显示全部楼层
Jones 发表于 2019-4-25 10:10
貌似本贴就有环境搭建,厉害厉害,我来学习~

冏大准备开发什么新产品
博客 https://ljr.im
回复

使用道具 举报

123

主题

4629

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16065
金钱
11351
HASS币
45
发表于 2019-4-25 10:46:34 | 显示全部楼层
cnk700i 发表于 2019-4-25 10:37
冏大准备开发什么新产品

先学习下庆科芯片,产品还木有想好
回复

使用道具 举报

4

主题

531

帖子

3919

积分

论坛元老

Rank: 8Rank: 8

积分
3919
金钱
3378
HASS币
120
发表于 2019-4-25 11:49:51 | 显示全部楼层
感谢分享,原版用了很长时间了,挺稳定
建议把主键单击逻辑也删了,用处也不大,接入ha还能多个按钮
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-11 11:12 , Processed in 0.064442 second(s), 39 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表