HB M2S/M6S roaster TC4 data to websocket with WIFI
本人是HB(爱趣焙)M2S-e的用户,之所以有这个项目,是因为厂家配的无线连接软件功能比不上Artisan来的灵活、强大和跟更新迭代快。再加上之前所有的烘焙记录(狙击手M1)都是在Artisan的,所以个人还是偏向于使用Artisan 。HB虽然提供了Artisan方案,不过是有线的,还要搞个电脑再搞个数据线,太累赘了。本着平头哥的性格,不服就干!研究了一下HB的设计,Artisan采用了TC4 的协议,所以用linux+python+wifi方式来实现转码和无线传输并不是一个太难和太耗资源的事情。
- 将HB 系列的 USB输出的TC4协议的数据转化为websocket格式,再传输给artisan。
- 硬件部分都是采用无损式改造,也就是随时可以恢复成出厂的样子,(不影响卖价)最多就是需要换一些扎带来理线。
- 硬件零件都可以在X宝上买到。
- 由于使用的是linux+python+wifi的基本架构,所以硬件部分的是可以按照自己手上硬件来配置。其实理想的方案是直接连接USB接口的,只是我才疏学浅。。。。对于 USB HOST 这个协议了解不深,所以才凑合使用。后期还会在linux服务器上搞些其他功能,毕竟全志H3+512M的性能整点转码发送的采集数据什么还是绰绰有余得很。
- 基本上图方便用的都是root账号,要是有安全考的。对应的/root就改为自己的用户和策略走就好了。
- linux小主机,需要有USB接口。比较好的选择如下:
- Orangepi zero (推荐,有USB有wifi 插卡就可以了,记得要把散热器一并买了。官方是有一个套装的!)连接
- 友善 nano pi (有USB,没有Wi-Fi,需要自己接线,)
- 其他有USB 、有wifi、支持 Armbian的就可以了。
-
TF 卡 , 只要4GB以上就可以了。不过为了稳定,推荐大厂行车记录仪的那种卡。
-
USB数据线。 type A 方口 右弯。记住这个几个关键词就不会迷路。烘焙机主板的接口是用打印机那种 Type A 口,普通的直的会跟冷却风机怼不到一块去。必须用右弯头。
-
wifi天线。Orangepi zero 用的 IPEX-K 这个型号的天线,可以买 25cm长的 IPEX-K型号的延长线或者15cm长的粘贴式软天线都可以。延长线就接烘焙机主板上天线转接头。不过对于手残党来说,粘贴式天线会更好操作。 IPEX连接线连接 粘贴式天线连接
-
usb供电线。micro USB,双头 50CM长的。 micarUSB供电线连接
-
海绵双面胶、扎带、热熔胶
-
Armbian kernel 改kernel为5.10.60 以下 [固件下载连接]](https://www.armbian.com/orange-pi-zero/) 具体方法如下:
sudo armbian-config
- 菜单选择 system -> Other > 确认继续->kernel 选 5.10.43.然后让系统自己安装,完成后会自动重启。
- 再次进入
armbian-config
- 菜单选择 system -> Freeze 锁定内核,这样在apt upgrade 的时候不会误伤kernel
-
其他开发板的操作也是一样的流程。
-
python3 系统自带的是 3.9.2
-
pip3 可以用以下命令安装
sudo apt install python3-pip
-
需要安装的python库 :pyserial(默认自带的),asyncio,websockets,json,可以用以下命令安装
sudo pip3 install setuptools pyserial asyncio websockets
安装完成后检查是否安装成功
pip3 list
-
电脑上还需要一个Thonny 通过python(SSH)方式来上传代码、测试 还是有配置服务等等
Thonny python IDE ssh登陆远程python演示
-
设置固定的MAC地址: 查询wifi对应的MAC 地址
nmcli
输出结果 wlan0: connected to rainly "ST-Ericsson Wi-Fi" wifi (xradio_wlan), 12:81:9E:A2:A1:DE, hw, mtu 1500 //记录MAC 地址,下一个命令会有用执行这个命令来固定wifi网卡的MAC 地址
nmcli con modify "your SSID" wifi.cloned-mac-address 12:81:9:EA2:A1:DE
-
在
/lib/systemd/system/
新建HB_connect.service
所有路径都用绝对路径sudo nano /lib/systemd/system/HB_connect.service
输入以下内容
[Unit] Description=HB_connect_service
[Service] User=root Group=root
#这段非常重要,start.sh 是你开机要执行的shell 脚本,全部用绝对路径 ExecStart=/bin/bash /root/start.sh ExecStop=/bin/kill $MAINPID PrivateTmp=true
[Install] WantedBy=multi-user.target
保存 ctrl+s 关闭 ctrl+X
-
写个 /root/start.sh 脚本,用于启动HB_connect.py 的python3 程序
sudo nano /root/start.sh
复制黏贴以下内容
#!/bin/bash cd "/root"
#which python3 :/usr/bin/ /usr/bin/python3 HB_connect.py >> output_$(date +"%Y%m%d_%H%M%S").log
保存 ctrl+s 关闭 ctrl+X
-
赋予start.sh 文件夹读写权限,这一步非常重要
sudo chmod 777 -R *
sudo systemctl enable HB_connect.service
-
查看有无报错
sudo systemctl daemon-reload
sudo systemctl start HB_connect.service
sudo systemctl status HB_connect.service
如果显示不成功再执行
sudo systemctl start HB_connect.service
sudo systemctl status HB_connect.service
- 连接Artisan
- Artisna简单操作
- 配置文件见
/refer参考资料
里面的aset 文件。这导入artisan就OK了。