[ Ruff 開發套件 ] Lesson 4 - LCD 溫溼度計

圖片描述

  • 誰將登場javascript

    • LCD 模塊html

    • 溫溼度傳感器java

  • 你將學會函數

    • 溫溼度傳感器的使用學習

    • LCD 屏的進階使用spa

介紹

這節課將實現一個用 LCD 屏顯示的溫溼度計:code

  • LCD 屏初始顯示 「Welcome !」 歡迎字樣;htm

  • 1秒鐘後,在第一行顯示當前溫度,在第二行顯示當前溼度;blog

  • 每秒鐘刷新當前溫度和溼度的值。事件

元件

  • Ruff 開發板

  • 溫溼度傳感器模塊

  • LCD 模塊

外設添加

  • 向項目中添加名爲lcd的 LCD 模塊

    • model 選擇lcd1602-02,驅動版本選擇最新版。

  • 向項目中添加名爲humirature的溫溼度傳感器模塊,

    • model 選擇 DHT11,驅動版本選擇最新版。

代碼

  • 在編寫代碼以前須要完成 Ruff 開發板的設置鏈接、硬件連線。若是有疑問你們能夠到這裏瞭解。

  • 想了解 Ruff 應用開發步驟和模型,能夠到這裏

初始化

咱們首先初始化 LCD 屏以及設置光標:

  • 打開 LCD 屏幕;

  • 使用設置setCursor(x,y)函數設置光標到(1,0)處並打印歡迎語;

    • LCD 模塊的setCursor函數用來設置光標,用法以下:

    setCursor(x, y, [callback])

    • LCD 模塊每行可顯示16個字符,共有兩行字符,

      • (0,0)指向第一行第一個字符;

      • (1,0)指向第一行第二個字符;

      • (0,1)指向第二行第一個字符;

  • 初始化代碼以下:

$('#lcd').turnOn();
$('#lcd').setCursor(1, 0);
$('#lcd').print('Welcome!');
  • 能夠在這裏複習LCD 模塊知識。

溫度顯示

以後咱們解決:如何檢測和顯示當前溫度

  • 使用溫溼度傳感器模塊的getTemperature() 函數獲取當前溫度:

    • 溫溼度模塊的getTemperature() 函數語法以下:

    getTemperature(callback)

  • 設置光標到第一行第二個字符處;

  • 打印 「temperature」 和當前溫度;

  • 使用setInterval 函數每秒鐘從新檢測和顯示當前溫度。

  • 溫度顯示代碼以下:

setInterval(function () {
    $('#humirature').getTemperature(function (error, temperature) {
        if (error) {
            console.error(error);
            return;
        }
        $('#lcd').setCursor(1, 0);
        $('#lcd').print('temperature: ' + temperature);
    });
}, 1000);

溼度顯示

以後咱們解決:如何檢測和顯示當前溼度,解決方法和溫度相似。

  • 使用溫溼度傳感器模塊的getRelativeHumidity() 函數獲取當前溼度:

    • 溫溼度模塊的getRelativeHumidity() 函數用法以下:

    getRelativeHumidity(callback)

  • 設置光標到第二行第二個字符處;

  • 打印 「humility」 和當前溼度;

  • 使用setInterval 函數每秒鐘從新檢測和顯示當前溼度。

  • 溼度顯示代碼以下:

setInterval(function () {
    $('#humirature').getRelativeHumidity(function (error, humidity) {
        if (error) {
            console.error(error);
            return;
        }
        $('#lcd').setCursor(1, 1);
        $('#lcd').print('humidity: ' + humidity);
    });
}, 1000);
  • 能夠在這裏進一步學習溫溼度傳感器模塊知識;

最後,

  • 初始化溫度顯示溼度顯示的實現放在 $.ready 事件下 。

完整代碼

'use strict';

$.ready(function (error) {
    if (error) {
        console.log(error);
        return;
    }

    $('#lcd').turnOn();
    $('#lcd').setCursor(1, 0);
    $('#lcd').print('Welcome!');
    
    setInterval(
        function () {
            $('#humirature').getTemperature(function (error, temperature) {
                if (error) {
                    console.error(error);
                    return;
                }
                $('#lcd').setCursor(1, 0);
                console.log('temperature', temperature);
                $('#lcd').print('temperature: ' + temperature);
            });
        }, 1000);

    setInterval(function () {
        $('#humirature').getRelativeHumidity(function (error, humidity) {
            if (error) {
                console.error(error);
                return;
            }
            $('#lcd').setCursor(1, 1);
            console.log('humidity', humidity);
            $('#lcd').print('humidity: ' + humidity);
        });
    }, 1000)
});
相關文章
相關標籤/搜索