新手:請教如何執行官方提供的IoT範例
新手:請教如何執行官方提供的IoT範例
Postby pcbass » Fri May 29, 2015 9:32 pm
我是使用esp_iot_sdk_v1.0.1_b2_15_04_10.
我依照官方文件,可以編譯程式和下載.但是我在試IoT範例時,遇到一些問題
1. 我將SDK下的Example中的IoT_Demo裡的內容,複製到app目錄下去編譯(原始程式完全都沒更改),但是下載到模塊之後,依照官方文件說的password的格式(我也找到程式碼中SoftAP mac address), 連線到ESP8266,卻看到下列的訊息(UART介面看到的訊息)
--------------------------------------------------
add 1
aid 1
station: 34:23:87:d6:fe:a7 join, AID = 1
station: 34:23:87:d6:fe:a7 leave, AID = 1
rm match
--------------------------------------------------
上面的訊息連續顯示四次,然後就停了
我不知道這是發生什麼事情? 請問我該怎麼解決?
2. 在user_init裡面,我有看到os_printf("SDK version:%s\n", system_get_sdk_version()); 但是我在uart介面上,我都沒看到這版本的訊息,我是使用esp_iot_sdk_v1.0.1_b2_15_04_10. 我看了論壇上很多人都在說"uart打印",但是我卻沒看到我加進去的訊息. 請問想要使用uart打印,是不是要做某些設定?或是什麼弘定義(MACRO)要被設定? 官方文件裡有寫到這部分的使用方式嗎?
3. 官方文件IOT Demo說明 v0.5, curl的部分我測試時也是不正確,文件上說"IoT Demo 在 user_webserver.c 内建⽴立的 TCP server 采⽤用 REST 架构,⽤用户通过 PC 端与 IoT
Demo 设备进⾏行通讯时,可采⽤用 curl 命令。" 所以我就在沒有修改程式的狀況下,下載了curl在windows下執行. 結果我測試的結果如下
--------------------------------------------------
C:\>curl -X GET http://192.168.4.1/client?command=info
curl: (7) Failed connect to 192.168.4.1:80; No error
--------------------------------------------------
我搜尋的整個程式,只有在user_esp_platform.c line 1311行有看到定義ip是從192.168.3.1到192.168.3.1. 並沒有看找到192.168.4.1的設定.但是我將上述curl指令中的IP改成192.168.3.1,也不正確. 我再將程式中這一段的#if 0 改為#if 1,然後重新編譯和下載. 再執行一次也是一樣.
我後來看到有位網友寫了下列這段curl指令
CODE: SELECT ALL
curl -X POST -H "Content-Type:application/json" -d "{\"Request\":{\"Station\":{\"Connect_Station\":{\"ssid\":\"路由SSID\",\"password\":\"路由password\",\"token\": \"1234567890123456789012345678912300000099\"}}}}" http://192.168.4.1/config?command=wifi
我就發現,似乎要先讓esp8266模組先連線,然後才能去詢問它的相關訊息, 但是我執行之後,得到的結果如下
--------------------------------------------------
C:\>curl -X POST -H "Content-Type:application/json" -d "{\"Request\":{\"Station\":{\"Connect_Station\":{\"ssid\":\"XXXXXXXX\",\"password\":\"YYYYYYYY\",\"token\": \"1234567890123456789012345678912300000099\"}}}}" http://192.168.
4.1/config?command=wifi
curl: (7) Failed connect to 192.168.4.1:80; No error
--------------------------------------------------
XXXX是我的無線網路路由器的SSID,YYYY則是密碼.
請教各位,我該怎麼解決這個問題?
謝謝!
Re: 新手:請教如何執行官方提供的IoT範例
Postby ESP_Faye » Mon Jun 01, 2015 11:21 am
感谢您对 ESP8266 的关注!
1. 您可以注释掉宏定义 #define SOFTAP_ENCRYPT,或直接删去 user_esp_platform_init 中的如下代码,使 ESP8266 softAP 不加密,看能否连接。
Code: Select all
if (esp_param.activeflag != 1) {
#ifdef SOFTAP_ENCRYPT
struct softap_config config;
char password[33];
char macaddr[6];
wifi_softap_get_config(&config);
wifi_get_macaddr(SOFTAP_IF, macaddr);
os_memset(config.password, 0, sizeof(config.password));
os_sprintf(password, MACSTR "_%s", MAC2STR(macaddr), PASSWORD);
os_memcpy(config.password, password, os_strlen(password));
config.authmode = AUTH_WPA_WPA2_PSK;
wifi_softap_set_config(&config);
#endif
}
2. UART 默认波特率为 74880
3. 发 curl 指令,需要您的 PC 先连到 ESP8266 softAP
您可以参考 http://bbs.espressif.com/viewtopic.php?f=7&t=453#p1794
Re: 新手:請教如何執行官方提供的IoT範例
Postby pcbass » Mon Jun 01, 2015 3:09 pm
謝謝您先前的回覆.
我後來改用了esp_iot_sdk_v1.1.0_15_05_26. 下列是我的測試結果.
1. 將SOFTAP_ENCRYPT宏定義關掉,電腦就可以連線到ESP8266.
2. 我將uart_init加到user_init裡面,並且baudrate設為115200,不會受限於76800的影響.
3. 參考您提供的那篇問題,依照您提供的curl的設定方式(直接複製,更改ssid和password),電腦和ESP8266之間的連線就斷線了.
下圖為我curl執行的狀況,
[img]curl_01.jpg[/img]
而圖片中,左邊uart的訊息會一直重複出現,不會停止. 唯有重新下載固件,才能讓ESP8266回到初始狀態.
從連線的訊息來看,我想要連線的那台無線網路路由器的IP是192.168.169.168,然後它發給了ESP8266一個IP:192.168.169.178,似乎有連上線,但是之後電腦就看不到ESP8266, 所以就不知道發生什麼事了?
- Attachments
-
- curl_01.jpg (212.22 KiB) Viewed 8810 times
Re: 新手:請教如何執行官方提供的IoT範例
Postby ESP_Faye » Tue Jun 02, 2015 11:41 am
1. UART 的问题,麻烦确认是否是这个帖子中描述的问题 http://bbs.espressif.com/viewtopic.php?f=10&t=182
2.与 ESP8266 断开连接的问题,麻烦确认是否和这个帖子描述的是同一情况?http://bbs.espressif.com/viewtopic.php?f=10&t=324
感谢您对 ESP8266 的关注!
Re: 新手:請教如何執行官方提供的IoT範例
Postby pcbass » Wed Jun 03, 2015 8:01 pm
謝謝您提供的參考網頁和資料.
1. 關於UART的部分,是的,我參照了同一個網頁連結內容,使用了uart_init,就可以變更Baudrate. 串口的使用就方便多了.
2. 關於第二點,可能就是如您提供的網頁內容所示.
我更改了原始設定,做了一點測試
(1) 讓ESP8266與無線網路路由器連線之後,保持在StationAP的狀態下.
(2) 利用"curl -X GET http://192.168.4.1/client?command=status", 並且在程序中加印了SoftAP和Station相關的設定
附檔1:Before_Connect_Station.jpg 是發送curl指令去連接無線網路路由器之前
(3) 同樣利用先前的curl指令,去連接無線網路路由器
附檔2:After_Connect_Station.jpg 是發送curl指令去連接無線網路路由器之後
這次不同的是,似乎有連線成功,而且訊息一直不停的被送到串口畫面
另外,我有三個問題想詢問.
Q1: 如何修改AT指令?
Q2: 如何建立簡單的Web畫面?
比方PC連接到ESP8266之後,在瀏覽器上輸入http://192.168.4.1,就會出現自己編寫的網頁頁面
Q3: 如何讓ESP8266連線到網頁登入型的WIFI熱點?
透過程序和範例,我知道輸入SSID和PASSWORD,就可以連線到無線網路路由器.
但是我發現很多電信營運商提供的WIFI熱點,都是在網頁上要輸入帳號和密碼,但是ESP8266並沒有瀏覽器(也沒有OS). 而且不同的電信營運商的WIFI熱點,登入的網頁畫面也不同. 想請教這該怎麼解決?
我還有兩個小提議
1. SDK Program Guide
請加入sys_get_sdk_version()的說明
2. user_esp_platform.c
line 664: plese ---> 改為please (這只是小地方,程序架構那麼大,難免會有錯字)
謝謝!
- Attachments
-
- After_Connect_Station.jpg (259.77 KiB) Viewed 8761 times
-
- Before_Connect_Station.jpg (107.89 KiB) Viewed 8761 times
Re: 新手:請教如何執行官方提供的IoT範例
Postby ESP_Faye » Fri Jun 05, 2015 10:22 am
Q1: 如何修改AT指令?
A1: 非常抱歉,目前 AT 代码并不开源,因此您无法修改 AT 指令。但是您可以参考 \examples\at 的示例,新增自己的 AT 指令。
Q2: 如何建立簡單的Web畫面?
比方PC連接到ESP8266之後,在瀏覽器上輸入http://192.168.4.1,就會出現自己編寫的網頁頁面
A2: 您可以在 ESP8266 收到浏览器来的请求时,回复一个 html 页面给浏览器。
Q3: 如何讓ESP8266連線到網頁登入型的WIFI熱點?
A3:您需要知道网页登入型的 WiFi 热点 需要接收到怎样的数据才能登入,自行实现回复相应数据,登入 WiFi 热点的功能。
感谢您对 ESP8266 的关注和热心建议 !
Who is online
Users browsing this forum: No registered users and 117 guests
Login
Newbies Start Here
Are you new to ESP8266?
Unsure what to do?
Dunno where to start?
Start right here!
Latest SDK
Documentation
Complete listing of the official ESP8266 related documentation release by ESPRESSIF!
Must read here!
- All times are UTC+08:00
- Top
- Delete all board cookies
About Us
Espressif Systems is a fabless semiconductor company providing cutting-edge low power WiFi SoCs and wireless solutions for wireless communications and Internet of Things applications. We are the manufacturer of ESP8266EX.