Bigiot.net
BIGIOT.net
貝殼物聯
貝殼物聯
公開設備
移動端
文檔
話題討論
登錄
注冊
關于esp8266 arduino 遠程遙控led的問題
作者:
史濮瑜
| 更新時間:2016-06-12 | 瀏覽量:2248
首頁
討論
Arduino
有一個問題,就是在kaiguang的代碼中,沒有顯示模塊鏈接主機的代碼啊·····求解答
評論:共3條
貝殼物聯
評論于:2016-06-12 12:45:50
是透傳那個嗎?透傳成功就自動連接了
smart_tian
評論于:2016-06-20 17:12:27
/**
*ESP8266透傳自動設置程序(固件版本v1.0+)
*功能:自動設置ESP8266進入透傳模式,并重啟自動連接貝殼物聯平臺。
*By 貝殼物聯 2016.3.7
*貝殼物聯:http://www.eqytg.org
*ESP8266購買地址:https://item.taobao.com/item.htm?id=525028089592
ESP8266=====>>Arduino
VC==========>>3.3v
gnd==========>>gnd
RXD==========>>TX
TXD==========>>RX
*/
//設置模擬串口針腳(RX, TX)
//============= 此處必須修改===================
#include <aJSON.h>
//============= 此處必須修該============
String DEVICEID="77"; // 你的設備編號 ==
String APIKEY="fbab5bde8"; // 設備密碼==
//=======================================
const int LED = 13;// LED正極連接針腳4
unsigned long lastCheckInTime = 0; //記錄上次報到時間
const unsigned long postingInterval = 40000; // 每隔40秒向服務器報到一次
String inputString = "";
boolean stringComplete = false;
boolean CONNECT = true;
char* parseJson(char *jsonString);
String WiFiSSID = "TP-LINK_76FC";//填寫路由器名稱=======
String WiFiPASSWORD = "%tianjuntangqili";//填寫WiFi密碼===
//==============================================
int flag = 0;
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(115200);
delay(5000);
}
void loop() {
if(flag == 0){
//ESP8266通電啟動等待
delay(10000);
//如果是透傳模式,退出透傳
Serial.print("+++");
delay(1000);
Serial.print("AT\r\n");
delay(1000);
//關閉回顯命令
Serial.print("ATE0\r\n");
delay(1000);
//設置WiFi應用模式為兼容模式
Serial.print("AT+CWMODE=3\r\n");
delay(2000);
//連接到無線路由器
Serial.print("AT+CWJAP=\"");
Serial.print(WiFiSSID);
Serial.print("\",\"");
Serial.print(WiFiPASSWORD);
Serial.print("\"\r\n");
delay(20000);//此處需根據路由器連接速度設置delay的時間,可適當加長
//設置為單連接
Serial.print("AT+CIPMUX=0\r\n");
delay(1000);
//設置模塊傳輸模式為透傳模式
Serial.print("AT+CIPMODE=1\r\n");
delay(1000);
//連接貝殼物聯服務器
Serial.print("AT+SAVETRANSLINK=1,\"121.42.180.30\",8181,\"TCP\"\r\n");
delay(20000);//此處需根據網路連接速度設置delay的時間,可適當加長
//重啟
Serial.print("AT+RST\r\n");
flag=1;
}
if(millis() - lastCheckInTime > postingInterval || lastCheckInTime==0) {
checkIn();
}
serialEvent();
if (stringComplete) {
inputString.trim();
//Serial.println(inputString);
if(inputString=="CLOSED"){
Serial.println("connect closed!");
CONNECT=false;
}else{
int len = inputString.length()+1;
if(inputString.startsWith("{") && inputString.endsWith("}")){
char jsonString[len];
inputString.toCharArray(jsonString,len);
aJsonObject *msg = aJson.parse(jsonString);
processMessage(msg);
aJson.deleteItem(msg);
}
}
// clear the string:
inputString = "";
stringComplete = false;
}
}
void checkIn() {
if (!CONNECT) {
Serial.print("+++");
delay(500);
Serial.print("\r\n");
delay(1000);
Serial.print("AT+RST\r\n");
delay(6000);
CONNECT=true;
lastCheckInTime=0;
}
else{
Serial.print("{\"M\":\"checkin\",\"ID\":\"");
Serial.print(DEVICEID);
Serial.print("\",\"K\":\"");
Serial.print(APIKEY);
Serial.print("\"}\r\n");
lastCheckInTime = millis();
}
}
void processMessage(aJsonObject *msg){
aJsonObject* method = aJson.getObjectItem(msg, "M");
aJsonObject* content = aJson.getObjectItem(msg, "C");
aJsonObject* client_id = aJson.getObjectItem(msg, "ID");
//char* st = aJson.print(msg);
if (!method) {
return;
}
//Serial.println(st);
//free(st);
String M=method->valuestring;
String C=content->valuestring;
String F_C_ID=client_id->valuestring;
if(M=="say"){
if(C=="on"){
digitalWrite(LED, HIGH);
sayToClient(F_C_ID,"LED on!");
}
if(C=="off"){
digitalWrite(LED, LOW);
sayToClient(F_C_ID,"LED off!");
}
}
}
void sayToClient(String client_id, String content){
Serial.print("{\"M\":\"say\",\"ID\":\"");
Serial.print(client_id);
Serial.print("\",\"C\":\"");
Serial.print(content);
Serial.print("\"}\r\n");
lastCheckInTime = millis();
}
void serialEvent() {
while (Serial.available()) {
char inChar = (char)Serial.read();
inputString += inChar;
if (inChar == '\n') {
stringComplete = true;
}
}
}
houchuanhao
評論于:2016-07-26 09:19:45
同意,沒有連接路由器的部分。。。
返回頂部
三上悠亚在线观看