极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 21181|回复: 3

arduino用HLK-RM04 wifi模块进行yeelink物联网尝试

[复制链接]
发表于 2014-6-11 11:14:19 | 显示全部楼层 |阅读模式
最近尝试使用arduino加上HLK-RM04 WIFI板进行物理网尝试。
其难点在于RM04wifi模块的设置。由于涉及到的技术点比较多,有各种组合,手册写的也不是很清楚,所以这个模块进行了比较仔细的尝试,取得成功,现把笔记共享一下。

http://blog.sina.com.cn/s/blog_54bf41d30101qpq4.html
回复

使用道具 举报

 楼主| 发表于 2014-6-12 11:27:13 | 显示全部楼层
我用的板子是: http://item.taobao.com/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/17096319
6、例子:以太网 http://blog.yeelink.net/?p=94 需要使用代码建立连接
7、端口号都是80!80是tcp中http的端口号
8、yeelink http格式: http://blog.csdn.net/xukai871105/article/details/8607338  
9、似乎手动设置模块-----采用client模式,远端的端口使用yeelink的ip,端口号80,做死!!(http是用于寻址和指定类型的,接死以后就不用http了,直接往端口里送get等命令就好了)
10、如果更自动就需要连接,自动取到ip,然后向端口发请求。
11、www.yeelink.net的ip为:42.96.164.52

依次打开——开始——运行——输入cmd——然后输入ping 你要查询的网站名字。看看中间会有ip地址,这个ip地址就是网站ip
12、shuanghu,加密方式wep

完全成功
0、扩展版插uno上
1、wifi模块恢复出厂设置,电脑连接serial-wifi,12345678;
2、用浏览器登录192.168.16.254,admin,admin
3、设置无线网卡模式,搜索家里的无线路由器,设置接入密码
4、设置tcp---client模式,设置远端ip:42.96.164.52;端口号80
5、暂不应用
6、编译程序下载,下载前将扩展版开关放在传输程序模式(或者在插扩展版之前就下好程序,拔掉usb,再插扩展版)
7、应用wifi模块的设置
8、打开串口监视器,看看上传数据是否正确
9、打开www.yeelink.net,登录,找到那个传感器,观察 http://www.yeelink.net/user/devices/10531  
10、成功


代码:(没有传感器,上传一个循环的1-10的数字)
int i;

//for yeelink api
#define APIKEY     "*******" //改为自己的
#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: ");
   
    int thisLength = 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.html
http://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

三、关于扩展版:
引脚说明:

电源:当没有Arduino时,可以使用适配器供电(5-12V)

RS232:接PC串口或者USB转串口;

串口:另外一路向模块通信的串口

开关:“O”状态可以用于下载Arduino程序,免插拔“C”状态用于正常通信;

   板子上的复位按键用于复位核心板,另外一个按键为扩展使用。



http://item.taobao.com/item.htm?spm=a1z10.5.w4002-1919033899.34.vHV760&id=25481148978


四、模块退出透传模式: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.是否勾选了:启用自动工作模式。如果勾选了这个,就进入了透传。??

有问题请发送邮件到[email protected]

如果以上方法还是解决不了,请参考说明书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/25738375
rm04 arduino 库和例子:https://github.com/chunlinhan/WiFiRM04
回复 支持 反对

使用道具 举报

发表于 2014-8-23 10:10:02 | 显示全部楼层
按照你的方法大致试过,但没有数据上传。。感觉你的代码没有上传数据的语句啊
回复 支持 反对

使用道具 举报

发表于 2015-10-27 16:45:02 | 显示全部楼层
请问怎么获取Yeelink的数据
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 04:57 , Processed in 0.039394 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表