最近尝试使用arduino加上HLK-RM04WIFI板进行物理网尝试。其难点在于RM04wifi模块的设置。由于涉及到的技术点比较多,有各种组合,手册写的也不是很清楚,所以这个模块进行了比较仔细的尝试,取得成功,现把笔记共享一下。
我用的板子是:http://item/item.htm?spm=a1z09.2.9.88.seicHt&id=25481836402
1、wifi设置:(1)按复位键是可以恢复出厂设置的,6秒以上,灯没什么反应应浏览器登录192.168.16.254以后,改成ap模式,浏览器就找不到模块了,按了复位就又能找到了(2)模块恢复出厂设置,连接rs232, 手机采用easyTCP,链接192.168.16.254,端口8080; PC使用串口调试小助手1.3(波特率115200,跟模块里面设置的串口参数一样); 实现互通(3)HLK-RM04串口配置工具好像不能用, 找不到设备; 能发出at信息,但是设备没反应; 手机发的信息也无法显示;(4)串口&TCP/UDP调试工具好像不能用, 连接串口失败 wifi成功接收,tcp/client模式(串口调试小助手1.3发,软件按照自己的tcp功能设置client/sever,如果模块设成server,那么串口软件就是client),192.168.16.254;8080 wifi发也可以,串口调试小助手1.3收,(6)使用设备配置工具前要短按reset按钮(1秒以内),退出透传状态,然后就成功了 串口&TCP/UDP调试工具还是不能用---串口打不开!!(7)用pc串口和手机串口进行对传,不能加arduino底板,加了以后就不通;设备配置工具也不能用;(8)透传模式也不能对通!
二、wifi和arduino结合(1)底板串口程序--正常(拔掉wifi扩展版)(2)插上扩展版,同样的程序,扩展板加电以后,底板也亮,说明电源是互通的。ide串口监视器显示跟没有扩展板时一样。(3)手机连接wifi,看到的跟串口监视器的一样----说明wifi板是透传了底版的serial口;(4)修改程序下载出了问题,不能结束!(5)开关拨到c,出错,com13被占用!(6)再拨回去也是被占用!(7)断电,然后只插底板usb上传程序,成功!wifi加电,正常(8)在做,在传程序前要把扩展版断电,不然不成功!(9)在传程序时,要把开关拨到c就成功,必须提前拨,如果忘了,没拨就尝试上传就会失败,尝试一次后再拨就会出现(5)的现象。
三、物联网试验:注册yeelink,设置传感器;调试程序
1、要把模块设置成wifi 的client,3、路由器只是过路,互联网也是过路。4、似乎需要知道yeelink的ip和端口号???好像是5、例子:查询yeelink的ip,建立连接:http://blog.csdn.net/xukai871105/article/details/170963196、例子:以太网http://blog.yeelink.net/?p=94需要使用代码建立连接7、端口号都是80!80是tcp中http的端口号8、yeelink http格式:http://blog.csdn.net/xukai871105/article/details/86073389、似乎手动设置模块-----采用client模式,远端的端口使用yeelink的ip,端口号80,做死!!(http是用于寻址和指定类型的,接死以后就不用http了,直接往端口里送get等命令就好了)10、如果更自动就需要连接,自动取到ip,然后向端口发请求。11、www.yeelink.net的ip为:42.96.164.52
依次打开——开始——运行——输入cmd——然后输入ping 你要查询的网站名字。看看中间会有ip地址,这个ip地址就是网站ip12、shuanghu,加密方式wep完全成功0、扩展版插uno上1、wifi模块恢复出厂设置,电脑连接serial-wifi,12345678;2、用浏览器登录192.168.16.254,admin,admin3、设置无线网卡模式,搜索家里的无线路由器,设置接入密码4、设置tcp---client模式,设置远端ip:42.96.164.52;端口号805、暂不应用6、编译程序下载,下载前将扩展版开关放在传输程序模式(或者在插扩展版之前就下好程序,拔掉usb,再插扩展版)7、应用wifi模块的设置8、打开串口监视器,看看上传数据是否正确9、打开www.yeelink.net,登录,找到那个传感器,观察http://www.yeelink.net/user/devices/1053110、成功
代码:(没有传感器,上传一个循环的1-10的数字)int i;
//for yeelink api
#defineAPIKEY"*******" //改为自己的
#define DEVICEID ****//改为自己的
#define SENSORID ****//改为自己的
void postData(int thisData) {
Serial.print("POST /v1.0/device/");
Serial.print(DEVICEID);
Serial.print("/sensor/");
Serial.print(SENSORID);
Serial.print("/datapoints");
Serial.println(" HTTP/1.1");
Serial.println("Host: api.yeelink.net");
Serial.print("Accept: *");
Serial.print("/");
Serial.println("*");
Serial.print("U-ApiKey: ");
Serial.println(APIKEY);
Serial.print("Content-Length: ");
intthisLength = 10 + getLength(thisData);
Serial.print(thisLength);
Serial.println();
Serial.println("Content-Type:application/x-www-form-urlencoded");
Serial.println();
Serial.print("{"value":");
Serial.print(thisData);
Serial.println("}");
}
int getLength(int someValue) {
int digits = 1;
int dividend = someValue /10;
while (dividend > 0) {
dividend =dividend /10;
digits++;
}
return digits;
}
void setup(){
Serial.begin(115200);
}
void loop() {
for(i=1;i<10;i++){
postData(i);
delay(5*1000);
}
}
一、物联网:***http://www.guokr.com/blog/746985/http://www.leikeji.com/thread-64-1-1.htmlhttp://v.youku.com/v_show/id_XNTY4Mzk4NTc2.html
二、串口调试手册:http://wenku.baidu.com/link?url=1U4JnCUA0eWfQlUnCSpQZAixrcnZu72saaOhfHERxL16un6NSXn2otJ4Fie8wwBvY1ySxAsUdXBF-eoZw_MJw4W51vop3L9ryXkql7DHau_
使用心得:http://blog.csdn.net/shenzhonglaoxu/article/details/25738375
三、关于扩展版:
http://item/item.htm?spm=a1z10.5.w4002-1919033899.34.vHV760&id=25481148978引脚说明:
电源:当没有Arduino时,可以使用适配器供电(5-12V)
RS232:接PC串口或者USB转串口;
串口:另外一路向模块通信的串口
开关:“O”状态可以用于下载Arduino程序,免插拔“C”状态用于正常通信;
板子上的复位按键用于复位核心板,另外一个按键为扩展使用。
四、模块退出透传模式:http://www.hlktech.com/ch/news_show.asp?newsid=38
鉴于有很多客户不太清楚模块的工作方式,在这里做简要说明。
模块有自动工作模式和AT指令模式。
出厂默认是自动工作模式,要想用我们的UART-WIFI.EXE扫描到模块,必须工作在AT指令模式下。这个时候要从自动工作模式切换到AT指令模式。
方法如下:
UART-WIFI.EXE左下角添加了一个“退出”按钮,用户上电后等待5秒钟左右,点退出即可
或者给模块上电,等待5秒钟左右,用串口调试助手发送:“+++”,注意没有回车没有换行,此时会返回+OK,这个时候就会退出透明传输模式进入AT指令模式,然后再用我们的配置管理程序扫描模块,应该可以扫描到了。
看下用UART-WIFI.EXE为什么找不到模块的问题?
1.串口是否设置对 是否用的是电脑本身的物理串口,一般不要用USB转串口
2. 串口是否选择对了,波特率是否设置对,是否进去参数设置修改了波特率
3.是否勾选了:启用自动工作模式。如果勾选了这个,就进入了透传。此时串口是不接受AT指令的,需要退出透明传送才行。退出透明传输的方法:重新给模块上电,等待5秒钟左右,用串口调试助手发送:“+++”,返回+OK,此时已经退出了透明传输模式,然后再用我们的配置管理程序扫描模块,应该可以扫描到了。
4.如果已经配置了WAP加密的话要等待10秒钟才能找到模块
5.是否勾选了:启用自动工作模式。如果勾选了这个,就进入了透传。??
有问题请发送邮件到info@hlktech.com
如果以上方法还是解决不了,请参考说明书114页的Q12先恢复出厂值,再退出透明模式五、rm04板客户端模式的设置http://www.docin.com/p-650701841.html
六、参考:专用板?手机直控:http://www.docin.com/p-677434903.html
官网:http://www.hlktech.com/ch/news.asp几个心得:http://blog.csdn.net/shenzhonglaoxu/article/details/25738375rm04 arduino 库和例子:https://github.com/chunlinhan/WiFiRM04