树莓派已经第二次死机了,SSH连不上,没有找到相应的解决方案,准备换个TF卡,换个系统试试。顺便买了个U盘,准备折腾一下路由器。
0.背景
树莓派已经连续两次死机了,这样的感觉很不好。这让我有了折腾路由器的想法。所以准备折腾下路由器。之前找了个金士顿的旧的U盘,说读写速度不够,不给我折腾。然后路由器的固件版本也不够,所以都得升级下。这边是路由器的固件地址。升级完成之后,开始安装相关软件。发现U盘读写速度不够是唬人的。
Entware
This is a software repository for network attached storages, routers and other embedded devices.
Browse through 2500+ packages for different platforms.
See how to use it.
Feel free to ask for new packages or report any bugs you’ve found.
开始安装Entware
,链接在这,刷了官改后,里面有相关的插件可以直接拿来用,省去了自己安装的痛苦。安装完成之后,安装MQTT,接着安装Python,安装完成之后,把代码移植过来就Okay了。
1.实战
a.安装MQTT
opkg install mosquitto mosquitto-client libmosquitto
mosquitto -c /tmp/mnt/sda/entware/etc/mosquitto/mosquitto.conf -d
修改mosquitto.conf,不加IP地址的话会导致连不上的
allow_anonymous false
listener 1883 192.168.xxx.x
password_file /tmp/mnt/sda/entware/etc/mosquitto/pwfile
b.安装Pyhton以及相关模块
opkg install python3
opkg install python3-requests
opkg install python3-lxml
软件包中没有mqtt相关的模块,所以后面准备通过命令行进行推送。
c.编写推送脚本
cd /opt/home
# get push info
echo "gen push data"
data=$(python info.py)
echo $data
echo "start to push data"
# start push data to bafa
mosquitto_pub -d -h bemfa.com -p 9xx1 -t "pushbafa" -i "XXXXXXXXXXX" -m "$data"
echo "push success"
d.添加定时任务
发现路由器里没有crontab这个命令,翻看了一下其他插件的定时做法,发现cru
这个命令。所以就用这个来个定时,还是每分钟执行,命令格式和crontab很像
cru a push_info "* * * * * /opt/home/push.sh > push.log"
到这,上面的就部署好了。
观察了一下系统资源使用情况,以前风平浪静,现在终于泛起了波澜。
e.安装Node-Red
opkg install node
opkg install node-npm
opkg install make
npm install -g --unsafe-perm node-red
安装过程有报错,但是Node-Red居然可以用,看了报错这个应该是可选的,后续如果用到了估计就会报错了。记录一下错误日志。
这个后续看看是啥原因。
安装完成把之前的通知啥的都安排上了。希望这次能持久的运行下去哈。
2.结语
这次搞这个还是踩了一些坑的,但是好在最后都搞定了。世上无难事,只怕有心人。坚持下去就会成功的。哎呀,又鸡汤了。后面看看有没有别的可以折腾的。写着写着,发现Typora提示更新的时候,在Beta版之后就要开始收费了。