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 是否已恢復正常 ? 再繼續溫度的顯示。

2015年5月31日 星期日

ESP8266 ( ESP-01 ) 無線模組燒錄 NodeMCU 韌體 ( Lua 語法支援 )

網頁最後修改時間:2016/12/19
NodeMCU 是一個開放原始碼與硬體,並將 Lua 嵌入到 ESP8266 中的一個成功的項目。而在這篇網頁中,將會介紹如何使用賣場的 ESP8266 IoT 入門學習套件,燒錄可支援 Lua 語法的 NodeMCU 韌體進到 ESP8266, ESP-01 中,並且介紹一個方便的軟體做為學習 NodeMCU 之用。最後,我會給出幾個 ESP8266, ESP-01 的例子,撰寫 Lua 程式控制 LED 開關以及以 PWM 控制 LED 漸亮與漸滅來做示範;最後介紹 Arduino 如何與燒錄 NodeMCU 的 ESP8266 ESP-01 做溝通控制作為結尾。

之前曾經有使用者遇到無法使用 AT 指令將設定的資料存放在 ESP8266 ESP-01 中的問題,只要更新為 NodeMCU 之後,就可以很容易的將其存放在 ESP 的檔案系統裡,每次重新啟動或是開機就會自動載入,不用預先撰寫初始化程式。

相信我,看過這篇網頁的介紹之後,你(妳)會喜歡上 NodeMCU

2015年5月30日 星期六

自行更新 ESP8266 , ESP-01 無線模組韌體至 AT:0.23, SDK:1.0.1

網頁最後修改時間:2016/12/19
韌體更新為 AT:0.23, SDK:1.0.1 之後的版本訊息

如果手邊的 ESP8266, ESP01 AT 指令的版本小於 0.23 的話,可以下載網頁提供的韌體檔案自行燒錄升級。

如果有賣場的 IoT 套件,有兩種韌體升級更新的選擇 ( 相關資料都以同步至雲端硬碟,網頁中也有下載與使用的資料 ):
  1. AT: 0.23, SDK: 1.0.1
    AT 指令的升級更新 ( 這篇網頁說明的重點 ),主要是因為要讓使用者同步 AT 版本,而且解決了舊版本不能儲存使用者網路參數設定的問題。
  2. NodeMCU 0.9.5
    使用 Lua 語法操控 ESP8266 的韌體。
Note:若是已經玩過 ESP8266 AT 指令的使用者,建議更新韌體為 NodeMCU!

2015年3月15日 星期日

初遇 IoT ( Internet of Thing, 物聯網 ) - 使用 Arduino 控制 ESP8266 無線模組上傳資料到 IoT Server ( ThingSpeak )

網頁最後修改時間:2017/01/07
ThingSpeak 環境溫濕度記錄圖
網路是構成物聯網 ( IoT, Internet of Things ) 其中一項不可或缺的技術,而 IoT Server 就是用來蒐集並記錄由世界各地傳過來的數據資料,這些資料可以自己使用也可以分享給其他人做使用,這對於需要在世界各地蒐集資料的科學家或是程式設計師,善用這些資料可以加速其研究分析的工作,節省很多的時間。例如,對於科技農夫來說,可以蒐集整片土地上面各處土壤的溫溼度、光照程度在特定時間間隔的分佈狀態,以長時間的數據來分析影響土地上各植物的生長狀態的因素,幫助農夫可以做製程改善達到最大的產量輸出。當然,還有很多的應用,可以利用物聯網的方式來實現,而本篇網頁提出一個實際的例子來說明,如何使用賣場的 "ESP8266 IoT 入門學習套件" 每隔 60 秒傳送環境溫濕度到 IoT Server ( ThingSpeak ) 做紀錄。

*********************************************************************************
   物聯網,維基百科的解釋
*********************************************************************************

2015年3月3日 星期二

ATtiny85 開發板使用說明,與 Arduino IDE 編輯環境設置

網頁最後修改時間:2020/10/15


/*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*
此網頁中關於 ATtiny85 的 Arduino IDE 與 Windows USB 驅動程式安裝方式已有點舊了,如果是使用新版本的 Arduino IDE 可參考最新的更新網頁:
ATtiny167(Digisprak Pro)開發板 Arduino IDE 編輯環境設置與使用說明
裡面是關於 ATtiny85 / ATtiny167 Arduino IDE 環境設置與安裝 Windows / Linux / Mac OSX USB 驅動程式的更簡便的方式。
/*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*

ATtiny85 是屬於 ATMEL 生產的 AVR 8-bit 微控制器晶片,具有 8K Byte 可程式 Flash ROM、512 Bytes In-System 可程式 EEPROM 與 512 Bytes 內部 SRAM,8 支接腳的封裝非常適合小型專案的開發。

一般開發 AVR 晶片使用 ATMEL Studio 或 IAR 整合編輯環境又或是直接使用 AVR GCC 撰寫韌體程式,需要閱讀篇幅攏長的資料手冊才能掌握晶片的開發要點。優點是可以完全發揮晶片的各項功能,但缺點是需要耗費比較多的時間在底層的硬體參數設置與規劃上。對於初學者或是想嘗試使用 ATMEL AVR ATtiny 晶片的人來說,都是非常折磨人的過程 ! 尤其,只需要用到幾支接腳功能的應用來說,能夠快速達到要求才是最重要的,上手過程能夠越短就能省下更多的時間與金錢 !

ATtiny85 開發板就是能解決這問題的一項選擇!

如果是直接使用已經設置好 ATtiny85 開發板的 Arduino IDE 版本 ( 最新的官方釋出版本是使用 Arduino IDE 1.5.8 版本做修改 ),那接下來就只要注意到硬體限制的部分與注意事項就好,其他的部分就毋須理會 ! 但若需要設置 ATtiny85 開發板到 Arduino IDE 不同版本中 ( 這裡是使用 Arduino IDE 1.6.0 做示範,但同樣適用於 1.5 以上的版本 ),也就是讓現有的 Arduino IDE 支援 ATtiny85 開發板的話,那就要注意接下來網頁中的說明!

Note:下面的操作需要一些檔案,這些檔案放置在賣場所提供的雲端硬碟資料夾中,請先開啟雲端硬碟或是下載全部檔案以備使用。若沒有賣場所提供的檔案,同樣的也可以上網找到這些支援檔案依照說明做安裝。

2015年1月16日 星期五

[ Wireless-RF@Arduino ] 無線天氣資料傳輸 - Arduino Manchester 函式庫應用

網頁最後修改時間:2016/09/04 

延續上一篇 Manchester ( 曼徹斯特 ) 函式庫的介紹,這一篇將繼續深入一點點,連接 BH1750 ( 光照度感測器 ) 和 DHT11 ( 溫溼度感測器 ) 在 Arduino 板子上,所收到的溫溼度以及環境照度資料經由 RF433 以及 ASK433 ( 如下圖 ) 無線發射模組傳送到遠端的無線接收端。

本篇除了使用與上一篇同樣的方法傳送資料之外,還介紹了使用陣列傳送的方式,使用這方法可以擴展更多的 ID 與資料串列,用來接收更多不同無線發射端的資料 !
賣場的無線發射接收模組 ( 左邊:本文稱 RF433;右邊:本為稱 ASK433 )

2014年12月20日 星期六

如何燒錄 ESP8266 無線模組的韌體 ( 使用一鍵燒錄軟體,燒錄版本:0018000902 )

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

從這一篇開始就是 ESP8266-ESP-01 進階的部分,會使用到 ESP8266 韌體更新。為了避免因為操作上的錯誤造成整個模組韌體掛掉,因此在此先說明如何使用韌體一鍵燒錄軟體恢復模組的韌體程式,先把起死回生藥帶在身上,闖關時才不會卡關!