ESP8266系列控制板最初的功能是充當Wi-Fi介面卡,讓其他微控器(如:Arduino或Espruino)透過UART介面傳送AT指令控制ESP8266聯網。最近買了一塊跟Arduino Uno相容,搭載ATmega328和ESP8266微控器,也就是具備Wi-FI無線聯網功能的Arduino Uno控制板。這塊板子沒有名字,商品標題是:WiFi R3 ATmega328P+ESP8266 (32Mb memory), USB-TTL CH340G,底下簡稱UNO+WiFi R3板。
LINE Bot聊天機器人程式開發教學(七):從ESP8266/Arduino控制板觸發Line發布訊息
本文將使用ESP8266控制板(如:NodeMCU或Wemos D1 mini)製作「一鍵」發Line訊息的物聯網按鈕。假設在廚房放一個物聯網按鈕,按下它就發Line通知老公洗碗;在門口放一個按鈕,按一下Line就會發送空氣品質訊息;把按鈕改成「磁簧開關」安裝在門窗,或者「PID人體紅外線偵測器」,這個小裝置就變成防盜器,若門窗被打開,Line就會發送入侵通知。
LINE Bot聊天機器人程式開發教學(六):讀取並傳回空氣品質狀況給使用者
本程式只需處理並回應文字訊息。假設用戶輸入「空氣」文字,這個Line聊天機器人將查詢空氣品質並回應(reply)給使用者,這部份的程式碼如下:
Acer 4741G筆電更換CMOS電池、升級固態硬碟和Windows 10、拆換18650鋰電池
前一陣子打算把Acer 4741G舊筆電給女兒使用,這筆電是2010年製造,採Core i3處理器、NVIDIA GeForce 310M顯卡、4GB DRAM和1TB硬碟,雖然規格很不起眼,但我當初也是用它完成了《超圖解Arduino互動設計入門》第一版書籍的全部插畫、文字和程式。因為太久沒使用,CMOS電池和主電池都已經沒電,每次開機都要重設時間。幸好,這台筆電不像某些新型筆電,為了追求美感或輕薄而使用一體成型的機殼,或用膠水黏合本體而不易維修或升級。
LINE Bot聊天機器人程式開發教學(五):使用Promise風格的request-promise讀取資料開放平臺的天氣品質JSON資料
request模組使用「回呼函式」執行非同步任務。「建立Node.js版的Echo Bot」這一篇文章使用的Line程式庫則採用稱為Promise(直譯為「承諾」)的非同步程式設計風格。這兩種非同步程式語法的差別在於,一個是把回呼函式嵌套在處理函式裡面,另一個則是用“.then”指令,串連回應函式(註: “then”有「然後…」之意):
LINE Bot聊天機器人程式開發教學(四):佈署與測試Echo Bot
底下是本程式專案的檔案結構,其中的Procfile是Heroku平台環境的應用程式(也就是“dyno”)設定檔,其中只包含一行敘述:“web: node index.js”代表指定網站伺服器以node服務執行index.js。本範例檔包含ejs樣板,但下一篇的程式才會用到。
LINE Bot聊天機器人程式開發教學(三):建立Node.js版的Echo Bot
在LINE頻道的設定畫面中,我們必須替LINE頻道設定接收LINE訊息的自訂程式(也就是LINE 機器人程式)網址,這個網址稱為Webhook(註:hook代表「掛勾」)。假設筆者把LINE訊息處理程式放在swf.com.tw網站的linewebhook路徑,那麼,每當有人發送訊息給我的LINE機器人,LINE公司的伺服器將以底下的HTTP POST請求格式,將訊息發送給我的網站伺服器:
LINE Bot聊天機器人程式開發教學(二):註冊與設定Heroku平台應用程式
撰寫Node.js程式之前,先替網站程式找個安頓之處,本文採用Heroku雲端應用程式平台。「雲端應用程式平台」類似出租套房,地主蓋了樓房,將它分隔成不同尺寸的套房,每個套房都有獨立的水電和網路等基礎設施,套房裡面住著不同的房客。
LINE Bot聊天機器人程式開發教學(一):建立頻道
聊天機器人程式的處理架構如下,LINE公司的訊息伺服器(Messaging Server)負責接收與回應用戶端的訊息,並且管理LINE應用程式的權限。當LINE伺服器收到用戶端的訊息時,它會把訊息轉送給我們開發的「聊天」機器人程式,而此程式碼存放在我們自己的網站伺服器。
MQTT教學(九):使用ESP8266上傳資料到ThingSpeak MQTT伺服器
延續上一篇文章的說明,本文將使用ESP8266控制板(如:NodeMCU或Wemos D1 mini),經由Wi-Fi網路和MQTT協定傳送DHT11的溫濕度值到ThingSpeak雲端平台。底下是本文的硬體接線:
MQTT教學(八):使用MQTTlens上傳資料到ThingSpeak的MQTT伺服器
本文將使用MQTTlens,測試把溫濕度資料上傳到雲端IoT平台。雲端IoT平台用於儲存、管理、分享和處理各種物聯網裝置上傳的數據。例如,從各地上傳空氣品質感測器的GPS座標地點與採集到的數據,然後結合線上地圖,描繪即時或者過往的空氣品質變化。
聲音檢測∕聲音放大器(二):計算聲波峰對峰值(振幅大小)的程式
loop()函式當中的while迴圈,用於在設定的時間間隔(10ms)內,不停地讀取類比A0(聲音)值,並且比較出最低和最高峰值。以讀取下圖左、灰底的訊號為例,一開始sigMin變數刻意被設定成很高的值(2000),因此第1個類比輸入值將成為「最低峰值」;sigMax變數也刻意被設定成0,所以第2個類比輸入值將成為「最高峰值」: