例程說明:監測當前環境溫度。
第一步: 環境搭建
1. 軟件環境
請參考《鈦極OS(TiJOS)應用開發環境搭建》以及《HelloWorld 第一個鈦極OS(TiJOS)應用》搭建環境并創建例程:DS18B20Sample。
2. 硬件環境
例程所需(以TiKit-T600-ESP8266A開發套件為例):
- TiKit-T600-ESP8266A開發板;
- TIDS18B20模塊;
- 杜邦線3根;
- USB線2根;
使用USB線分別將 TiKit-T600-ESP8266A開發板的兩個USB口連接到電腦的USB端口,并使用Ti-Dev Manager查看主板的連接是否正常。當開發板和電腦連接成功后,按下開發板上的Reset鍵,日志窗口會將當前開發板的BOOT信息打印出來,如下圖所示。
注意:為確保Ti-Dev Manager正常識別開發板,請將PC端的串口操作軟件關閉,否則可能造成Ti-Dev Manager不能正常識別開發板。
第二步:例程設計
1. 硬件連接
所需硬件資源:TiOWMaster的IO0。
將TiDS18B20用杜邦線連接到TiKit-T600-ESP8266A開發板:
- GND<------>地(-)
- IO0 <------>信號線(OUT)
- 3.3v <------>電源(+)
2. 例程編寫
在之前創建的工程DS18B20Sample中新建DS18B20.java文件,并引入以下包:
import java.io.IOException;
import tijos.framework.devicecenter.TiOWMaster;
import tijos.framework.sensor.ds18b20.TiDS18B20;
import tijos.util.Delay;
首先在主類DS18B20中定義main方法,并定義所需要使用的TiOWMaster port以及所需要使用的IO(按照硬件設計所連接的IO編號)。然后創建TiOWMaster 對象ow0并打開需要使用的owIo編號。最后再創建TiDS18B20對象ds18b20并將ow0和owIo0與其綁定。
public class DS18B20 {
/**
* 程序入口,由TiJOS調用
* @param args 入口參數, TiJOS中一直等于null
*/
public static void main(String[] args) {
try {
/*
* 定義使用的TiOWMaster port
*/
int owPort0 = 0;
/*
* 定義使用的TiOWMaster io
*/
int owIo0 = 0;
/*
* 資源分配,
* 將owPort0與owIo0分配給TiOWMaster的對象ow0
*/
TiOWMaster ow0 = TiOWMaster.open(owPort0, owIo0);
/*
* 資源綁定,
* 創建TiDS18B20對象ds18b20并將ow0和owIo0與其綁定
*/
TiDS18B20 ds18b20 = new TiDS18B20(ow0, owIo0);
按照上述步驟將資源分配完成后,就可以使用ds18b20的selectSingle方法,選擇外掛單個傳感器模式。在循環中使用ds18b20的measure方法每隔1秒(1000ms)測量一次溫度,然后通過getTemperature方法獲取最近一次測量到的環境溫度值并通過打印端口輸出。
/*
* 資源使用,
* 選擇只有單傳感器模式
* 啟動測量并獲取溫度數據
*/
ds18b20.selectSingle();
while (true) {
try {
ds18b20.measure();
double temperature = ds18b20.getTemperature();
System.out.println("Temperature = " + temperature + " C");
} catch (IOException e1) {
e1.printStackTrace();
}
Delay.msDelay(1000);
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
完整例程代碼可參考《TiDS18B20數字溫度傳感器功能例程》。
第三步:結果演示
將上述例程按照《HelloWorld 第一個鈦極OS(TiJOS)應用》中的方法編譯并運行,即可在硬件上實現環境溫度測量的功能演示。
源碼
請參考DS18B20.java