精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产日韩中文字幕| 欧美在线观看一二区| 国产精品嫩草在线观看| 日韩福利片在线观看| 亚洲色图 校园春色| av日韩在线看| 久久精品国产v日韩v亚洲| 日韩妆和欧美的一区二区| 亚洲成人tv网| 日韩欧美国产小视频| 国产成a人亚洲精v品在线观看| 国产精品一区二区在线免费观看| 美女的胸无遮挡在线观看| 2023国产一二三区日本精品2022| 欧美刺激性大交免费视频| 校园激情久久| 亚洲三级网页| 亚洲伊人伊色伊影伊综合网| 欧美精品一区二区久久婷婷| 一本久久a久久精品vr综合 | 我不卡手机影院| 精品福利av导航| jizzzz日本| 中文在线中文资源| 亚洲激情网站免费观看| 日韩成人av网站| 人妻一区二区三区四区| 精品三级av在线导航| 精品视频1区2区| 日韩精品一区二区三区久久| dy888亚洲精品一区二区三区| 久久先锋资源| 欧美激情精品久久久| 国产精品理论在线| 亚洲理论电影片| 亚洲精品一区二区在线观看| 超碰成人在线播放| av在线一区不卡| 亚洲国产精品av| 激情小说网站亚洲综合网| 国产女人18毛片水真多| 日韩高清不卡一区| 日韩美女视频免费看| 日韩精品在线免费看| 女人香蕉久久**毛片精品| 中文字幕日韩在线观看| 99久久精品免费视频| 九九久久电影| 亚洲欧美日韩网| 亚洲色图14p| 日韩精品99| 欧美午夜激情在线| 女人和拘做爰正片视频| 日韩脚交footjobhdboots| 亚洲一区二区四区蜜桃| 国产精品视频网站在线观看| 污视频网站在线免费| 伊人婷婷欧美激情| www.亚洲成人网| 青春草在线视频| 亚洲国产成人av| 日韩国产一级片| 少妇视频在线观看| 一本久久a久久免费精品不卡| 亚洲国产综合人成综合网站| 欧美日本不卡| 欧美色精品天天在线观看视频| av天堂永久资源网| 亚洲一二三四| 色av成人天堂桃色av| 日韩精品一区二区三区不卡| 欧美xxxhd| 国产在线视频你懂的| 国产www免费观看| 男人操女人的视频在线观看欧美| 国产精品九九久久久久久久| 波多野结衣爱爱| 免费成人在线影院| 成人伊人精品色xxxx视频| 91精品国产高清一区二区三密臀| 高潮毛片又色又爽免费| 99精品国产在热久久婷婷| 91精品国产高清久久久久久久久| 国产区一区二区三| 日韩高清不卡一区二区| 91精品久久久久久久久久久久久久| 这里只有精品9| 国产精品911| 国产中文一区二区| 国产视频网址在线| 中文字幕人成不卡一区| 国产一区二区四区| 欧美无毛视频| 欧美一区二区三区在线观看视频| 日韩中文字幕在线视频观看 | 亚洲第一福利视频| 日本黄色特级片| 欧美成人精品一区二区三区在线看| 精品国产免费人成电影在线观看四季| 日本美女视频网站| 精品国产一区二区三区| 久久中国妇女中文字幕| 国产成人免费观看视频| 麻豆精品久久久| 精品国产一区二区三区免费| 1024视频在线| 欧美日韩国产在线看| 亚洲第一色av| 精品国产一区二区三区久久久蜜臀| 中文字幕国产亚洲2019| 久久久久久久伊人| 久久69国产一区二区蜜臀| 久久国产精品久久| 天堂8中文在线| 欧美在线制服丝袜| 91视频在线免费| 天天做综合网| 日本国产高清不卡| 毛片视频网站在线观看| 精品一二三四在线| 日本福利一区二区三区| 国内小视频在线看| 欧美美女网站色| 欧美成人一区在线| 中文字幕欧美人与畜| 无套内谢的新婚少妇国语播放| 国产女主播视频一区二区| 无码粉嫩虎白一线天在线观看| 四虎成人在线| 亚洲色图国产精品| 久久久免费看片| 亚洲成人中文| 91aaaa| av在线电影观看| 色综合久久综合| 艳妇乳肉亭妇荡乳av| 欧美三级第一页| 91牛牛免费视频| 日韩美女网站| 欧美日韩三级在线| 欧美激情视频二区| 日本美女一区二区三区视频| 国产精品高潮呻吟久久av黑人| 成人精品在线播放| 亚洲精品成人在线| 亚洲一级片免费观看| 99re6这里只有精品| 国产精品av在线| 国产无套粉嫩白浆在线2022年 | 日日摸天天添天天添破| av在线不卡观看免费观看| 久久精品五月婷婷| 成年人视频免费在线播放| 日韩欧美123| 精品少妇久久久| 日韩国产高清影视| 日韩性感在线| 欧美大片网站| 另类专区欧美制服同性| 国产视频在线观看免费 | 国产免费色视频| 国产成人免费av一区二区午夜| 久久久精品在线| 国产国语亲子伦亲子| 亚洲综合网站在线观看| 性活交片大全免费看| 亚洲精品国产日韩| 久久一区二区三区av| 欧洲av一区二区| 精品国偷自产在线视频99| 99久久免费国产精精品| 亚洲图片一区二区| 丰满大乳奶做爰ⅹxx视频| 视频精品一区二区| 中国成人在线视频| 一区二区免费| 日本成人在线视频网址| 麻豆影视在线观看_| 69av一区二区三区| 国产无码精品在线播放| 久久精品亚洲国产奇米99| 一级黄色录像在线观看| 国产精品久久| 欧美激情第六页| 欧美黑人xx片| 亚洲精品一区二区网址| 亚洲性生活大片| 亚洲国产欧美在线| 国产在线综合视频| 高清成人在线观看| 老头吃奶性行交视频| 欧美一区二区| 欧洲精品在线一区| 6080成人| 国产免费亚洲高清| 老牛影视精品| 久久久国产视频| 你懂的视频在线免费| 91精品国产入口在线| 日韩手机在线视频| 亚洲一区二区中文在线| 国产精品69久久久久孕妇欧美| 国产91精品欧美| 99sesese| 亚洲欧美日韩一区在线观看| 91免费网站视频| 国产成人影院| 国产在线精品一区二区三区| 午夜精品久久久久久毛片| 欧美中文字幕在线观看| 天堂va在线| 久久久国产精彩视频美女艺术照福利| 日韩av地址| 亚洲成人精品视频| 一本一道人人妻人人妻αv | 男人日女人逼逼| 亚洲第一偷拍| 96国产粉嫩美女| 偷拍中文亚洲欧美动漫| 高清欧美性猛交xxxx| 久cao在线| 一区二区三区美女xx视频| 色一情一乱一区二区三区| 欧美一区二区三区免费大片| 亚洲 小说区 图片区| 精品露脸国产偷人在视频| 亚洲久久久久久| 国产一区二区精品久久| 韩国中文字幕av| 西西人体一区二区| 国产日韩欧美精品在线观看| 亚洲成av人片乱码色午夜| 亚洲看片网站| 欧洲乱码伦视频免费| 麻豆成人在线播放| 秋霞蜜臀av久久电影网免费 | 风流少妇一区二区三区91| 欧美精品xxxxbbbb| 一区二区小视频| 欧美三级电影网站| 伊人免费在线观看| 欧美视频一区二区在线观看| 特级西西444www大胆免费看| 91国内精品野花午夜精品| 欧美黄色一级大片| 色狠狠色狠狠综合| 成人小视频在线播放| 91国偷自产一区二区使用方法| 无码视频在线观看| 欧美自拍偷拍一区| 精人妻无码一区二区三区| 欧美主播一区二区三区美女| 亚洲中文无码av在线| 欧美三区在线观看| 国产精品无码在线播放| 一区二区三区欧美久久| 精品国产乱码久久久久久鸭王1| 综合网在线视频| 唐朝av高清盛宴| 亚洲午夜免费电影| 亚洲 欧美 日韩 综合| 动漫精品一区二区| 国产免费一级视频| 欧美日韩不卡在线| 性欧美18一19性猛交| 亚洲国产成人av在线| 国产精品无码免费播放| 加勒比视频一区| 波多野结衣在线aⅴ中文字幕不卡| 日韩成人免费视频| 99亚洲精品视频| 99国产精品欲| 在线中文字幕一区| 一卡二卡三卡在线观看| 久久色成人在线| 亚洲av熟女国产一区二区性色| 国产午夜亚洲精品理论片色戒| 亚洲第一页在线| 国产一级特黄视频| 欧美日韩亚洲高清| 成人黄色免费网| 国产一区99| 久久精品成人欧美大片| 欧美aaa免费| 欧美影院久久久| 日本亚洲欧洲无免费码在线| 成人欧美一区二区三区黑人免费| 丝袜美腿综合| 一区二区在线中文字幕电影视频| 欧美成人有码| 日本不卡在线观看视频| 久久国产精品免费| 又黄又爽的网站| 一区在线观看免费| 69视频免费在线观看| 8x8x8国产精品| 奇米影视888狠狠狠777不卡| 日韩专区在线观看| 亚洲男女视频在线观看| 亚洲男人天堂久| 成人国产免费电影| 国产97在线|日韩| 亚洲精品观看| 亚洲国产综合自拍| 一本色道88久久加勒比精品| 亚洲综合欧美在线| 91首页免费视频| 中文字幕在线永久| 国产精品毛片久久久久久| 韩国三级丰满少妇高潮| 日本亚洲精品| 国产亚洲精品成人av久久ww| av官网在线播放| 国产精品美腿一区在线看| 久久久久久久久久久久久久久久久久久久| 亚洲v欧美v另类v综合v日韩v| 亚洲精品系列| 国产伦理在线观看| 亚洲色图制服丝袜| 黄色一区二区视频| 亚洲天堂一区二区三区| 三妻四妾的电影电视剧在线观看| 亚洲一区二区中文| 久久在线免费| 三级a在线观看| 久久久99久久| 日韩久久精品视频| 亚洲二区在线播放视频| 视频在线观看入口黄最新永久免费国产| 国产精品亚洲美女av网站| 国产乱码精品一区二区亚洲| 欧美在线观看www| a级高清视频欧美日韩| 久草中文在线视频| 日韩欧美一区在线| aaa大片在线观看| 91在线观看免费| 亚洲最大黄网| 久久久九九九热| 亚洲三级电影全部在线观看高清| 成年人视频免费| 国产精品婷婷午夜在线观看| 欧美国产二区| 黑人一区二区| 成年女人免费视频| 亚洲高清免费视频| 农村少妇久久久久久久| 久久久久久这里只有精品| 福利片一区二区| 欧美亚洲精品一区二区| 久久综合色8888| 久草视频在线免费| 色青青草原桃花久久综合| 国产亚洲精品精品国产亚洲综合| 亚洲一区二区不卡视频| 精品一区二区在线看| 我要看黄色一级片| 日韩视频免费观看高清在线视频| 日韩影视在线| 九九九热999| 日韩精彩视频在线观看| 久久久久久成人网| 在线不卡一区二区| 欧美精品videosex| 蜜桃久久精品乱码一区二区| 日韩二区三区四区| 天天做夜夜爱爱爱| 精品福利一区二区三区免费视频| 国内激情视频在线观看| 日韩精品福利视频| 捆绑调教美女网站视频一区| 日本a级片视频| 亚洲国产精品视频在线观看 | 欧美黑人一级爽快片淫片高清| 中文字幕一区二区三区四区久久 | 国产综合一区二区| 精品午夜福利视频| 亚洲精选中文字幕| 青娱乐极品盛宴一区二区| 男人天堂新网址| 国产亚洲欧美色| 国产成a人亚洲精v品无码 | 亚洲无码久久久久| 国产亚洲精品资源在线26u| 日本成人一级片| 欧美国产视频一区二区| 亚洲免费专区| 免费欧美一级片| 日韩欧美成人网| 1769免费视频在线观看| 欧美高清视频一区| 国产福利一区在线| www.com亚洲| 高清欧美性猛交| 999成人网| 中文字幕在线看高清电影| 国产精品国产三级国产普通话99| www三级免费| 国产精品免费电影| 国产欧美日韩综合一区在线播放|