引言
博主有一台闲置的小米路由器MINI,刷入了OpenWRT的系统,插了U盘作为小型共享的小文件的服务器
前期准备
路由器的网口灯,实质上就是一个非常理想的GPIO口,经过一番探索以后,发现可以利用这些GPIO口做一些控制端口,用来驱动继电器,开关下台灯跟电脑都非常方便
路由器型号 | 小米路由器Mini |
操作系统 | OpenWRT |
CPU | MT7620A |
网口 | LAN1 |
GPIO编号 | 41 |
执行命令
GPIO的编号需要查询芯片手册得到,也可使用命令
root@202_mini:~# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-23, parent: platform/10000600.gpio, 10000600.gpio:
gpiochip1: GPIOs 24-39, parent: platform/10000638.gpio, 10000638.gpio:
gpio-24 ( |blue:status ) out lo ACTIVE LOW
gpio-26 ( |yellow:status ) out hi ACTIVE LOW
gpio-29 ( |red:status ) out hi ACTIVE LOW
gpio-30 ( |reset ) in hi
gpiochip2: GPIOs 40-71, parent: platform/10000660.gpio, 10000660.gpio:
gpio-40 ( |green:lan2 ) out hi ACTIVE LOW
gpio-41 ( |green:lan1 ) out hi ACTIVE LOW
gpio-44 ( |green:wan ) out hi ACTIVE LOW
在Openwrt下执行,如果看到网口LED灯闪烁即调试成功,一般低电平有效
rmmod leds_gpio
echo 41 > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio41/direction
echo 1 > /sys/class/gpio/gpio41/value
sleep 1
echo 0 > /sys/class/gpio/gpio41/value
sleep 1
到这里基本就成功了
接下来就是利用这个IO口来搞事情了,如果是觉得不方便,可以直接接到8芯的网口的脚位上,然后用网线导出,供电线的话,不建议用网口的,会损坏CPU,这些数据线都是直接进CPU的
小米路由器Mini内部引脚图
箭头位置是网口LED引脚,3个网口,就是3个GPIO口
优势
使用小米路由器Mini操控有几个明显的好处
1. 编程的空间巨大,有许多现成的库,支持多种编程语言 Bash C Golang.....
2. MT7620功耗特别低,我特意去掉了5G芯片,只保留2.4G芯片,通过2.4G中继,甚至不要网线连接上级路由器
3. 支持U盘存储共享文件
4. GPIO口多,实际可利用的GPIO口更多,只是没有导出,可能需要飞线
5. 高频的CPU跟满血的2.4G, 可以共享给其他设备,作为无线网关
6. 理论上,只要有足够的IO口,模拟I2C跟SPI协议是非常方便的
7. 现成的SSH,更新程序维护都非常方便
8. 价格便宜~~~~~,现在购买应该能到20以内
生命不息,折腾不止