新手:請教如何執行官方提供的IoT範例

pcbass
Posts: 9
Joined: Fri May 29, 2015 8:29 pm

新手:請教如何執行官方提供的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則是密碼.
請教各位,我該怎麼解決這個問題?





謝謝!

ESP_Faye
Posts: 1646
Joined: Mon Oct 27, 2014 11:08 am

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

pcbass
Posts: 9
Joined: Fri May 29, 2015 8:29 pm

Re: 新手:請教如何執行官方提供的IoT範例

Postby pcbass » Mon Jun 01, 2015 11:30 am

感謝您的詳細回覆,我來試試看!
謝謝!

pcbass
Posts: 9
Joined: Fri May 29, 2015 8:29 pm

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
curl_01.jpg (212.22 KiB) Viewed 8811 times

ESP_Faye
Posts: 1646
Joined: Mon Oct 27, 2014 11:08 am

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 的关注!

pcbass
Posts: 9
Joined: Fri May 29, 2015 8:29 pm

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
After_Connect_Station.jpg (259.77 KiB) Viewed 8762 times
Before_Connect_Station.jpg
Before_Connect_Station.jpg (107.89 KiB) Viewed 8762 times

ESP_Faye
Posts: 1646
Joined: Mon Oct 27, 2014 11:08 am

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 26 guests