2018年6月18日 星期一

2018 年第 24 周記事 : 端午祭祖與年中計畫

本周末適逢端午節連假, 因二哥要補習, 姊姊上周才回來, 所以只有菁菁與水某跟我回鄉下祭祖. 從昨晚開始下了一整天雨 (典型的梅雨), 趁早上 9 點時雨勢稍歇趕緊拜拜.

週二去立志中學參觀後決定讓菁菁讀她喜歡的美容科, 6/20 還是要網路填志願, 仍然將三民填第一志願看看是否會上. 決定不讀觀光後她說李麥克也不去了, 我看她確實對英文沒有很大興趣, 就問 Loren 老師還可不可以退費, 結果說退費要扣 10% 學費, 考慮之後週五晚上還是去辦退費了. 等明年二哥學測結束後, 基本上我家的補習時代應該就正式結束了. 我討厭升學補習, 但贊同才藝補習. 小狐狸不用補習後換我去補習, 我打算去李麥克樓下的京橋學日語, 其實早在姊姊上李麥克時我就想去學了.

週六早上菁菁與水某搭小姨子的車先回鄉下岳父的鐵皮屋幫忙包粽子, 我則花了一整天在整理高雄的兩間浴室與書櫥, 等下午粽子包好再去接她們回家. 今年除了岳母包的粽子外, 建興的太太小琪也送了 10 顆她包的粽子給我們. 母親過世後的這三年每年都會包粽子給我們的高樹阿姨今年母親節前仙遊, 以後再也吃不到她包的好吃粽子了.

過了端午 2018 已經去掉一半了, 下半年我打算開始做這些 :
  1. 製作門牌
  2. 製作測候站木屋
  3. 製作垂直式風機
  4. 完成菜園灌溉自動化
  5. 到京橋學日語
  6. 續寫 AutoIt 實戰
我是個射手座行動派, 崇尚即知即行劍及履及, 最缺的就是完成計畫所需的時間, free time 零散的我必須在時間碎片中打游擊才可能做得了事, 這真是在考驗我時間管理的能耐啊.

2018年6月17日 星期日

好站 : KD 的學習筆記

今天在找搜尋 Numpy 資料時找到這位 KD (張凱迪) 的部落格, 裡面整理了許多不錯的 Python 與 Javascript 學習筆記, 相信花了不少時間, 找時間來好好學習 :

https://blog.kdchang.cc/archive/

其中包含相當多的 Javascript 資料結構筆記, 這比較少見,

ESP8266 WiFi Repeater (NAT Router)

之前在網路上看到有人將 ESP8266 拿來做 WiFi 中繼器用, 我對此非常有興趣, 不過一直沒時間測試. 端午連假這幾天想要試試, 卻遍尋不著當初記下來的網址, 重新搜尋找到下列 GitHub 上的文章, 但今天忙了一整個白天可說是白忙了, 測試失敗 :

A full functional WiFi Repeater

此文目的是透過燒錄韌體將 ESP8266 變成一個 WiFi 中繼器, 或稱為 WiFi 延伸器 (Extender), 較正式的名稱應該是 NAT Router. 中繼器本身具兼具 STA 與 AP 功能, 利用 STA 功能連線 WiFi 基地台以與 Internet 連線; 另外 AP 功能則是接受其他 Station 連線, ESP8266 會在 Station 與 WiFi 基地台雙向透通傳遞封包.

其韌體可在 GitHub 下載 :

https://github.com/rubfi/esp_wifi_repeater/

燒錄韌體之前需先將 ESP-01 的 GPIO 0 接地以進入燒錄模式. 下面是 512KB Flash 的 ESP-01 板設定方式, 若使用 1MB Flash 的 ESP-01 則將 Flash  size 改為 1MByte :






但燒錄完拔除 GPIO 0 的接地後重開機, 開啟手機 WiFi 掃描基地台並沒有找到 SSID 為 MyAP 的基地台, 改用 GitHub 下載檔案中的 Flash 燒錄程式重新燒錄韌體也是一樣 :




此燒錄軟體的 Flash size 是以 Bits 為單位, 上面 4MBit 是給 512KB Flash 的 ESP-01 用的, 因為 0.5 MB*8 Bits= 4 MBits. 若使用 1MB Flash 的 ESP-01, 則 Flash size 要選 8 MBit. 但不管我用 512KB 或 1MB 的 ESP-01, 燒錄後結果都一樣沒作用, 只好暫時放棄, 有空再來研究問題在哪裡.

參考 :

DIY pendrive size WiFi repeater using ESP-01 ESP8266 module.
POWERFUL WI-FI REPEATER (NODE-MCU)
CAN ESP8266 BE MADE TO WORK AS A WIFI REPEATER?

2018年6月16日 星期六

好用的 Python 編輯器 Thonny

前天因為要幫水某焊接項鍊的鍊條, 順便將前陣子新買的六塊 D1 Mini 拿出一塊來焊一焊, 然後燒錄最新的 1.9.4 版韌體, 經測試確實為良品, D1 Mini 真是實踐物聯網的好物啊!  MicroPython 快一年沒玩了, 還真的有點生疏, 於是我找出上回在 momo 買的 "超圖解 Python 物聯網實作入門 (旗標, 趙英傑)" 來看, 當作是複習.

開卷果然有益, 我在 3-1 節讀到作者介紹的 Python 編輯器 Thonny, 雖然我慣用 EditPlus 來寫 Python 程式, 不過有新工具也不妨試用看看. Thonny 是波羅的海三小國之一愛沙尼亞 (Estonia) 的 TARTU 大學計算機科學系所研發的 Python 編輯器, 此軟體輕盈小巧, 非常適合用來開發 Python 應用, 詳見官網介紹 :

http://thonny.org

在右上角的 Download 中可下載各平台之安裝版本, 我下載的是 Windows 最新 2.1.17 版. 安裝完成後執行畫面如下 :




可見 Thonny 有上下兩個視窗, 上方為程式編輯器, 底下是 Shell 介面. 在上方編輯好指令碼後, 按 Run/Run current script 或 F5 會先提示儲存指令檔, 然後才執行程式. 下方 Shell 介面會顯示程式逐列執行之結果. 也可以在下方 Shell 中以互動式方式執行 Python 命令.

在功能選項 Tools/Options 中可設定編輯器, 勾選 Editors 頁籤中的 "Show line numbers" 可顯示行號 :




而 Fonts 頁籤則可設定字型與其大小 :




基本上我覺得比 EditPlus 好用, 因為它可以直接執行 Python 指令檔, 不需要另外開啟命令提示字元視窗去執行 Python 程式. 在檔案總管中點選 .py 檔案, 按滑鼠右鍵, 點選 "Edit with Thonny" 即以 Thonny 開啟此程式 :




不過要注意的是, Thonny 是在自帶的 BundledPython 環境下執行 Python 指令 (注意是 32 位元版), 並不是在本機所安裝的 Python 環境下. 點選 Tools/Manage packages 功能項可知, 剛安裝好的 Thonny 只有 pip 與 setuptools 兩個套件而已 :





亦即雖然本機的 Python 中已經安裝要用到的套件, 但那與 Thonny 無關, 要順利用 Thonny 執行此 Python 程式必須在 Thonny 的 Python 執行環境中安裝需要用到的套件才行. 安裝套件方式很簡單, 例如要安裝 Numpy, 就在上方文字框中輸入 Numpy, 按 Search 鍵就會幫我們找到最新的 Numpy 版本, 再按底下的 Install 鍵即可 :




安裝完成後左方的套件列表會更新, 顯示 Numpy 套件已可使用了. 相反地若要刪除一個現有\套件, 點選該套件後按 "Uninstall" 鈕即可刪除 :




安裝好 Numpy 就用下方的 Shell 介面測試看看 nparray 功能 :




但是在安裝技術分析套件 TA_LIB 時卻踢到鐵板, 雖然搜尋 "TA_LIB" 可順利搜尋捯此套件, 但安裝時卻出現 "error: Microsoft Visual C++ 14.0 is required" 的錯誤訊息 :




原因是 TA-Lib 是用 C++ 撰寫的, 經二次包裝成 Python 模組, 因此安裝時需要 VC++ 14.0 編譯環境, 亦即需安裝 Visual Studio 2015, 參考之前測試 TA_LIB 的這篇 :

Python Fintech 學習筆記 : 安裝技術指標套件 TA-Lib

為了 TA_LIB 卻要安裝龐大的 Visual Studio 實在太費事了, 其實只要安裝編譯過的 TA_LIB 套件之 wml 檔即可, 此 wml 檔可在加州大學網站下載 :

https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib

但要注意, Thonny 自帶的 BundledPython 3 是 32 位元版的, 因此要下載 32 位元的 wml 檔 :




將此下載之 wml 檔 TA_Lib-0.4.17-cp36-cp36m-win32.whl 放在任一個目錄例如 D:\Python\test 目錄下, 然後點選 "Tools/Open Sstem Shell", 這會開啟一個專屬於 BundledPython 的命令提示字元視窗, 在這裡用 pip 安裝的套件會安裝到 BundledPython 裡面 :




切換目錄至存放 TA_LIB 之 wml 檔處, 然後用 pip3 install 安裝此 wml 檔 :




安裝成功後再點選 "Tools/Manage Package" 即可看到 TA_LIB 了 :




使用 Shell 介面匯入 TA_LIB 函式庫測試平滑移動平均如下 :




2018年6月15日 星期五

美國憲法第一修正案

今天在雅虎新聞看到老包提到美國憲法第一修正案旨在保護言論自由, 好奇之下查了 Wiki 百科說明, 原來它的範圍不只言論自由, 事實上是含括了宗教, 新聞, 言論, 以及結社等人民的四大自由, 屬於美國權利法案 (即美國憲法修正案前十條) 的一部分, 參考 :

https://zh.wikipedia.org/wiki/美国宪法第一修正案

"第一修正案(Amendment I) 禁止美國國會制訂任何法律以確立國教;妨礙宗教自由;剝奪言論自由;侵犯新聞自由與集會自由;干擾或禁止向政府請願的權利。"

此修正案起源於維吉尼亞自治領所制定之維吉尼亞權利法案, 其中第 12 條提到 : 

"出版自由乃自由的重要保障之一,絕不能加以限制;只有專制政體才會限制這種自由。"

事實上專制政體不只限制出版自由而已, 所有四大自由全部被視為會顛覆政權的毒蛇猛獸而一律加以限制. 獨裁政權 (幾乎都號稱民主) 大都使用暴力革命取得權力 (但希特勒與墨索里尼是例外), 因此對於失去權力會因極度缺乏自信而感到無限焦慮, 因此毫無疑問都會限制與控制人民的自由. 

推翻人者恆被推翻, Oh, My God! 人類到底要輪迴幾次才學得會啊! 

2018年6月14日 星期四

農藥機器人

今天在東森新聞看到這篇 :

旋轉吧!農藥機器人 省95%除草劑 農夫笑了

真是太有創意了! 大熱天的就讓機器人幫忙做農事, 農夫就在樹下納涼吧! 反正太陽能板會產生源源不絕的電力, 連續工作 12 小時也不怕中暑.




這款機器人是瑞士 Ecorobotix 公司預計 2019 年上市的農藥機器人, 不過影片我看起來倒像是拔草機器人. 我想它的手臂尖端應該是注射筒, 精準地將適量的除草劑注入雜草根部, 這只是雛形, 實際上太陽能板下應該會有一個農藥的藥桶才對.

2018年6月13日 星期三

太陽能驅動的 WiFi 測候站

今天在 Instructable 網站看到下面這篇文章, 作者以 D1 Mini 板子為主控器, 以 BME280 感測器收集溫溼度, 大氣壓力與緯度等數據, 透過板上 ESP8266 晶片的 WiFi 功能連線到 Internet, 利用 Blynk App 與 Blynk 函式庫, 即可在手機上遠距顯示測候資料.

SOLAR POWERED WIFI WEATHER STATION




我去年也做過這項實驗, 不過我是將數據送到 ThingSpeak 網站而非 Blynk. 我也好久沒用 Blynk 了, 等 FinTech 搞定就可以回來玩 Blynk 了.