x286212455的個(gè)人空間 http://selenalain.com/space-uid-142968.html [收藏] [復制] [RSS]

博客

感知世界的溫暖-溫度采集

已有 1155 次閱讀2018-4-23 15:11 |個(gè)人分類(lèi):物聯(lián)網(wǎng)| OS、開(kāi)發(fā)板、傳感器

例程說(shuō)明:監測當前環(huán)境溫度。

第一步: 環(huán)境搭建1. 軟件環(huán)境

請參考《鈦極OS(TiJOS)應用開(kāi)發(fā)環(huán)境搭建》以及《HelloWorld 第一個(gè)鈦極OS(TiJOS)應用》搭建環(huán)境并創(chuàng )建例程:DS18B20Sample。

2. 硬件環(huán)境

例程所需(以TiKit-T600-ESP8266A開(kāi)發(fā)套件為例):

  1. TiKit-T600-ESP8266A開(kāi)發(fā)板;
  2. TIDS18B20模塊;
  3. 杜邦線(xiàn)3根;
  4. USB線(xiàn)2根;

Tikit.jpg

使用USB線(xiàn)分別將 TiKit-T600-ESP8266A開(kāi)發(fā)板的兩個(gè)USB口連接到電腦的USB端口,并使用Ti-Dev Manager查看主板的連接是否正常。當開(kāi)發(fā)板和電腦連接成功后,按下開(kāi)發(fā)板上的Reset鍵,日志窗口會(huì )將當前開(kāi)發(fā)板的BOOT信息打印出來(lái),如下圖所示。

TikitConect

注意:為確保Ti-Dev Manager正常識別開(kāi)發(fā)板,請將PC端的串口操作軟件關(guān)閉,否則可能造成Ti-Dev Manager不能正常識別開(kāi)發(fā)板。

第二步:例程設計1. 硬件連接

所需硬件資源:TiOWMaster的IO0。

將TiDS18B20用杜邦線(xiàn)連接到TiKit-T600-ESP8266A開(kāi)發(fā)板:

  • GND<------>地(-)
  • IO0 <------>信號線(xiàn)(OUT)
  • 3.3v <------>電源(+)

TikitConectDS18B20.jpg

2. 例程編寫(xiě)

在之前創(chuàng )建的工程DS18B20Sample中新建DS18B20.java文件,并引入以下包:

import java.io.IOException; import tijos.framework.devicecenter.TiOWMaster; import tijos.framework.sensor.ds18b20.TiDS18B20; import tijos.util.Delay;

首先在主類(lèi)DS18B20中定義main方法,并定義所需要使用的TiOWMaster port以及所需要使用的IO(按照硬件設計所連接的IO編號)。然后創(chuàng )建TiOWMaster 對象ow0并打開(kāi)需要使用的owIo編號。最后再創(chuàng )建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); /* * 資源綁定, * 創(chuàng )建TiDS18B20對象ds18b20并將ow0和owIo0與其綁定 */ TiDS18B20 ds18b20 = new TiDS18B20(ow0, owIo0);

按照上述步驟將資源分配完成后,就可以使用ds18b20的selectSingle方法,選擇外掛單個(gè)傳感器模式。在循環(huán)中使用ds18b20的measure方法每隔1秒(1000ms)測量一次溫度,然后通過(guò)getTemperature方法獲取最近一次測量到的環(huán)境溫度值并通過(guò)打印端口輸出。

/* * 資源使用, * 選擇只有單傳感器模式 * 啟動(dòng)測量并獲取溫度數據 */ 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 第一個(gè)鈦極OS(TiJOS)應用》中的方法編譯并運行,即可在硬件上實(shí)現環(huán)境溫度測量的功能演示。

logcat源碼

請參考DS18B20.java

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
返回頂部
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页