Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 2565|回復: 0
打印 上一主題 下一主題

請教有關於Arduino使用ESP8266接收訊息

[複製鏈接]
跳轉到指定樓層
1#
發表於 2016-7-22 11:30:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位arduino的前輩,
我想請教有關arduino使用ESP8266接收訊息,其程式碼如下:

#include "ESP8266.h"
#include "SoftwareSerial.h"


#define HOST_NAME   "184.106.153.149" //thingspeaks 的網址
#define HOST_PORT   (80)                     // thingspeaks 的port

/*
下面的兩個字串,我已經使用Serial monitor 測試過,SENT的字串是將資料送上thingspeaks,而GET的字串是用來收thingspeaks,這兩組字串在Serial monitor裡使用AT 指令測試過,都可以收到thingspeaks所回傳的資料。
*/
String SENT = "GET /update?key=6C8BLQMLKM62WL45&field1=6&field2=8\r\n";
String GET = "GET /channels/126861/fields/1/last.json?api_key=2TUA6G8KZUICSJBA&timezone=Asia/Taipei\r\n";

SoftwareSerial esp01(4,5);   //設定esp8266的rx tx 於第4和5pin
ESP8266 wifi(esp01, uint32_t(57600));

/*
由於esp8266第一次設定好了,就會自動連線,所以在這個程式裡沒有連接wifi的程式。
*/
void setup() {
  Serial.begin(57600);
  Serial.println(wifi.getLocalIP().c_str()); //show出目前esp8266連線wifi的區域ip,如果有顯示的話,表示有連上wifi

}

unsigned int counter = 0;

void loop() {


  uint8_t buf[512] = {0};

  if(wifi.createTCP(HOST_NAME, HOST_PORT)) //等效於AT+CIPSTART 使用tcp傳輸
     Serial.print("create tcp ok\r\n");
  else
     Serial.print("create tcp err\r\n");

   /*
     傳送要求的訊息
   */
   esp01.print("AT+CIPSEND=");
   esp01.println(GET.length());
   if(esp01.find(">")){
      Serial.print("start sentdata");
      esp01.print(GET);
      delay(200);
   }else{
      Serial.print("fail");
      esp01.println("AT+CIPCLOSE");
   }

/*
   下面是收thingspeak的資訊,不過從serial monitor上看到都是收到多少的byte
*/
  unsigned int index = 0;
  while (esp01.available())
  {
    Serial.write(esp01.read());

  }

counter++;
Serial.println(counter);
delay(15000);
}


在arduino的 函式serial.read(),從官網來看是回傳收到資訊的byte數,那我應該如何改可以看到收到的內容。

謝謝!
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-4-25 20:22 , Processed in 0.205736 second(s), 7 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表