色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

聚豐項(xiàng)目 > AB32+OLED+DS18B20溫度實(shí)時(shí)顯示

AB32+OLED+DS18B20溫度實(shí)時(shí)顯示

使用DS18B20監(jiān)測溫度

jf_52293744 jf_52293744

分享
0 喜歡這個(gè)項(xiàng)目
團(tuán)隊(duì)介紹

jf_52293744 jf_52293744

團(tuán)隊(duì)成員

盛建成 學(xué)生

分享
項(xiàng)目簡介
使用DS18B20監(jiān)測溫度
硬件說明

使用iic的OLED,單總線的DS18B20溫度傳感器來實(shí)時(shí)監(jiān)測溫度。

軟件說明

在RTT Studio的軟件庫下載OLED和DS18B20的包,把domo中的任務(wù)創(chuàng)建和入口函數(shù),可以直接拿來使用;

代碼上傳了gitee:https://gitee.com/sheng_jiancheng/sjc_-prj.git

因?yàn)槭腔旧系谝淮谓佑|單片機(jī)操作系統(tǒng),所以很fw,下面是主要的幾個(gè)任務(wù)塊,我是只有一個(gè)18b20的那個(gè)黑頭頭,沒有上拉電阻,開始初始化都過不了,直接找不到18B20,后面把驅(qū)動(dòng)ds18b20_connect(rt_base_t pin)函數(shù)里面的pin mode改成Pullup可以成功檢測到了,但是溫度讀回來一直都是0,我是廢物,沒找到原因,后面一定好好查查,如果有大佬看見希望可以指點(diǎn)一哈。我也很懵逼,按道理什么的初始化都成功了,不應(yīng)該這樣。

//線程入口函數(shù):
static void read_temp_entry(void *parameter)
{
    rt_device_t dev = RT_NULL;
    struct rt_sensor_data sensor_data;
    rt_size_t res;

    dev = rt_device_find(parameter);
    if (dev == RT_NULL)
    {
        rt_kprintf("Can't find device:%s\n", parameter);
        return;
    }

    if (rt_device_open(dev, RT_DEVICE_FLAG_RDWR) != RT_EOK)
    {
        rt_kprintf("open device failed!\n");
        return;
    }
    rt_device_control(dev, RT_SENSOR_CTRL_SET_ODR, (void *)100);

    while (1)
    {
        res = rt_device_read(dev, 0, &sensor_data, 1);
        if (res != 1)
        {
            rt_kprintf("read data failed!size is %d\n", res);
            rt_device_close(dev);
            return;
        }
        else
        {
            if (sensor_data.data.temp >= 0)
            {

                temp = (sensor_data.data.temp & 0xffff) >> 5;      // get temp
                rt_kprintf("temp:%3d.%dC, timestamp:%5d\n",
                           sensor_data.data.temp / 10,
                           sensor_data.data.temp % 10,
                           sensor_data.timestamp);
            }
            else
            {
                rt_kprintf("temp:-%2d.%dC, timestamp:%5d\n",
                           abs(sensor_data.data.temp / 10),
                           abs(sensor_data.data.temp % 10),
                           sensor_data.timestamp);
            }
        }
        rt_thread_mdelay(100);
    }
}

//線程創(chuàng)建函數(shù):
static int ds18b20_read_temp_sample(void)
{
    rt_thread_t ds18b20_thread;

    ds18b20_thread = rt_thread_create("18b20tem",
                                      read_temp_entry,
                                      "temp_ds18b20",
                                      1024,
                                      RT_THREAD_PRIORITY_MAX / 2,
                                      20);
    if (ds18b20_thread != RT_NULL)
    {
        rt_thread_startup(ds18b20_thread);
    }

    return RT_EOK;
}
INIT_APP_EXPORT(ds18b20_read_temp_sample);
//DS18B20的初始化
static int rt_hw_ds18b20_port(void)
{
    struct rt_sensor_config cfg;

    cfg.intf.user_data = (void *)DS18B20_DATA_PIN;
    rt_hw_ds18b20_init("ds18b20", &cfg);

    return RT_EOK;
}
INIT_COMPONENT_EXPORT(rt_hw_ds18b20_port);


static void oled_display_entry(void *parameter)
{
    char text[200];
    while(1)
    {
        rt_memset(text, 0, sizeof(text));
        rt_sprintf(text, "%d", temp);
        ssd1306_SetCursor(60, 6);//添加代碼,設(shè)置顯示光標(biāo)位置
        ssd1306_WriteString(text, Font_11x18, White);//添加代碼,設(shè)置顯示內(nèi)容
       // ssd1306_UpdateScreen();添加代碼,更新顯示屏信息

       rt_memset(text, 0, sizeof(text));
       rt_sprintf(text, "%d", humi);
       ssd1306_SetCursor(60, 40);//添加代碼,設(shè)置顯示光標(biāo)位置
       ssd1306_WriteString(text, Font_11x18, White);//添加代碼,設(shè)置顯示內(nèi)容
       ssd1306_UpdateScreen();//添加代碼,更新顯示屏信息
       rt_thread_mdelay(100);
    }
}

void oled_display_thread_create()
{
    rt_thread_t oled_display_thread;
    oled_display_thread = rt_thread_create("oled_display",
                                      oled_display_entry,
                                      RT_NULL,
                                      1024,
                                      20,
                                      40);
    if (oled_display_thread != RT_NULL)
    {
        rt_thread_startup(oled_display_thread);
    }

}


演示效果

視頻演示:

附件

(0.94 MB)下載

評論區(qū)(0 )
主站蜘蛛池模板: 国语92电影网午夜福利| 最近韩国HD免费观看国语| 国产在线精品视亚洲不卡| 性夜影院爽黄A爽免费动漫| 国产精品人妻无码久久久蜜桃 | www免费看.男人的天堂| 飘雪在线观看免费高清完整版韩国| 宝贝你骚死哥了好爽| 少妇无码太爽了视频在线播放| 国产三级在线精品男人的天堂| 亚洲绝美精品一区二区| 久久久免费热线精品频| 99精品网站| 入禽太深免费高清在线观看5| 国产精品私人玩物在线观看 | 麻豆国产成人AV在线| 99RE6国产精品视频播放| 日本xxxxx按摩19| 国产精品免费久久久久影院| 亚洲 欧美 日本 国产 高清| 久99re视频9在线观看| 91福利国产在线观看网站| 日本高清片免费观看| 国产免费看片| 曰曰夜夜在线影院视| 欧美精品一区二区三区四区| 国产成a人片在线观看视频99| 亚洲免费人成在线视频观看| 刘梓晨啪啪啪| 俄罗斯雏妓的BBB孩交| 亚洲乱码日产精品BD在线下载| 久久伊人中文字幕有码| 成年人免费观看视频网站| 亚洲 综合 自拍 精品 在线| 久久热最新网站获取3| 被免费网站在线视频| 亚洲国产精品高清在线| 裸妇厨房风流在线观看| 国产360激情盗摄全集| 一本大道无码AV天堂欧美 | 国产产乱码一二三区别免费|