精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OpenHarmony設備開發(六)-紅外溫度傳感器

系統 OpenHarmony
紅外溫度傳感器應用廣泛,在疫情期間可做體溫測量,在汽車上可做空調控制、防霧應用,在家庭中可做家電溫度控制等等。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

前言

最近的一個項目需要用到紅外溫度傳感器,便想著能不能在Hi3861上開發這個外設,經過摸索了一陣子,終于把紅外溫度傳感器簡單的開起來了,后面還會追加對傳感器的使用。

本次使用開發板:HiSpark_WiFi_IoT。

紅外溫度傳感器

介紹

紅外溫度傳感器應用廣泛,在疫情期間可做體溫測量,在汽車上可做空調控制、防霧應用,在家庭中可做家電溫度控制等等。

MLX90614是一款紅外非接觸溫度計(下文多以gy906簡稱)。TO-39金屬封裝里同時集成了紅外感應熱電堆探測器芯片和信號處理專用集成芯片。用以阻礙可見光和近紅外光輻射的光學濾波器(可傳播長波)集成在封裝內提供對環境和日光的免疫。需注意的是封裝內部的溫差會影響溫度計測量的精度,需要盡量將傳感器和環境隔離。

#打卡不停更#【FFH】OpenHarmony設備開發(六)-紅外溫度傳感器-開源基礎軟件社區

協議

查閱文檔時,發現這個紅外溫度傳感器是使用SMBus通信協議或者PWM(默認SMBus輸出格式),其中SMBus協議需要IO口設置為開漏輸出,在Hi3861的IO口模式選擇中并未發現有開漏輸出選項,因此暫時不選擇SMBus協議。

#打卡不停更#【FFH】OpenHarmony設備開發(六)-紅外溫度傳感器-開源基礎軟件社區

通過摸索了一大陣子得知,SMbus 規格是由 I2C 簡化而來。兩條信號線為 SMBCLK 和 SMBDATA. 這和 I2C 上的 Clock(SCL) 和 Data(SDA) 是一樣的。SMBus的讀取數據格式與I2C協議大差不差,差別只在于電平認定。

#打卡不停更#【FFH】OpenHarmony設備開發(六)-紅外溫度傳感器-開源基礎軟件社區

兩者協議的電平認定雖有不同,但也有部分交集。

I2C協議中有兩者電平認定:相對認定和絕對認定,其中的相對認定是依據Vdd的電壓來決定,高電平為0.7 Vdd,低電平低于0.3 Vdd即可。

再看一看紅外溫度傳感器上的SMBus協議(如下圖),高電平需要高于Vdd-0.1,和I2C協議符合。而低電平最大只能0.6V,這里就只能希望Hi3861的I2C能將低電平拉得到0.6V以下了。但巧合了,經過驗證Hi3861可以使用!

#打卡不停更#【FFH】OpenHarmony設備開發(六)-紅外溫度傳感器-開源基礎軟件社區

準備

本次使用到的是MLX90614BCC版本,該型號的供電是3V,注意不要不要插到5V的供電。!

#打卡不停更#【FFH】OpenHarmony設備開發(六)-紅外溫度傳感器-開源基礎軟件社區

接線:

VIN->3V3,GND->GND,SLK->SLK,SDA->SDA。

#打卡不停更#【FFH】OpenHarmony設備開發(六)-紅外溫度傳感器-開源基礎軟件社區

既然已經使用到了I2C,那么便需要知道該設備的地址,查閱了挺久的,發現了該設置的默認地址為0X00或者是0XB4,其中0x00是單個I2C設備連接時默認都能訪問到。并且可以修改EEPROM,對其進行修改I2C地址。如果不小心修改了地址,又忘記了地址,便可以把傳感器單獨插上去,讀0X0E的數值便可以得到設備的地址。

#打卡不停更#【FFH】OpenHarmony設備開發(六)-紅外溫度傳感器-開源基礎軟件社區

傳感器將溫度數據存在RAM里面的Tojb1,而ram里面Tobj1的地址為0x07,則得知讀取溫度的指令則為0x07,向該設備發送0x07,便可讀取到溫度數據。

#打卡不停更#【FFH】OpenHarmony設備開發(六)-紅外溫度傳感器-開源基礎軟件社區

#打卡不停更#【FFH】OpenHarmony設備開發(六)-紅外溫度傳感器-開源基礎軟件社區

代碼編寫

IO口初始化

老步驟,第一步先IO口初始化。

流程:

  • GPIO口初始化(開發板背后有標注GPIO口:13,14)。
  • IO口復用成I2C。
  • I2C口初始化(從hi_io.h里面的GPIO口管腳功能列舉可得知I2C口)。
#define GPIO_SDA 13
#define GPIO_SCL 14
#define GY906_I2C 0
void gy906_init(void)
{
IoTGpioInit(GPIO_SDA);
IoTGpioInit(GPIO_SCL);
hi_io_set_func(GPIO_SDA, HI_IO_FUNC_GPIO_13_I2C0_SDA);
hi_io_set_func(GPIO_SCL, HI_IO_FUNC_GPIO_14_I2C0_SCL);
hi_i2c_init(GY906_I2C, 400000);
}

主函數及線程

查詢相關文檔,gy906反饋的信息有三個,第一個是低位數據,第二個是高位數據,第三個是校驗位.將高位數據和低位數據拼接,再通過公式計算即可得出溫度數據。

#打卡不停更#【FFH】OpenHarmony設備開發(六)-紅外溫度傳感器-開源基礎軟件社區

流程:

  1. 初始化I2c傳輸數據。
  2. 接收傳感器反饋回來的數據。
  3. 判斷數據的正確性。
  4. 對數據做拼接計算,即可得出溫度數據。
#define GY906_I2C 0
#define GY906_addr 0x00 // 0x00 or 0xB4
//獲取溫度數值
void gy906_get(void)
{
hi_i2c_data gy_data = {0}; //I2C數據結構
uint8_t recv_data[3] = {0}; //接收數據緩存
uint8_t send_data[1] = {0x07}; //讀取溫度的指令
//初始化gy_data
gy_data.send_buf = send_data;
gy_data.send_len = 1;
gy_data.receive_buf = recv_data;
gy_data.receive_len = 3;
//I2C讀寫操作
hi_i2c_writeread(GY906_I2C, (GY906_addr << 1) | 0x01, &gy_data);
//進行校驗位判斷
uint8_t addr[6] = {0, 0, 0, 0x01, 0x07, 0x00};
addr[1] = recv_data[1]; //高位
addr[2] = recv_data[0]; //低位
uint8_t PY_CRC1 = PEC_Calculation(addr);
//如果校驗位正確
if (PY_CRC1 == recv_data[2])
{
printf("temperture correct!\n");
}
//如果校驗位錯誤,返回全部數值
else
{
printf("temperature false!\n");
printf("recv_data:low:%x high:%x CRC:%x\n", recv_data[0], recv_data[1], recv_data[2]);
printf("CRC1:%x\n", PY_CRC1);
}
//打印溫度 T= (DataH:DataL)*0.02-273.15
float temperature_f = (((float)((recv_data[1] << 8) | recv_data[0])) * 2 - 27315) / 100;
printf("temperature:%.2f\n", temperature_f);
}
//主函數
void gy906_demo(void)
{
//IO口初始化
gy906_init();
while (1)
{
gy906_get();
sleep(1);
}
}
//線程創建
void gy_demo(void)
{
osThreadAttr_t attr;

attr.name = "gy_demo";
attr.attr_bits = 0U;
attr.cb_mem = NULL;
attr.cb_size = 0U;
attr.stack_mem = NULL;
attr.stack_size = 10240;
attr.priority = 25;

if (osThreadNew((osThreadFunc_t)gy906_demo, NULL, &attr) == NULL)
{
printf("[gy_demo] Falied to create gy_demo!\n");
}
}

SYS_RUN(gy_demo);

校驗算法

#打卡不停更#【FFH】OpenHarmony設備開發(六)-紅外溫度傳感器-開源基礎軟件社區

算法的代碼如下(部分介紹打在注釋上:

uint8_t PEC_Calculation(uint8_t pec[])
{
uint8_t crc[6]; //存放多項式
uint8_t BitPosition = 47; //存放所有數據最高位,6*8=48 最高位就是47位
uint8_t shift;
uint8_t i;
uint8_t j;
uint8_t temp;
do
{
/*初始化 0x00 00 00 00 01 07*/
crc[5] = 0;
crc[4] = 0;
crc[3] = 0;
crc[2] = 0;
crc[1] = 0x01;
crc[0] = 0x07;
//設置最大位位位置為47,記錄位位置
BitPosition = 47;
/*Set shift position at 0*/
shift = 0;
/*查找pec[5]開始的傳輸消息中的第一個“1”*/
i = 5;
j = 0;
//0x80 -> 1000 0000,一位一位地找第一個"1"
while ((pec[i] & (0x80 >> j)) == 0 && i > 0)
{
//位位置-1
BitPosition--;
if (j < 7)
{
j++;
}
else
{
j = 0x00;
i--;
}
} /*End of while*/
/*記錄位位置*/
shift = BitPosition - 8;
/*校驗操作 */
//循環次數為:shift
while (shift)
{
for (i = 5; i < 0xFF; i--) //i<0xff即是i>0,遍歷crc數組
{
//以下操作即是把一個八位的數據整體向左移一位,最高位移到最低位,例:1001 1000 ->0011 0001
if ((crc[i - 1] & 0x80) && (i > 0))
{
temp = 1;
}
else
{
temp = 0;
}
crc[i] <<= 1; //左移一位
crc[i] += temp;
} /*End of for*/
shift--;
} /*End of while*/

//將已經操作過的位 置0
for (i = 0; i <= 5; i++)
{
pec[i] ^= crc[i];
} /*End of for*/
} while (BitPosition > 8); /*循環操作*/

return pec[0];
}

編譯腳本BUILD.gn

static_library("my_gy906_demo") {
sources = [
"gy906.c",
]
include_dirs = [
"http://utils/native/lite/include",
"http://kernel/liteos_m/components/cmsis/2.0",
"http://base/iot_hardware/peripheral/interfaces/kits",
"http://device/soc/hisilicon/hi3861v100/sdk_liteos/include",
]
}

效果

#打卡不停更#【FFH】OpenHarmony設備開發(六)-紅外溫度傳感器-開源基礎軟件社區

#打卡不停更#【FFH】OpenHarmony設備開發(六)-紅外溫度傳感器-開源基礎軟件社區

 

文章相關附件可以點擊下面的原文鏈接前往下載:

https://ost.51cto.com/resource/2302。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??。

責任編輯:jianghua 來源: 51CTO開源基礎軟件社區
相關推薦

2022-09-28 13:48:13

設備開發鴻蒙

2023-03-20 16:05:49

HDF傳感器驅動開發

2023-03-16 15:18:16

2021-01-03 15:37:33

傳感器物聯網大數據

2022-12-07 14:45:16

數據中心溫度傳感器

2023-07-11 18:30:05

智能設備半導體

2020-05-12 20:57:41

物聯網傳感器IOT

2023-08-25 15:39:34

物聯網傳感器

2021-04-14 14:55:08

智能傳感器物聯網新技術

2015-10-20 15:31:23

可穿戴設備物聯網

2013-12-17 11:04:10

iOS開發傳感器

2020-08-28 09:55:58

半導體技術系統

2022-08-03 11:14:09

物聯網傳感器

2020-06-29 07:18:02

物聯網傳感器IOT

2020-12-01 12:13:37

物聯網智能傳感器IOT

2015-07-13 09:21:50

風速傳感器物聯網

2012-02-28 14:43:43

2021-09-14 10:12:10

物聯網傳感器IOT

2014-08-11 16:41:05

Android傳感器

2020-04-20 13:27:20

傳感器可穿戴技術醫療保健
點贊
收藏

51CTO技術棧公眾號

国产不卡精品在线| 精品人妻一区二区三区麻豆91 | 久久精品视频1| 美女视频免费精品| 欧美日韩国产一区二区三区| 欧美xxxx黑人又粗又长密月| 正在播放亚洲精品| 在线日韩欧美| 日韩专区中文字幕| 国产夫妻性爱视频| 国产精品3区| 色综合久久中文字幕| 麻豆视频传媒入口| 黄色av网站在线免费观看| 国产剧情av麻豆香蕉精品| 国产91精品最新在线播放| tube国产麻豆| 日韩精品影视| 亚洲欧美另类国产| 国产精品一区二区人妻喷水| 国产精品亚洲一区二区在线观看| 黑人极品videos精品欧美裸| 国产91porn| 91caoporn在线| 久久只精品国产| 91久久精品www人人做人人爽| 樱花视频在线免费观看| 国产精品a久久久久| 一本色道久久88综合亚洲精品ⅰ | 超碰在线97观看| 在线看片日韩| 欧美激情国内偷拍| 日韩在线观看视频一区二区| 成人三级视频| 亚洲精品自在久久| 成人在线视频免费播放| 一本一道久久a久久| 777久久久精品| 国产精品一区二区小说| 欧美xxxxxx| 欧美视频不卡中文| 欧美一区二区中文字幕| 欧美韩日亚洲| 亚洲一区二区三区自拍| 国风产精品一区二区| 麻豆传媒视频在线| 中文字幕亚洲视频| 亚洲一区三区在线观看| 成年人视频在线观看免费| 久久久国产一区二区三区四区小说| 精品伦精品一区二区三区视频| 秋霞av鲁丝片一区二区| 岛国一区二区三区| 国产有色视频色综合| 欧美 日韩 国产 成人 在线| 成人晚上爱看视频| www 成人av com| 亚洲AV无码一区二区三区少妇 | 色综合色狠狠综合色| av在线播放亚洲| 欧美a级在线观看| 欧美日韩一区二区在线 | 久久影视精品| 欧美精品久久久久久久久老牛影院| 在线免费av播放| 亚洲高清国产拍精品26u| 69av一区二区三区| 国产一级二级av| 狼人天天伊人久久| 国产午夜精品久久久| 谁有免费的黄色网址| 残酷重口调教一区二区| 久久精品国产视频| 久久久久久福利| 免费永久网站黄欧美| 国产mv免费观看入口亚洲| 中文字幕在线观看高清| 国产在线视视频有精品| 国产精品午夜av在线| 天堂av中文在线资源库| 国产日韩欧美亚洲| 乱子伦一区二区| 国产在线看片免费视频在线观看| 色成人在线视频| av中文字幕网址| 国产精品久av福利在线观看| 亚洲人成免费电影| 免费在线观看a级片| 激情av一区| 国产精品户外野外| www.精品久久| 久久久91精品国产一区二区精品| 在线观看欧美一区| 黄色视屏在线免费观看| 欧美少妇bbb| 亚洲少妇中文字幕| 不卡在线一区二区| 久久久免费电影| 乱子伦一区二区三区| 国产精品18久久久久久久久| 美日韩精品免费| 伊人影院蕉久影院在线播放| 一本到一区二区三区| 日本中文字幕在线不卡| 蜜桃一区二区| 欧美寡妇偷汉性猛交| 成人毛片一区二区三区| 国产精品18久久久久久久久久久久| 麻豆91av| 牛牛电影国产一区二区| 欧美午夜一区二区| 在线观看国产三级| 欧美99在线视频观看| 国产91露脸中文字幕在线| www久久久久久| 国产精品日韩精品欧美在线| 免费看的黄色大片| 色播一区二区| www.久久撸.com| 日日噜噜噜噜人人爽亚洲精品| 国产麻豆成人精品| 亚洲一二三区在线| 精品3atv在线视频| 亚洲精品国偷自产在线99热| 欧美久久久久久久久久久久| 麻豆91精品91久久久的内涵| 欧美资源一区| 中国色在线日|韩| 亚洲精品电影在线观看| 欧美日韩精品一区二区三区视频播放| 麻豆成人综合网| 日韩啊v在线| 欧美人体一区二区三区| 亚洲精品美女久久| 久久精品久久精品久久| 国产成人综合亚洲91猫咪| 一级一片免费播放| 四虎国产精品永久在线国在线| 一本大道亚洲视频| 亚洲婷婷久久综合| 国产精品欧美久久久久一区二区| 在线免费视频a| 欧美精品一区二区久久| 国产精品第2页| 最新国产在线观看| 欧美喷水一区二区| 一区二区三区在线播放视频| 日本 国产 欧美色综合| 日本欧美精品久久久| 日韩精品免费观看视频| 在线观看中文字幕亚洲| 亚洲一区在线观| 国产精品二区一区二区aⅴ污介绍| 免费看污污网站| 爽成人777777婷婷| 成人免费网站在线| av在线官网| 欧美成人r级一区二区三区| 欧美极品aaaaabbbbb| 成人三级伦理片| 黄色网页免费在线观看| 国产成人影院| 国产精品欧美日韩一区二区| 免费在线观看黄| 日韩欧美国产精品一区| 国产第一页在线播放| av电影在线观看一区| 中文字幕乱码人妻综合二区三区| 欧美猛男同性videos| 国产欧美日韩视频| 欧美理论片在线播放| 亚洲激情视频在线| 蜜臀99久久精品久久久久小说| 国产精品水嫩水嫩| 一个人看的视频www| 亚洲精品1区| 少妇免费毛片久久久久久久久 | 日韩亚洲欧美中文字幕| 国产精品亚洲第一| 欧美色图色综合| 水蜜桃久久夜色精品一区| 肥熟一91porny丨九色丨| 日本三级一区| 久久亚洲精品中文字幕冲田杏梨| 性一交一乱一精一晶| 色综合久久综合网| 手机在线免费看片| 99riav一区二区三区| 一区二区xxx| 亚洲国产专区校园欧美| 亚州欧美一区三区三区在线| 9l视频自拍九色9l视频成人| 欧美亚洲国产日本| 伦xxxx在线| 日韩精品一区二区三区第95| 国产精品天天操| 欧美日韩视频免费播放| 免费成年人视频在线观看| 91免费小视频| 少妇献身老头系列| 日本成人在线一区| 亚洲不卡中文字幕无码| 91亚洲一区| 明星裸体视频一区二区| 影音先锋欧美激情| 国产精品视频自在线| 蜜桃视频在线观看免费视频| 北条麻妃一区二区三区中文字幕| 日韩二区三区| 欧美xxxxxxxx| 国产精品爽爽久久| 91国偷自产一区二区开放时间| 免费在线观看国产精品| 国产精品情趣视频| 国产jk精品白丝av在线观看| 国产69精品久久777的优势| www.日本一区| 日韩电影一二三区| 动漫av网站免费观看| 欧美日韩国产一区精品一区| 中文字幕av导航| 成人羞羞网站入口| 欧美另类网站| 欧美色图婷婷| 激情伦成人综合小说| 久久影院一区二区三区| 91精品久久久久久久久久久| 欧美影视资讯| 日本欧美一级片| 亚洲精品日产| 欧美在线视频在线播放完整版免费观看 | 777久久精品一区二区三区无码| 凹凸成人精品亚洲精品密奴| 欧美连裤袜在线视频| 亚洲尤物av| 久久久久久久久久久久久9999| 国产图片一区| 国产精品12| 成人福利一区| 国产麻豆一区二区三区在线观看| 亚洲成人影音| 亚洲一区二区三区毛片| 精品久久亚洲| 99在线视频首页| eeuss鲁片一区二区三区| 91成人理论电影| 91麻豆精品国产91久久久久推荐资源| 亚洲a在线观看| 欧美日韩午夜电影网| 亚洲一区二区三区香蕉| 精品国产第一国产综合精品| 99国产在线| 国产成人夜色高潮福利影视| 久久99精品国产99久久| 网红女主播少妇精品视频| 欧美 日韩 国产在线| 欧美午夜精品一区二区三区电影| 亚洲国产综合自拍| 天天射成人网| 国产 国语对白 露脸| 国产精品二区影院| 国产h视频在线播放| 国产精品一二| 成年人在线观看视频免费| 美女精品一区二区| 一级片黄色免费| av不卡在线观看| 欧美多人猛交狂配| 国产精品久久久久影院亚瑟| 中国毛片直接看| 午夜久久福利影院| 蜜臀精品一区二区三区| 欧美日韩国产综合视频在线观看 | 国产不卡免费视频| 懂色av粉嫩av蜜乳av| 欧美国产一区二区在线观看| 侵犯稚嫩小箩莉h文系列小说| 亚洲国产精品综合小说图片区| 欧美日韩乱国产| 欧美日本一区二区三区四区| 风流老熟女一区二区三区| 亚洲久久久久久久久久久| 成年人视频在线看| 久久久久国产精品www| 欧美不卡高清一区二区三区| 亚洲在线视频福利| 曰本一区二区三区视频| 一区二区三区在线观看www| 亚洲国产影院| 国内自拍第二页| 91看片淫黄大片一级在线观看| 国产稀缺精品盗摄盗拍| 欧美视频免费在线| 国产成年妇视频| 亚洲人成免费电影| 欧美巨大xxxx做受沙滩| 国产精品免费福利| 久久国产精品色av免费看| 亚洲成人自拍视频| 国产亚洲精品v| 亚洲天堂网站在线| 中文子幕无线码一区tr| 国产精品成人av久久| 欧美日韩一区三区| 天天躁日日躁狠狠躁伊人| 久久综合亚洲社区| 日韩av一级| 久久99精品国产一区二区三区| 亚洲国产一区二区在线观看| 北条麻妃av高潮尖叫在线观看| 国产不卡视频一区| 日韩精品一区二区三区在线视频| 色综合久久综合网97色综合| 亚洲国产www| 久久久电影免费观看完整版| 小黄鸭精品aⅴ导航网站入口| 国产精品香蕉视屏| 牛牛国产精品| 亚洲一区精品视频在线观看| 国产视频一区二区三区在线观看| 日韩美女视频网站| 精品噜噜噜噜久久久久久久久试看 | 国产免费久久久| 日韩中文有码在线视频| 欧美一区国产| 欧美18视频| 香蕉久久国产| 在线免费观看a级片| 亚洲成人一区在线| 亚洲精品无码久久久| 久久视频在线看| 国产一区一区| 国产av第一区| 国产美女娇喘av呻吟久久| 在线观看亚洲网站| 欧美久久一区二区| 快射av在线播放一区| 91精品啪aⅴ在线观看国产| 欧美独立站高清久久| 午夜国产一区二区三区| 中文字幕乱码日本亚洲一区二区| 精品乱码一区内射人妻无码| 亚洲欧美制服综合另类| **欧美日韩在线观看| 欧美亚洲免费在线| 日韩精品一级中文字幕精品视频免费观看| 在线观看国产三级| 色哟哟在线观看一区二区三区| 青青草在线播放| 国产成人精品在线观看| 红桃视频在线观看一区二区| 91视频免费版污| 国产精品污www在线观看| 国产又粗又猛又爽| 欧美老少做受xxxx高潮| 一区二区三区免费在线看| 老太脱裤让老头玩ⅹxxxx| 91色|porny| 中文无码av一区二区三区| 久久精品亚洲94久久精品| 日韩第一区第二区| 欧美一级在线看| 中文字幕精品在线不卡| 国产精品无码久久久久成人app| 欧美成人亚洲成人日韩成人| 成人影院中文字幕| 日本wwww视频| 亚洲欧洲成人精品av97| 午夜精品一区二区三| 欧美有码在线观看| 久久国产成人精品| 精品无码av一区二区三区| 欧美日韩在线另类| 最新国产在线观看| 不卡视频一区二区| 性一交一乱一区二区洋洋av| 五月天精品在线| 日韩欧美精品在线| 综合日韩av| 中文字幕在线中文字幕日亚韩一区| 国产精品一区二区三区网站| 国产一区二区三区影院| 少妇av一区二区三区| 成人三级毛片| 中文字幕第36页| 亚洲国产精品影院| 色哟哟免费在线观看| 韩国精品一区二区三区六区色诱| 日本欧美大码aⅴ在线播放| 九九九久久久久| 国产一区二区三区精品久久久| 国产视频一区二区在线播放| 欧美精品色婷婷五月综合| 亚洲欧美福利一区二区| 免费一级毛片在线观看| 99中文视频在线| 精品影视av免费| 中文字幕免费观看| 久久久久国产精品免费网站| 欧美激情黄色片|