IoT, ESP8266, IP address of api.thingspeak.com

http://wp.me/ph3BR-25b

 

昨日做科學展示時, 原來的那組 Dummy Temperature logger 無法傳送資料到 api.thingspeak.com, 因此畫面都沒有更新, 俺們的展示 CHANNEL 在這裡 https://thingspeak.com/channels/230726

所有軟件硬件都沒動過, 甚麼問題 ? 除了換了地點和 WIFI 帳密 還有 API Keys, 檢查 SERIAL 輸出, 也看不見字串. 正常的時候會看到這個 post string 字串,

 

很可能是 DNS 或 NAT 有問題, 不過這個超越了一般使用者的管理範疇和能耐, 因為需要 ISP / WIFI 管理員解決問題. 那試試看直接用 IP 地址, 用了兩個方法找出 api.thingspeak.com 的 IP 地址,

1) 用網路工具查,
2) 用WINDOWS 自帶的 PING 或 TRACERT 的小工具,

網路工具查詢的結果,

https://website.ip-adress.com/api.thingspeak.com

 

PING 或 TRACERT 查詢的結果

 

兩個方法都指出 api.thingspeak.com 的 IP 地址,
52.1.229.129
52.7.7.190

 

所以改了一下源碼, 用 52.1.229.129 替代 api.thingspeak.com, 試試看,

 

再編譯一次, 運行就連上可以輸送資料了. 看來這個地點的網路環境有問題, 原因不詳, ESP8266 沒辦法透過 DNS 知道 api.thingspeak.com 正確的 IP 地址或連結不成功, 但是 ESP8266WiFi 程序庫沒有除錯功能也沒有顯示任何資訊, 因此沒有任何報錯反應, 也不會送資訊到 api.thingspeak.com, 實際上看不到任何 post string.  API Keys 理論上是不要對外公開的, 因為其他有心人看了可以濫用, 所以建議每次展示都重新修訂 API Keys, 重新編譯源碼, 這樣的話源碼每次都要配對 API Keys, 展示完畢以後下一個展示時就不會被別人誤用或干擾, 因為 API Keys 一旦修訂, 這個時間點以前所有的展示品都會失效, ESP8266 不再傳送成功.

 

 

修訂後的程序運行正常了, 有最新資料顯示,

https://thingspeak.com/channels/230726