2018年12月18日 星期二

ATtiny167(Digisprak Pro)開發板 Arduino IDE 編輯環境設置與使用說明


網頁最後修改時間:2018/12/18


這一篇所介紹 ATtiny167 開發板可說是 ATtiny85 開發板的升級版:具有 16 KBytes Flash 記憶體(安裝 bootloader 之後,可使用 14.5 KBytes)、512 Bytes EEPROM、512 Bytes SRAM,支援 I2C、true SPI、UART、LIN、USI 通訊,以及可配置多達 14 個 GPIO、10 個 ADC 通道和 3 個通道 PWM(6個接腳可指定輸出)等......硬體配置,兩者都採用同類型 bootloader(micronucleus),支援 Arduino IDE 通過 USB 上傳程式,對於熟悉 Arduino IDE 開發環境的使用者,很容易就能上手!

再者,"ATtiny85 開發板使用說明,與 Arduino IDE 編輯環境設置" 網頁裡有部分內容已有點過時,趁這次機會也做個更新,補上最新的資料。

事不宜遲,趕緊來看看吧!

2018年12月4日 星期二

【IR #02】淺談紅外線遙控通訊協定 @Arduino @Matlab @Introduction


網頁最後修改時間:2018/12/04

在這一篇關於 "淺談" 紅外線通訊協定(IR Protocol)的部落格網頁,將延續上一篇的紅外線遙控器的按鍵解碼,以實際的例子說明 NEC 和 Philips RC6 的紅外線編碼格式。

就如同上面的圖片,根據解碼出的 Philips RC6 紅外線遙控訊號原始數據進行階梯圖繪製,這個圖形可方便用來輔助學習與了解 RC6 的編碼格式,並驗證所得資料的正確性;沒有繪製成階梯圖,是很難從所得到的原始數據看出端倪的!

2018年11月26日 星期一

【IR #01】解碼紅外線遙控器按鍵值 @Arduino @Introduction


網頁最後修改時間:2019/01/12

【2019-01-12 補充 ESP8266 的紅外線接收說明】

嗯......好的,作為每個系列的入門的第一篇,總是要來點基本知識說明 ~!@#$%^&*)(*&^%$...
想到都快寫不下去了!

還是先上個沙拉填填肚子,先來個紅外線遙控器按鍵解碼,再來把這些解碼後的按鍵名稱與數值顯示在 OLED 螢幕上;至於主菜的部分:紅外線遙控編碼協定,下一篇再來好好說說吧!

2018年11月11日 星期日

當 ESP8266 遇上中華電信 IoT 智慧聯網大平台 { 入門 - 07 } - 結合 Arduino + ESP8266 實現 MQTT 主題訂閱與接收


網頁最後修改時間:2018/11/11


經過了前面幾篇關於 MQTT 控制包格式的講解和演示後,相信各位對於 MQTT 主題訂閱和訊息發佈都有了一定的了解。

作為入門系列的最後一篇,此篇將針對 "{ 入門 - 06 } - 了解 MQTT 協議,學習如何訂閱 MQTT 主題與接收 MQTT 發佈消息" 所說的內容,撰寫實現它的程式碼。

2018年10月8日 星期一

當 ESP8266 遇上中華電信 IoT 智慧聯網大平台 { 入門 - 06 } - 了解 MQTT 協議,學習如何訂閱 MQTT 主題與接收 MQTT 發佈消息

網頁最後修改時間:2018/10/08

不同 QoS 的主題訂閱與消息發佈通訊流程
對於 MQTT 協議規範的介紹,前面已經針對使用中華電信 IoT 智慧聯網大平台 ( 下面簡稱 平台 或 CHT IoT SP ) 講述了消息發佈的流程,但都只侷限 QoS=0 的情況,這是因為 CHT IoT SP 現只支援 QoS=0 的通訊。

由於 MQTT 的主題訂閱與接收是重點,因此在此篇會另外引入支援完整 QoS 0、1 和 2 的 HiveMQ MQTT Broker 來輔助此篇的說明,用它來了解一下,不同的 QoS level 對於訂閱 MQTT 主題和接收來自 MQTT Broker (伺服器) 發佈的消息有著什麼不一樣的通訊流程以及注意的事項。

2018年9月21日 星期五

當 ESP8266 遇上中華電信 IoT 智慧聯網大平台 { 入門 - 05 } - 結合 ESP8266 發佈 MQTT 消息

網頁最後修改時間:2018/11/10


經過了上一篇的說明,已對於發佈 MQTT 消息到中華電信 IoT 智慧聯網大平台 (下面簡稱 CHT IoT SP 或 平台),不論是通訊的過程或是控制封包格式有了基本的了解。而在實際的應用上,是不會直接 (也不應該) 自己去合成控制封包來發送,因為這也太折磨人了!

在這一篇,我們來換個與 MQTT Broker 溝通的方法,改採用 Arduino 開發板加上 ESP8266 WiFi 模組的方式。

ESP8266 負責 WiFi 通訊,Arduino 開發板負責 ESP8266 的操作和 MQTT 控制封包的發送與接收,與定時連續發佈三個感測器的資料,並持續維持與 MQTT Broker 之間的聯繫。

2018年9月11日 星期二

當 ESP8266 遇上中華電信 IoT 智慧聯網大平台 { 入門 - 04 } - 了解 MQTT 協議,學習如何發佈 MQTT 消息

網頁最後修改時間:2018/09/30

中華電信 IoT 智慧聯網大平台 ( 下面簡稱 平台 或 CHT IoT SP ) 的API 文件介紹可以知道,CHT IoT SP 支援 RESTful、MQTT 和 WebSocket 三種傳輸協定;關於 RESTful,已經在入門網頁 [01][02][03] 做過介紹。從這篇開始到接下來的幾篇,將以 MQTT 協議為主,先簡單的說明 MQTT 通訊所會用的控制封包的格式,再利用 ESP8266 做驗證,最後將這些結果配合 Arduino 開發板完成一個可以自動發佈消息的 MQTT 物聯網裝置。

此篇網頁以了解基本 MQTT 協議的控制封包格式為主,配合 Wireshark 抓取特定TCP 連線的封包為輔,直接由電腦發送不同的 MQTT 控制封包 (Control Packets):CONNECT (連接伺服器)、PUBLISH (發佈消息)、PINGREQ (心跳請求)、SUBSCRIBE (訂閱主題) 和 DISCONNECT (斷開伺服器) ... 等,得到完整的發送與接收格式 。利用這樣的方式可得到完整的客戶端 (Client) 與服務端 (Server) 之間一來一回的 Request 和 Response 控制封包格式,不但可用來直接與 MQTT 規格文件做對照來加速了解用法,而且寫程式的時候也可以直接套用。

在本篇的最後,用影片演示了 ESP8266 在 AT 指令的透傳模式下,如何與 CHT IoT SP 進行 MQTT 通訊並發佈消息,以此作為接下來撰寫程式的依據。

2018年8月18日 星期六

當 ESP8266 遇上中華電信 IoT 智慧聯網大平台 { 入門 - 03 } - 使用 Arduino + ESP8266 上傳 SHT31 溫溼度數據

網頁最後修改時間:2018/08/17

經過前面幾篇網頁與中華電信 IoT 智慧聯網大平台 ( 網頁中簡稱 CHT IoT SP ) 接觸之後,知道了怎麼使用 Postman 和 ESP8266 AT 指令,確認 RESTful API 協定與 CHT IoT SP 互動的 Request 和 Response 格式的正確性,也能撰寫程式讀取與解析 CHT IoT SP 回傳的資料。

現在還缺的,就是知道怎麼上傳感測數據 ?

2018年8月11日 星期六

當 ESP8266 遇上中華電信 IoT 智慧聯網大平台 { 入門 - 02 } - 設備感測數據讀取與 (JSON) 解析

網頁最後修改時間:2018/08/11

延續上一篇 RESTful API "讀取設備所有感測器最新一筆感測資料" 協定  HTTP GET Request 和 Response 格式測試所得到的結果,改用 MCU 來完成。

2018年8月6日 星期一

當 ESP8266 遇上中華電信 IoT 智慧聯網大平台 { 入門 - 01 } - 如何使用 ESP8266 利用 AT 指令取回中華電信 IoT 智慧聯網大平台上的設備感測器數據

網頁最後修改時間:2018/08/06

前段時間找資料的時候,無意間找到中華電信 IoT 智慧聯網大平台 (下面簡稱為 CHT IoT SP ),當時倒是沒很用心深入的去看裡面的內容,只知道大致上跟 ThingSpeak 類似 (部落格上面很多應用的網頁),不想太多且又是中華電信的會員的條件之下,就馬上申請了一個使用帳號。

這幾天發表了兩篇關於 ESP8266 AT 指令下透傳通訊的網頁 ( [1], [2] ) 的同時,就想著接下來怎麼讓它實際用到物聯網上去。ThingSpeak 相關應用的網頁在部落格上太多了,所以既然台灣自己有物聯網平台,怎能捨近求遠呢?那就決定是 "你" 了!

入門系列最終的目的很簡單:設定與取回 CHT IoT SP 上的資料。而這一篇將先簡單介紹 CHT IoT SP 的帳號申請、範例專案建立以及使用 ESP8266 AT 指令取回裝置感測器數據。

2018年8月1日 星期三

如何使用 MCU 建立與其他 ESP8266 的 UDP 透傳通訊

網頁最後修改時間:2018/08/01

延續前一篇說明如何以手動輸入的方式建立 ESP8266 的透傳模式後,這一篇將以此做為依據撰寫 MCU 程式操作 ESP8266 進入 UDP 透傳模式,並同時與電腦和另一顆 ESP8266 進行 UDP 透傳通訊。

2018年7月26日 星期四

ESP8266 AT 指令下的透傳模式

網頁最後修改時間:2018/07/26

AT 指令下的 ESP8266 有兩種傳輸模式可以設置:普通傳輸模式和透傳模式;兩者都能使用在 TCP 與 UDP 網路協議下,雖然透傳模式只能使用在單連線通訊,但是在資料傳輸的處理上卻相對非常方便。一但使用 AT 指令建立好透傳模式,通訊雙方的資料傳輸就是所"鍵"即所傳,不需要特別再去處理 +IPD 為前的訊息資料,一切就如同一般的資料傳輸一樣,所要做的就是這一篇網頁所要討論的:AT 指令要怎麼下 !

2018年3月2日 星期五

{單晶片} TCS34725 顏色感測器取色與 APA102 RGB LED 顯色測試

網頁最後修改時間:2018/03/02

延續上一篇使用 Arduino UNO 將取得的彩色紙顏色用WS2812 / APA102 全彩 LED 顯示後,這一篇改用單晶片 ( AT89S52 ) 作為主控制器,將取得的彩色紙顏色用 APA102 全彩 LED 做顯示。

2018年2月20日 星期二

{Arduino} TCS34725 顏色感測器取色與 WS2812B / APA102 RGB LED 顯色測試

網頁最後修改時間:2018/02/27

早前在部落格有一篇關於顏色辨識的網頁 "{ Arduino } TCS3200 顏色辨識感測模組的校正、取色與顯色說明";使用之前要先進行白平衡校正,放置欲取色的物體之後,每隔一段時間取色完成後會輸出取色之後的 RGB 值並由 WS2812B 全彩 LED 顯示結果。

而此篇網頁改用 TCS34725 做為取色的感測器,加入一個開始取色的按鈕,經 Gamma 校正後使用 WS2812B (或 APA102) 全彩 LED 顯色,取色後的原始數據與 Gamma 校正後的數據可輸出至 Serial Moitor 或 (和) 整合型 LCD 上。實際測試後的結果顯示,效果更佳、更快!可自行參考網頁中測試的影片。