开始玩WRT
为了脱机下载
以前在路由器上玩过一段时间
大概了解是怎么回事
这次上手相对比较快
先把Mico挂上路由器吧
家里的网络比较复杂
楼上的AP,家里路由直接做的Reapter,其他模式用不了,好奇怪
所以参数只能在终端里面看了
网络拓扑:
AP--路由器(中继)--Micro的RJ45以太网口
|
PC
把以太网口映射为wan口
vi /etc/config/network
改成这货:
config interface 'lan' option ifname 'eth0.1' option force_link '1' # option type 'bridge' option proto 'dhcp' # option ipaddr '192.168.1.1' # option netmask '255.255.255.0' # option ip6assign '60' # option macaddr '00:0c:43:76:20:77' config interface 'wan' option ifname 'eth0.1' option proto 'dhcp' option macaddr '00:0c:43:76:20:78'
注释掉Lan口的桥接
设置为dhcp
然后
/etc/init.d/network restart
重启网络
终端里面ifconfig
发现eth0.1的IP地址
pc端果断一ping,会丢包。。。。
试试局域网的telnet
串口终端ping一下雅虎
外网似乎也正常
OPKG update一下
苦逼的事情发生了,404错误,没有这个页面
ping了一下openwrt.org,还是能通的,估计是更新源换了吧
本来还想着用无线作为station直连路由
测试发现要么局域网能通就上不了外网
要么能上外网,局域网不同
不倒腾了,有线就有线吧
先到这。。。。。
WRT与duino之间有个转接板
对这货蛮感兴趣的
一直想研究一下俩货之间怎么通信
测试了一下,蛮好玩的
估计视频小车之类也是这么做的吧
猪脚是ser2net
看名字就知道是把串口数据转发到以太网
先上ipk包回复可见,哇咔咔
一步步看看吧
撸主把ipk拷进U盘,进控制台安装
不用上传工具了
挂载U盘
[root@PandoraBox:/root]#mount /dev/sda1 /mnt/
安装ser2net
[root@PandoraBox:/root]#opkg install /mnt/ser2net.ipk Installing ser2net (2.7-2) to root... Configuring ser2net.
配置ser2net
[root@PandoraBox:/root]#vi /etc/ser2net.conf
文件打开是一大串说明,在比较靠下的地方找到
2001:raw:600:/dev/ttyS1:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS
改成这货,流控啥的统统干掉,撸主的串口是ttyS1
2001:raw:600:/dev/ttyS1:115200 NONE 1STOPBIT 8DATABITS
命令含义自行度娘脑补
不知道自己的串口号?
echo test > /dev/ttySx
看看x是多少,才会在终端窗口显示test
手动运行ser2net
[root@PandoraBox:/root]#ser2net
其实ser2net这货不会开机自动运行的
得手动配置
办法很多,个人喜欢编辑rc.local
[root@PandoraBox:/root]#vi /etc/rc.local
然后在exit0以前加入运行命令
# Put your custom commands here that should be executed once # the system init finished. By default this file does nothing. ser2net exit 0
下面看聊效
用一个以太网调试工具
连接WRT的ip+ser2net定义的端口号2001
调试工具发送,串口终端显示
串口终端输入,调试工具右下窗口显示
试试发送一个文本文件
还行,显示正常
顺便给duino写了一段
来测试一下WRT和duino的串口通信
unsigned long time; void setup() { Serial.begin(115200); } void loop() { char shit; int sensorValue = analogRead(A0); float voltage = sensorValue * (5.0 / 1023.0); if(millis()-time>1000){ Serial.print("The voltage is:"); Serial.println(voltage); time = millis(); } while(Serial.available()){ if(Serial.read()=='1') {Serial.println("MicroDuino get the date!!!");} } }
大概意思就是不断查询串口是否收到字符1
收到了就返回 MicroDuino get the date!!! 这串字符
同时每1s发送一次A0口的读数
转接板上跳线也要配置
就是红框里面这货,配置成0101
用于MT6720与644p串口通信
看看效果
调试助手通过TCP每1s发送一个字符1给WRT
WRT通过串口转发给duino
duino收到后,回复相关特定字符串
不发送给WRT
duino每秒采集的电压值发给WRT
WRT只将这些数据返回给调试助手
先到这,7饭.
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |