最近嘗試使用arduino加上HLK-RM04WIFI板進(jìn)行物理網(wǎng)嘗試。其難點在于RM04wifi模塊的設(shè)置。由于涉及到的技術(shù)點比較多,有各種組合,手冊寫的也不是很清楚,所以這個模塊進(jìn)行了比較仔細(xì)的嘗試,取得成功,現(xiàn)把筆記共享一下。
我用的板子是:http://item/item.htm?spm=a1z09.2.9.88.seicHt&id=25481836402
1、wifi設(shè)置:(1)按復(fù)位鍵是可以恢復(fù)出廠設(shè)置的,6秒以上,燈沒什么反應(yīng)應(yīng)瀏覽器登錄192.168.16.254以后,改成ap模式,瀏覽器就找不到模塊了,按了復(fù)位就又能找到了(2)模塊恢復(fù)出廠設(shè)置,連接rs232, 手機(jī)采用easyTCP,鏈接192.168.16.254,端口8080; PC使用串口調(diào)試小助手1.3(波特率115200,跟模塊里面設(shè)置的串口參數(shù)一樣); 實現(xiàn)互通(3)HLK-RM04串口配置工具好像不能用, 找不到設(shè)備; 能發(fā)出at信息,但是設(shè)備沒反應(yīng); 手機(jī)發(fā)的信息也無法顯示;(4)串口&TCP/UDP調(diào)試工具好像不能用, 連接串口失敗 wifi成功接收,tcp/client模式(串口調(diào)試小助手1.3發(fā),軟件按照自己的tcp功能設(shè)置client/sever,如果模塊設(shè)成server,那么串口軟件就是client),192.168.16.254;8080 wifi發(fā)也可以,串口調(diào)試小助手1.3收,(6)使用設(shè)備配置工具前要短按reset按鈕(1秒以內(nèi)),退出透傳狀態(tài),然后就成功了 串口&TCP/UDP調(diào)試工具還是不能用---串口打不開?。。?)用pc串口和手機(jī)串口進(jìn)行對傳,不能加arduino底板,加了以后就不通;設(shè)備配置工具也不能用;(8)透傳模式也不能對通!
二、wifi和arduino結(jié)合(1)底板串口程序--正常(拔掉wifi擴(kuò)展版)(2)插上擴(kuò)展版,同樣的程序,擴(kuò)展板加電以后,底板也亮,說明電源是互通的。ide串口監(jiān)視器顯示跟沒有擴(kuò)展板時一樣。(3)手機(jī)連接wifi,看到的跟串口監(jiān)視器的一樣----說明wifi板是透傳了底版的serial口;(4)修改程序下載出了問題,不能結(jié)束?。?)開關(guān)撥到c,出錯,com13被占用?。?)再撥回去也是被占用?。?)斷電,然后只插底板usb上傳程序,成功!wifi加電,正常(8)在做,在傳程序前要把擴(kuò)展版斷電,不然不成功!(9)在傳程序時,要把開關(guān)撥到c就成功,必須提前撥,如果忘了,沒撥就嘗試上傳就會失敗,嘗試一次后再撥就會出現(xiàn)(5)的現(xiàn)象。
三、物聯(lián)網(wǎng)試驗:注冊yeelink,設(shè)置傳感器;調(diào)試程序
1、要把模塊設(shè)置成wifi 的client,3、路由器只是過路,互聯(lián)網(wǎng)也是過路。4、似乎需要知道yeelink的ip和端口號???好像是5、例子:查詢yeelink的ip,建立連接:http://blog.csdn.net/xukai871105/article/details/170963196、例子:以太網(wǎng)http://blog.yeelink.net/?p=94需要使用代碼建立連接7、端口號都是80!80是tcp中http的端口號8、yeelink http格式:http://blog.csdn.net/xukai871105/article/details/86073389、似乎手動設(shè)置模塊-----采用client模式,遠(yuǎn)端的端口使用yeelink的ip,端口號80,做死?。。╤ttp是用于尋址和指定類型的,接死以后就不用http了,直接往端口里送get等命令就好了)10、如果更自動就需要連接,自動取到ip,然后向端口發(fā)請求。11、www.yeelink.net的ip為:42.96.164.52
依次打開——開始——運(yùn)行——輸入cmd——然后輸入ping 你要查詢的網(wǎng)站名字??纯粗虚g會有ip地址,這個ip地址就是網(wǎng)站ip12、shuanghu,加密方式wep完全成功0、擴(kuò)展版插uno上1、wifi模塊恢復(fù)出廠設(shè)置,電腦連接serial-wifi,12345678;2、用瀏覽器登錄192.168.16.254,admin,admin3、設(shè)置無線網(wǎng)卡模式,搜索家里的無線路由器,設(shè)置接入密碼4、設(shè)置tcp---client模式,設(shè)置遠(yuǎn)端ip:42.96.164.52;端口號805、暫不應(yīng)用6、編譯程序下載,下載前將擴(kuò)展版開關(guān)放在傳輸程序模式(或者在插擴(kuò)展版之前就下好程序,拔掉usb,再插擴(kuò)展版)7、應(yīng)用wifi模塊的設(shè)置8、打開串口監(jiān)視器,看看上傳數(shù)據(jù)是否正確9、打開www.yeelink.net,登錄,找到那個傳感器,觀察http://www.yeelink.net/user/devices/1053110、成功
代碼:(沒有傳感器,上傳一個循環(huán)的1-10的數(shù)字)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);
}
}
一、物聯(lián)網(wǎng):***http://www.guokr.com/blog/746985/http://www.leikeji.com/thread-64-1-1.htmlhttp://v.youku.com/v_show/id_XNTY4Mzk4NTc2.html
二、串口調(diào)試手冊:http://wenku.baidu.com/link?url=1U4JnCUA0eWfQlUnCSpQZAixrcnZu72saaOhfHERxL16un6NSXn2otJ4Fie8wwBvY1ySxAsUdXBF-eoZw_MJw4W51vop3L9ryXkql7DHau_
使用心得:http://blog.csdn.net/shenzhonglaoxu/article/details/25738375
三、關(guān)于擴(kuò)展版:
http://item/item.htm?spm=a1z10.5.w4002-1919033899.34.vHV760&id=25481148978引腳說明:
電源:當(dāng)沒有Arduino時,可以使用適配器供電(5-12V)
RS232:接PC串口或者USB轉(zhuǎn)串口;
串口:另外一路向模塊通信的串口
開關(guān):“O”狀態(tài)可以用于下載Arduino程序,免插拔“C”狀態(tài)用于正常通信;
板子上的復(fù)位按鍵用于復(fù)位核心板,另外一個按鍵為擴(kuò)展使用。
四、模塊退出透傳模式:http://www.hlktech.com/ch/news_show.asp?newsid=38
鑒于有很多客戶不太清楚模塊的工作方式,在這里做簡要說明。
模塊有自動工作模式和AT指令模式。
出廠默認(rèn)是自動工作模式,要想用我們的UART-WIFI.EXE掃描到模塊,必須工作在AT指令模式下。這個時候要從自動工作模式切換到AT指令模式。
方法如下:
UART-WIFI.EXE左下角添加了一個“退出”按鈕,用戶上電后等待5秒鐘左右,點退出即可
或者給模塊上電,等待5秒鐘左右,用串口調(diào)試助手發(fā)送:“+++”,注意沒有回車沒有換行,此時會返回+OK,這個時候就會退出透明傳輸模式進(jìn)入AT指令模式,然后再用我們的配置管理程序掃描模塊,應(yīng)該可以掃描到了。
看下用UART-WIFI.EXE為什么找不到模塊的問題?
1.串口是否設(shè)置對 是否用的是電腦本身的物理串口,一般不要用USB轉(zhuǎn)串口
2. 串口是否選擇對了,波特率是否設(shè)置對,是否進(jìn)去參數(shù)設(shè)置修改了波特率
3.是否勾選了:啟用自動工作模式。如果勾選了這個,就進(jìn)入了透傳。此時串口是不接受AT指令的,需要退出透明傳送才行。退出透明傳輸?shù)姆椒?重新給模塊上電,等待5秒鐘左右,用串口調(diào)試助手發(fā)送:“+++”,返回+OK,此時已經(jīng)退出了透明傳輸模式,然后再用我們的配置管理程序掃描模塊,應(yīng)該可以掃描到了。
4.如果已經(jīng)配置了WAP加密的話要等待10秒鐘才能找到模塊
5.是否勾選了:啟用自動工作模式。如果勾選了這個,就進(jìn)入了透傳。??
有問題請發(fā)送郵件到info@hlktech.com
如果以上方法還是解決不了,請參考說明書114頁的Q12先恢復(fù)出廠值,再退出透明模式五、rm04板客戶端模式的設(shè)置http://www.docin.com/p-650701841.html
六、參考:專用板?手機(jī)直控:http://www.docin.com/p-677434903.html
官網(wǎng):http://www.hlktech.com/ch/news.asp幾個心得:http://blog.csdn.net/shenzhonglaoxu/article/details/25738375rm04 arduino 庫和例子:https://github.com/chunlinhan/WiFiRM04
愛華網(wǎng)



