顯示具有 ESP8266 標籤的文章。 顯示所有文章
顯示具有 ESP8266 標籤的文章。 顯示所有文章

2020年11月25日 星期三

OpenPLC 初體驗 /03/ - OpenPLC 階梯圖(LD)和結構化文本程式(ST)實作範例(ESP826 as Modbus Slave Devices)

網頁最後修改時間:2020/11/25


經過了前面幾篇部落格關於 OpenPLC 的介紹和開發環境的建置,從現在開始要進入到實作的部分。如果您只想看看,那麼可直接跳過這裡的說明,直接進入到章節中;反之,若是以學習 OpenPLC 為目的,請先準備好需要的東西,再跟著網頁一起做!

本篇網頁的目標:使用 OpenPLC 的階梯圖(Ladder Diagram, 簡稱 LD)和結構化文本程式(Structured Text Programming, 簡稱 ST)以 NodeMCU(板載 ESP8266, ESP-12E 模組)開發板上的按鈕,控制兩顆 LEDs 亮/滅;每按一次 FLASH 按鈕,兩顆 LED 將會依序點亮、同時點亮和同時熄滅。

要達到這樣的目的,下面是需要完成的部分:
1. NodeMCU 要轉換為 Modbus TCP Server(Slave Device);
2. 撰寫 OpenPLC 程式;
3. 新增 Slave Device 和上傳 OpenPLC 程式到 OpenPLC Runtime;
4. 建立 SCADA 與 OpenPLC Runtime 的連線和人機介面;

** 詳細的過程,請看(5)整體測試裡的影片。

本文以從底部基礎一直往上搭建的方式來做說明,整篇分為以下幾個部分:


2019年9月9日 星期一

{PCA9685}如何以緩動函數(Easing Functions)實現機器人伺服馬達的動作控制 #Arduino #ESP8266


網頁最後修改時間:2019/09/09


會認識緩動函數(Easing Functions)這個東西,是我寫完上一篇 "Q8Robot 機器人操作展示與頁面說明(R010 版本)" 之後找資料時看到的,如果有在做動畫的人,應該會對它很熟悉。

後來深入瞭解之後,看到了我想看到的東西,「怎麼用函數來模擬物體的動作方式?」簡單說,就是網頁開頭的那張圖所要表達的,「兩點位置之間的移動,可以怎麼呈現?」這也是此篇網頁要討論的重點。

接下來的內容,會一步步地說明,怎麼把方程式轉換成緩動函數?怎麼應用緩動函數控制伺服馬達?瞭解之後,不但可以應用到機器人步態動作中,也同樣能用於任何需要非常速動作的場合裡;像是呼吸燈、機器手臂動作、爬行運動、動畫呈現等...。

本篇網頁中,伺服馬達的驅動使用 PCA9685 模組。

2019年8月31日 星期六

Q8Robot 機器人操作展示與頁面說明(R010 版本)

網頁最後修改時間:2019/08/31

Q8Robot 機器人內建網頁伺服器(Web Server),本身也是一個無線網路基地台(AP Mode),因此只要有可上網的設備和裝置,就可以進入到它的網頁控制介面中,與其互動。

在這一篇部落格,不說其他的東西,只想要先來說說這幾個網頁控制介面詳細的用法,並且在每一個介紹之後,用網頁與 Q8Robot 機器人互動的實際影片來驗證這些操作。

2019年4月5日 星期五

如何使用 ESP8266 與手機 APP 控制 WS2812B(LED 閃爍效果、流星燈色環挑色)

網頁最後修改時間:2019/04/04

看過部落格 "怎麼用 Arduino 控制 WS2812B 做流星燈" 網頁的看倌,會不會覺得意猶未盡、想要再深入一點、多點變化的樣式,甚至想要隨時隨地的控制 LED 的閃爍效果呢?

在這篇網頁中,我們會利用手機作為人機介面並與 ESP8266 做 Wi-Fi 通訊,負責傳送 LED 樣式或流星燈色,讓 ESP8266 控制 WS2812 完成不同 LED 燈光變化的效果。

2019年3月1日 星期五

【IR #03】紅外線發射 @Arduino @ESP8266 @ESP8285


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

前兩篇(〔1〕〔2〕)已經說明了關於紅外線遙控的編碼和解碼的格式,這一篇將來繼續說說以 Arduino UNO / Nano 開發板以及 ESP8266(ESP-01 / 01S)為主的紅外線 LED 發射的線路以及實際應用;當然,ESP8285(ESP-01M)同樣可用,作法參照下面網頁中的說明。

2019年1月7日 星期一

Google Spreadsheet(試算表)之 ESP8266 溫濕度紀錄與趨勢圖


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

跟 Google 相處久了之後相信大家應該會發現,作業系統、瀏覽器、電子郵件、雲端硬碟、部落格、地圖、翻譯、YouTube等...,它提供的東西還真不少!

不過這篇網頁不是 Google 的推薦文,而是要來介紹它的試算表功能:用它所提供的 Google Apps Script 撰寫能操作試算表的網路應用程式(Web Apps),用來接收來自遠端(ESP8266)的 DHT11 溫濕度值,再寫入到試算表中繪製成即時圖表。

要達到這樣的目的,除了撰寫客戶端的程式之外,最重要的部分就是撰寫伺服器端處理 HTTPS GET / POST Request 的程式,也就是網路應用程式。
網路應用程式是將由 JavaScript 撰寫好的 Google Apps Script 掛載在 Google 試算表(類似 Microsoft Excel VBA 程式),經過發佈、部署為網路應用程式而成。

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 指令要怎麼下 !

2017年11月18日 星期六

小型兩軸伺服馬達 (舵機) 雲台 (Pan-Tilt Kit) 動作展示

網頁最後修改時間:2019/05/08

這篇網頁主要用影片來展示組裝之後的雲台動作。

經由影片中程式的設定,可以自由設定適當的水平 (Pan) 和垂直(Tilt)伺服馬達旋轉的三個角度值,用來做雙軸同動的展示。

2019/05/08 新增兩個學習套件的展示影片:
  • 手機控制雲台的水平(左右)與垂直(上下)轉動;
  • 雲台跟隨和自穩的運動控制;

2017年11月17日 星期五

如何使用 AT 指令讓同在 AP+STA 模式下的 ESP8266 互相通訊 ?

網頁最後修改時間:2017/11/17

通常與 ESP8266 通訊都是單方面發送或是接收其他 Wi-Fi 裝置的訊息,比較少機會直接兩顆以上 ESP8266 做通訊,較多是連線到家中路由器取得 IP 之後再做通訊;前者受限於同時最多只有 5 個 linkID,而後者可以很多。而在這篇網頁中,是利用回答網友問題的同時,分享測試的結果,描述同處在 AP+STA 模式下的兩顆 ESP8266 如何成功建立 TCP 通訊。

2017年10月7日 星期六

*0*Cayenne*0* 初遇 Cayenne - 建立 ESP8266 與 Cayenne 的物聯網連線與上傳資料

網頁最後修改時間:2017/10/07

Cayenne – the world’s first drag-and drop IoT project builder. 第一個使用拖拉方式建立物聯網 (Iot, Internet of Thing) 專案的建構者。藉由 Cayenne,工程師、創客、網路營運商和系統整合業者能夠快速且容易的的開發與部署各行業間的物聯網解結方案。

在本篇網頁中,將會介紹 Cayenne 的專案建立與使用 ESP8266 與其連線的方法,並且在最後以 DHT11 為範例,說明如何上傳溫溼度值到 Cayenne 上,建立可供觀看操作的 Dashboard。

2017年9月13日 星期三

*3*nRF24L01+*3* 初遇 Blynk - 建立從 nRF24L01+ 到 ESP8266 再到 Blynk 的 SHT31 單點無線溫溼度傳輸物聯網


 網頁最後修改時間:2017/09/13

經過前面幾篇關於 nRF24L01+  的網頁的介紹,相信讀者對於 nRF24L01+ 基本的資料傳送與接收有了一定程度的了解。再者,番外篇也特別以範例介紹了 Arduino 開發板和 ESP8266 無線網路模組利用 AT 指令連線的過程,最後以 Blynk 手機 app 的一個 Project 範例作為結束,展示了兩個無線裝置之間的遠端數據如何進行通訊。

我們最終的目的:就是要利用 nRF24L01+ 構建無線溫溼度節點群組 (sensor nodes),群組中的主節點負責接收其他節點的溫溼度數據,利用有線或無線網路 (ESP8266, WiFi Shield ... etc ) 的方式向伺服器 (例如 Blynk Server 、ThingSpeak ... etc ) 傳送並儲存數據,能夠在手機隨時監控與查詢各節點的溫溼度。

在這篇,將完成單點溫溼度無線傳輸與數據上傳 Blynk Server 的部分。與之前討論不同的是:發射端加入休眠功能,不傳送的時後,nRF24L01+ 與 Arduino Nano 進入 Power Down 休眠模式節省電力;接收端的整合型 LCD 增加一個可處理儲存於 Flash 字串的顯示函式,並且修改程式以解決 Blynk Arduino 函式庫記憶體需求的問題。

2017年9月2日 星期六

初遇 Blynk ( 物聯網手機 APP ) - 如何使用 Arduino 和 AT 韌體 ( Ai-Mod, AT v1.2.0.0 based on SDK v1.5.4.1 ) 的 ESP8266 (ESP-01, ESP-01S) 連上 Blynk 伺服器和儲存數據 {*2_1*nRF24L01+*2_1*}

網頁最後修改時間:2017/09/02

之前有網友詢問關於 ESP8266, ESP-01 使用 AT 指令方式連不上 Blynk 伺服器的問題,當時我的直覺認為不是 AT 韌體版本的問題,就是通訊速率的關係,所以就這樣回了!不過,最後他也沒嘗試成功,只好使用建議的 Standalone 的方式再試試;但是,我還是不知道他最後成功了沒有 ?

剛好!這篇網頁的前一篇 (*2*nRF24L01+*2* SHT31 單點無線溫溼度傳輸) 的最後提及到 :"之後會需要將收到的溫溼度值上傳到雲端去,希望能利用手機來監控與查詢"。也因為這樣,所以寫了 *2*nRF24L01+*2* 的番外篇,順便來初遇認識一下 Blynk;怎麼使用 Arduino Blynk 函式庫控制 ESP8266 的 AT 指令連線 Blynk Server,以其作為中介與 Blynk app 做雙向溝通。