pretty code

2020年9月28日 星期一

ESP8266 OTA 使用備忘

有鑒於前幾天沒有加上 OTA 更新的遺憾,今天便決定把 OTA 更新機制加入,過程中遇到一些問題,記錄一下避免忘記。

1. 跟隨範例加入 OTA code,我這裡用的是 Arduino IDE OTA 方式。

2. 理論上 reset 後,Arduino IDE 就可以看到 OTA port,但我的版本沒有出現(1.8.13)。查了一下 ESP8266 issues 列表,有人建議可以直接下 command 測試,我後來是以這個方式順利上傳成功。

3. IDE -> 草稿碼 -> 匯出已編譯的二進位檔,會跟 Code 在同一層目錄。

4. 切到工具路徑,C:\Users\User\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\tools

5. python espota.py -i 192.168.43.118 -p 8266 --auth=XXXX -f XXX.bin

透過上述方式便可以成功 OTA 更新。


2020/09/29 更新

回家測試的結果,按鍵整個反應變好慢,再加上我用的是 AP + Station 混合模式,Clara HD 看到的 Wi-Fi 訊號變得很微弱,可能是這樣的操作對 ESP8266 太操或是我的 Code 有 Bug,還需要想一想如何改比較好。

2020/09/30 更新

嗯,確認是 Bug 無誤!不過,在 loop 加入 OTA 機制後,整體流暢度約差了3% ~ 4% 左右,還算可接受範圍。

2020年9月26日 星期六

有時候放棄也是一種選擇

又是個不用補班日的週六,加上家裡的事終於告一段落,準備開開心心的來實作翻頁器成品。

早上先把 TX、RX、VCC、GND、GPIO0,焊到 ESP-12S 上,雖然焊的很醜,但也能順利燒錄程式,改了一下 Code 讓它連續翻頁好測試線路是否正常,實測半個小時,看起來沒有什麼問題。於是快中午時就殺去特力屋買齊我需要的東西,在等待 DC Converter  來的同時,準備下午先把能做的事做好。

好不容易自製焊台做好了,放置 ESP-12S 的洞挖了,兩個按鈕也鑽好洞放進電池盒內,這時悲劇發生了,原本配給向左翻頁的 GPIO14 在我喬線的時候,整個 PAD 被我扯掉,已經無法再把線焊上去,雖然還有其他 GPIO 可用,但我程式就需要改寫並重新燒錄,只好再比照早上把該焊的線焊一焊,不過這一次就沒有這麼順利了,沒有一根線可以順利焊上,偏偏屋漏又逢連夜雨,連 GPIO0 也被我扯掉,看看新買的 GOOT 烙鐵頭,似乎整個都氧化的很嚴重,連錫都無法順利吃上去。為了怕把我的 ESP-12S 整個報銷,果斷地放棄繼續下去。

到底是發生什麼事我也搞不清楚,究竟是我的大賣場錫條太差,還是我的使用方式不對才導致失敗?

想想軟體工程師還真是幸福,只要一台電腦就可以做事!不像硬體工程師,有準備不完的機斯。想不到我的 Kobo 翻頁器成品,竟然就這樣胎死腹中!

為了完成這個東西,目前為止花的錢大概又可以買一台五千元左右的翻頁器,這就是人生呀!

拍張照片為這個偽完成品留下記錄。


2020/10/02 更新

趁著連假前的晚上,用新買的一些機斯,一股作氣把所有要焊的線一起焊一焊,開開心心的翻了幾頁書之後,ESP8266 (ESP-12S) 就一直重開機,使用電表量測才發現我的工作電壓居然高達 5V?


重覆量測了好幾次結果還是一樣,為了怕是我焊接的問題,移除 ESP8266 (ESP-12S) 後重新量測,情況還是依舊!在確認了我露天拍賣購買物無誤後,發個訊息通知賣家這個情況。

等待的時間閒著也是閒著,拿出放大鏡仔細端詳,發現上面的型號是 HW-626,Google 了一下,確定是轉出 5V 的 DC Converter 沒錯!這告訴我們一件事,以後在焊接前要先確認好電壓才不會白做工,幸好 ESP8266 (ESP-12S) 用 3.3V 開機還算正常 ,但有沒有內傷我就不知道了?


如果賣家沒有給我正確的 Converter,我應該也懶得再找料重焊了,對於焊接苦手的我來說,可能也辦法再焊那麼順利了!我總不能缺什麼就買什麼工具吧?家裡的書櫃已經快放不下這些東西了。

2020/10/03 更新

既然 ESP8266 (ESP-12S) 最低工作電壓可到 2.7V,乾脆放棄使用 DC Converter,反正我也只是要驗證概念,順便測試在 5V 的摧殘下,我的 ESP8266 (ESP-12S) 是否還活著?終於我還是完成了這個產品,為這幾個月來的工作劃下句點。

2020年9月23日 星期三

買新不買舊的最好範例 ESP-12S

一直提不起勁去研究 3D 列印,尤其在得知列印時產生出來的微粒對身體不好後就更是興趣缺缺,雖然網路上有幫忙 3D 列印的店家,收費也不貴,但就是少了一股衝勁。

偶然看到網路上有人實做 Kindle 翻頁器,其設計原理跟我一模一樣,巧的是他也是使用 ESP8266 來實現,又可以將相關元件放入一個 3 x AAA 的電池盒中,於是便想依樣畫葫蘆的做出我的版本。

由於是 5 年前的文章,對方使用的是 ESP-03,目前網路上已經找不太到。故我就直接選了一個比較新的型號 ESP-12S。

雖然知道 Boot Mode 的差別,但我一直以為安信可公司的模組已經處理完畢,預設就是正常開機模式,後來才發現,如果我是購買舊一點的版本,例如 ESP-12F,很多腳位都要自己處理上拉或下拉,對高手來說這些不是問題,但對焊接低手的我來說,能少焊幾根線就是舒服。

原來買新不買舊的意義就在這裡!只要商家的產品真的是越出越好就好。


2020/09/24 更新

想不到也是一樣的 ESP8266 系列卻出現反例,NodeMCU 目前最新的是 V3,但網路上說雖然較新又較便宜,但因板子較大,故插在麵包板後已無空位容納其他排線,還好我之前買的是 V2。

2020年9月19日 星期六

Kobo 翻頁器 DIY 開發順序顛倒了

雖然這個專案已經告一段落,如果不做 3D 列印的話,其實也算是結束了!

但跟我當初預設的開發順序一點都不一樣?

為了回歸初心,還是花了一千塊錢,把當初想買的機斯備齊,也算是為這段時間留個記錄。

看似簡單的線路,如果沒有將 ESP8266 整個插進麵包板,完全沒有辦法工作,如果手邊有個三用電表,就能快速的排除問題。

其實任何學問都是相通的,雖然我還是個硬體菜鳥,但與程式解 Bug 的思路完全沒有兩樣,能夠細心思考問題並排除問題,這應該也算是工程師的浪漫一天吧。



另外,因為懶得一樣一樣購買,我使用的按鈕是直接從 Arduino 通用實驗零件包來的,價錢約略 100 出頭,內容如下:

2020年9月18日 星期五

Golang filepath.Walk 行為及注意事項

某些情況下我們需要去解析目錄下含子目錄共有多少檔案,一般來說是使用遞迴,不同程式語言有不同的名稱,可能叫 parseDir 或是 walkThrough 等。

Golang 在 path/filepath 這個 package 裡面就有提供類似的功能,其用法為 filepath.Walk,我們需要傳入 2 個參數:

1. 要解析的目錄名稱。

2. WalkFunc 型式的函數,定義如下。

type WalkFunc func(path string, info os.FileInfo, err error) error

比較特別的是,我們在裡面不需要再寫出類似遞迴呼叫的語法,Golang 本身會一直呼叫我們傳進去的 WalkFunc 直到結束。

另外,也可以傳入 UNC 路徑,這邊要注意一點,由於微軟檔案長度 255 字元的限制,如果我們傳入的路徑裡面有超出長度的檔案,此時會回傳 error,故後面就會停止 parsing,錯誤訊息如下。

CreateFile ERROR_FILE_NAME: The system cannot find the path specified.

因此,如果我們還是要繼續 parsing,可以選擇忽略這個錯誤而直接回傳 nil。

2020年9月8日 星期二

20200908 電子書統計資料

Amazon.com

第一本書:The Go Programming Language (US $25.59)

最貴的書:File System Forensic Analysis (US $35.49)

目前藏書:29 (23 英文 + 6 中文)


Amazon.cn

第一本書:湖畔 (東野圭吾 CN ¥7.91)) 

最貴的書:30天自制操作系统 (图灵程序设计丛书 10)  (CN ¥49.99)

目前藏書:43


Google Play 圖書

第一本書:病從排寒解: 22個自主排寒關鍵,教你從飲食入手,徹底預防新病、根除舊疾、溫養一生! (NT $189)

最貴的書:Kali Linux: Hacking Tools Introduction (NT $645)

目前藏書:43 (4 英文 + 39 中文)


Kobo

第一本書:太極米漿粥:來自桂林古本傷寒雜病論,靠白米就能重拾健康的本源療法 (NT $245)

最貴的書:職業駭客的告白 : 軟體反組譯、木馬病毒與入侵翻牆竊密 (NT $460)

目前藏書:45


Readmoo

第一本書:21世紀的21堂課 (NT $355)

最貴的書:MVP製造機 (NT $397)

目前藏書:498

2020年9月2日 星期三

使用 ls 檔名出現單引號

最近在做系統轉移,要將內部使用的系統從 Windows 轉到 Linux,在執行某個功能後,發現產生出來的檔案名稱會被單引號包住。

原本第一個念頭是不是程式需要修改?檢查了一下,發現跟程式沒有關係!後來才發現,是程式產生出來的檔名裡面有特殊符號的關係。

因此使用 ls 指令時,顯示的檔名就會被單引號包住。

真是不經一事,不長一智呀。