2015年10月31日 星期六

{ 樹莓派 + Arduino } 紫外線強度偵測 ( 使用大型數字顯示 )

網頁最後修改時間:2015/10/31

在這篇網頁中,將說明賣場紫外線( UltraViolet, UV ) 強度偵測模組使用的方法,以及將所取得的類比電壓轉換為數位數值輸出,並經由所求得的多項式方程式算出相對應的類比電壓以及紫外線指數值。最後將相關資料使用大型數字的方式顯示在整合型 LCD 上。

如何在整合型 LCD 顯示大型數字,請參考 "{ 單晶片 + Arduino + 樹莓派 } 整合型 LCD ( @ I2C 模式 ) 的漂亮數字顯示 ( 自訂字型或圖案 ) " 網頁中的說明與範例展示影片。

/*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*
有購買商品的使用者,網頁中所需相關資料已放置於雲端硬碟,請自行下載使用!
其餘的使用者,請自行依照提供之連結下載相關資料,程式碼複製貼上使用!
/*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*

2015年10月29日 星期四

{ 單晶片 + Arduino + 樹莓派 } 整合型 LCD ( @ I2C 模式 ) 的漂亮數字顯示 ( 自訂字型或圖案 )

網頁修改時間:2015/10/31

前一陣子在找一些資料的時候,無意間在 youtube 網站上看到一個影片,內容是在 LCD 上顯示環境中的溫、濕度與塵埃濃度。一聽之下或許覺得沒什麼,因為在部落格中早就有這些東西存在!但是令我駐足觀看的是:它所使用的數字顯示很大、很清楚也很漂亮,作為一眼就能清楚得知數值大小,效果很好!因此就產生了這篇網頁!

2015年9月26日 星期六

ESP8266 入門學習套件支援 Arduino IDE 開發環境之安裝、使用說明與範例

網頁最後修改時間:2016/01/08
本篇網頁介紹 ESP8266, ESP-01 如何直接使用 Arduni IDE 開發、編譯和上傳程式,捨棄原本需要額外處理 AT 指令的微控制器,只要 ESP8266, ESP-01 自己本身就可以搞定所有事!

在接下來的網頁內容,將會以上面那張照片為例,使用 ESP8266, ESP-01 開啟 mDNS 服務,使用者可以使用網頁 ( http://esp8266.local/, http://[esp8266_ip] ) 或是網址輸入的方式控制二通道光隔離繼電器模組所連接的燈泡開啟或是關閉。

NOTE: 網頁中的操作會修改 ESP8266 現有的韌體,請先看清楚網頁內容之後再操作。一但進行操作,任何風險請自己負責!

-*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//**/-*-
網頁中的程式碼使用賣場中的 "二通道光隔離繼電器模組" 和 "ESP8266 入門學習套件" 測試通過。
/*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*

2015年9月23日 星期三

使用 Arduino IDE 開發 ESP8266 物聯網應用 - 取回 ThingSpeak 特定 Channel 和 Field 最後一筆資料

網頁最後修改時間:2015/09/22

上一篇 "使用 Arduino IDE 開發 ESP8266 物聯網應用 - ThingSpeak, HTTP GET / POST 資料上傳方法"網頁中提到了使用 HTTP GET 與 HTTP POST 上傳資料到 ThingSpeak IoT Server 的方法;這一篇反過來,要說明如何取回 ThingSpeak IoT Server 特定 Channel 和 Field 上最後一筆資料。

ps. 其實寫到最後發現!只有一個情況下,不管如何只能取回最後一筆資料;但另外一個情況則是,相同的程式碼處理下,取回多筆資料會比取回最後一筆資料來的容易解釋!

為什麼是最後一筆,而不是全部或是其中一點的資料 ? 原因是:除非在資料集中的每一個數據都很重要,不然最後一筆資料就是最重要的數據;另外一點,就是語法都差不多,差異在於後面所接的參數不同而已,只要看過下面所舉的例子之後,舉一反三絕不會是問題!

/*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*
有購買商品的使用者,網頁中所需相關資料已放置於雲端硬碟,請自行下載使用!
其餘的使用者,請自行依照提供之連結下載相關資料,程式碼複製貼上使用!
/*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*

NOTE:本篇網頁所使用的程式經過  ESP8266 UNO Arduino IDE 開發板 (Type B1)  (  本文簡稱開發板  )測試通過!不過,同樣適用於其他使用 Arduino IDE 開發的 ESP8266, ESP-## 型號的板子,但請自行測試!
除了與網頁內容相關的討論之外,像是 Arduino IDE 與其他 ESP8266 型號連線的問題等,請使用者自行搞定!!!

2015年9月21日 星期一

使用 Arduino IDE 開發 ESP8266 物聯網應用 - ThingSpeak, HTTP GET / POST 資料上傳方法

網頁最後修改時間:2015/09/22

在部落格的另一篇關於物聯網應用的網頁中,已經說明了使用 HTTP GET 上傳感測器資料到到 IoT ( Internet-of-Thing, 物聯網 ) Server ( 這裡以 ThingSpeak 為例 ) 的方法 ( HTTP POST 的方法請查閱該網頁所提供的參考連結 )。而在此篇網頁,將延續在 Arduino IDE 撰寫程式碼的方式,但會捨棄使用 Arduino 板,改用 ESP8266 做為微控制器與週邊裝置通訊,撰寫與說明如何在 Arduino IDE 撰寫 ESP8266 使用 HTTP GET 和 POST 上傳資料到 ThingSpeak.com 的 Sketch!

看過此篇之後就會發現到,使用 ESP8266 Arduino IDE 開發板 ( 下面簡稱:開發板 )
  • ESP8266 無線網路模組就是微控制器
  • 不需要額外處理與設置 AT 指令
  • 利用熟悉的 Arduino 語法開發 ESP8266 就像開發其他 Arduino 板子一樣簡單
  • ... 
更多、更多好處等著使用者自己去發掘 !

/*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*
有購買商品的使用者,網頁中所需相關資料已放置於雲端硬碟,請自行下載使用!
其餘的使用者,請自行依照提供之連結下載相關資料,程式碼複製貼上使用!
/*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*

NOTE:本篇網頁所使用的程式經過 ESP8266 UNO Arduino IDE 開發板 (Type B1) 測試通過!不過,同樣適用於其他使用 Arduino IDE 開發的 ESP8266, ESP-## 型號的板子,但請自行測試!
除了與網頁內容相關的討論之外,像是 Arduino IDE 與其他 ESP8266 型號連線的問題等,請使用者自行搞定!!!

2015年9月6日 星期日

MAX7219 LED Matrix 驅動控制模組使用範例影片

網頁最後修改時間:2015/09/019

在這篇網頁中,有三個 MAX7219 LED Matrix 驅動控制模組展示影片:前兩個影片,使用相同的程式碼,一個使用藍牙控制,另一個使用 ESP8266 WiFi 模組控制。最後一個影片展示如何使用自訂的連續圖型並以動畫做表示。

關於程式碼的說明,可以參考網頁中所提供的超連結看原始作者的說明 ( 程式碼裡面也有 )。但是要注意的是:在網頁影片中所使用的 MAX7219 模組與超連結網頁中所始使用的不同,一定必須使用賣場所提供的程式碼才可以跟影片中展示的結果一樣,不然會相差 90 度。

有購買此套件的使用者,在雲端硬碟零件的資料夾中有所需要安裝的函式庫檔案 ( 函式庫安裝方式,請自行參考 arduino 官網的教學 ),以及網頁影片中所使用的程式碼。

2015年7月26日 星期日

{ Arduino + DS18B20 } 如何取得多顆 DS18B20 溫度感測器序號和溫度值

網頁最後修改時間:2019/01/19
此篇網頁是 DS18B20 說明應用網頁的其中一篇,除了微處理器使用 Arduino 之外,都是使用於讀取多個 DS18B20 溫度感測器序號和溫度值。

Arduino 使用 Serial Monitor 和整合型 LCD 輸出結果,ESP8266 則燒錄 NodeMCU 韌體使用 UART 輸出 ( NodeMCU 韌體燒錄可參閱這篇網頁說明 )。不同的是 ESP8266 可以整合 WiFi 網路做成 IoT ( 物聯網 ) 應用,而且只需要 ESP8266 本身就可做到,不再需要其他微處理器;若使用 AT 韌體就需要其他微處理器做控制中心。

2015年6月29日 星期一

使用 N-Channel MOSFET 做 I2C 電壓準位轉換電路

網頁最後修改時間:2016/08/03 更新
I2C 電壓準位轉換電路圖 (V0.2)
感謝網友 
Tad Chu 的提醒,修正 Q1 和 Q2 的接腳錯位問題

寫這網頁的主要目的:轉換兩個不同電壓之間通訊的準位,且是可雙向溝通的。

在 proteus 的 賣場 裡,販售的大多是 3V3 或是 5V 控制的電子零件,有時候因為控制訊號與微處理器之間電壓準位的關係,必須在兩者之間再加入準位轉換的模組才能正常通訊,但這大多用在單向通訊或是控制比較多。所以若是出現需要在同一支接腳實現收、或發的動作,例如 I2C 的 SDA 接腳,若不是需要很多支情形之下,上面的電壓準位轉換電路就是一個很好的選擇  !

2015年6月26日 星期五

如何使用 SHARP Optical Dust Sensor 量測懸浮粒子以及計算空氣品質指數 ( AQI, Air Quality Index )


這是關於露天賣場懸浮粒子感測器的範例展示與使用說明網頁。此網頁將會說明如何使用 SHARP GP2Y1010AU0F Dust Sensor 量測出 PM2.5 與 PM10 懸浮粒子的濃度,並計算得出相對應的空氣品質指數 ( Air Quality Index, AQI )。

千言萬語說一大堆,倒不如先看影片中的展示,剩下的我再後補!

螢幕左上方是 Arduino IDE 的畫面,用來直接修改使用 PM2.5 或是 PM10 的懸浮粒子大小的定義,這些是用來對照到 AQI ( 空氣品質指數 ) 的數值。

螢幕左下方,是 Serial Monitor 的輸出畫面。輸出 Vo 的讀取到的類比轉數位的數值 ( 0-1024 );計算成電壓的數值;由電壓對照出的懸浮粒子密度值;懸浮粒度值轉換成 AQI 指數。

螢幕右上角,是配合整合型 LCD 顯示 AQI 數值以及相對應的懸浮粒子危險等級文字訊息。

上面只是粗略的對於 PM2.5 與 PM10 做說明,WiKi:空氣品質指數有討論關於空氣品質指數的計算,而我們的範例是假設 PM2.5 和 PM10 是空氣品質分指數裡面最高的,而且是將數據即時顯現出來;對於 PM2.5 或 PM10 必須要連續 24 小時的數據做平均來得到的,這一點使用時必須要特別注意!

詳細的說明,等我寫完再更新上來........ 待續..........

2015年6月20日 星期六

[ MAX6675 + LCD @Arduino ] 整合型 LCD 顯示 MAX6675 K 型熱電偶溫度及開路偵測

網頁最後修改時間:2016/12/19 

MAX6675 是一個具有冷結點 ( Cold-Junction ) 補償,將 K 型熱電偶 ( Thermometer, 簡稱 TC ) 溫度轉換為數位資料的傳換晶片 ( 如上圖上最左邊已做成電路板模組的形式 ),有 12-bit 的解析度和 0.25 ℃ 的精度,還具有 K 型熱電偶開路偵測的功能;配合不同的溫度探頭形式,可用在狹小或是密閉空間中的溫度偵測,溫度可達 1023.75 ℃。本篇將以賣場這款 "MAX6675 - K 型熱電偶溫度轉換模組" 配合 Arduino 顯示溫度在 "{5V} 整合型 LCD" 上作範例來做說明,並且在熱電偶被拔除或是開路時,會顯示 "TC is open !" 以及每隔 5 秒在偵測一次 TC 是否已恢復正常 ? 再繼續溫度的顯示。