娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

使用ESP32驅動TI的TMP117溫度傳感器

發布者:快樂心跳最新更新時間:2025-06-09 來源: jianshu關鍵字:ESP32  驅動  TI  溫度傳感器 手機看文章 掃描二維碼
隨時隨地手機看文章

簡介

ESP32是國產樂鑫公司生產的32位單片機,雙核240MHz,帶有藍牙和wifi功能,本例中使用的是ESP32-S模組。TMP117是德州儀器(TI)推出的I2C溫度傳感器系列,本例中使用的具體型號是TMP117MAIDRVR。本例中使用的開發環境是VSCODE安裝ESP-IDF插件。

硬件連接

TMP117的引腳定義

引腳定義


這里需要注意的是芯片根據ADD0引腳連接不同的網絡,I2C地址會發生變化,具體的定義如下圖


I2C地址

表中的X代表I2C通訊中代表讀寫的bit,需要注意的是,在ESP的I2C庫函數中,傳入參數的地址是7位的地址,在函數中會右移一位并在最低位加上代表讀寫的bit組成8位的讀地址或寫地址。舉例來說,假如ADD0連接Ground,按照表中的地址是1001000X,那么要傳入I2C函數中傳入的地址應該為01001000也就是0x48。

TI的數據手冊上給出的典型應用電路

典型應用電路


這里需要注意的是在使用ESP32作為主機的時候,由于ESP32的芯片手冊上提醒了ESP32的數字IO口自帶上拉電阻,所以應用電路圖中的5Kohm上拉電阻要去掉直接連接到ESP32的IO口。

本人搭建的ESP32-S電路


ESP32-S

本人搭建的TMP117外圍電路


TMP117外圍電路

這里為了方便我將ADD0接到了3.3V,按照前面的表格地址變成了0x49,具體按照自己的要求來接。

使用方法

首先配置ESP-IDF的配置文件,將I2C使用的SDA和SCL引腳配置為和電路中一樣(按照自己的電路連接配置)。在VSCODE主界面按F1,在彈出的搜索框內選擇ESP-IDF SDK配置編輯器。在左邊選擇Example Configuration,在右邊的SCL GPIO Num和SDA GPIO Num中輸入自己的硬件連接的IO口,點擊右上角的保存。


VSCODE配置


上電后TMP117默認進入連續轉換模式,每經過一次轉換時間更新一次溫度寄存器的值,讀取溫度寄存器(地址0x00)即可獲取當前溫度值。精度為0.0078125攝氏度每LSB,也就是讀取到的原始數據作為16位有符號數乘上0.0078125就得到當前攝氏溫度值。


#include #include 'esp_log.h'#include 'driver/i2c.h'#include 'freertos/FreeRTOS.h'#include 'freertos/task.h'static const char *TAG = 'i2c-simple-example';#define I2C_MASTER_SCL_IO           CONFIG_I2C_MASTER_SCL      /*!< GPIO number used for I2C master clock */#define I2C_MASTER_SDA_IO           CONFIG_I2C_MASTER_SDA      /*!< GPIO number used for I2C master data  */#define I2C_MASTER_NUM              0                          /*!< I2C master i2c port number, the number of i2c peripheral interfaces available will depend on the chip */#define I2C_MASTER_FREQ_HZ          400000                     /*!< I2C master clock frequency */#define I2C_MASTER_TX_BUF_DISABLE   0                          /*!< I2C master doesn't need buffer */#define I2C_MASTER_RX_BUF_DISABLE   0                          /*!< I2C master doesn't need buffer */#define I2C_MASTER_TIMEOUT_MS       1000#define TMP117_ADDR                 0x49        /*!< Slave address of the MPU9250 sensor */#define TMP117_TMP_RIG_ADDR         0x00        //溫度寄存器地址#define TMP117_RESOLUTION           0.0078125       //轉換精度static esp_err_t M117B_register_read(uint8_t reg_addr, uint8_t *data, size_t len){

    return i2c_master_write_read_device(I2C_MASTER_NUM, TMP117_ADDR, ®_addr, 1, data, len, I2C_MASTER_TIMEOUT_MS / portTICK_RATE_MS);}/**


 * @brief i2c master initialization

   */

   static esp_err_t i2c_master_init(void)

   {

   int i2c_master_port = I2C_MASTER_NUM;


   i2c_config_t conf = {

       .mode = I2C_MODE_MASTER,

       .sda_io_num = I2C_MASTER_SDA_IO,

       .scl_io_num = I2C_MASTER_SCL_IO,

       .sda_pullup_en = GPIO_PULLUP_ENABLE,

       .scl_pullup_en = GPIO_PULLUP_ENABLE,

       .master.clk_speed = I2C_MASTER_FREQ_HZ,

   };


   i2c_param_config(i2c_master_port, &conf);


   return i2c_driver_install(i2c_master_port, conf.mode, I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE, 0);

   }float MY_OutputtoTemp(int16_t out){

    return ((float) out * TMP117_RESOLUTION);   }void app_main(void){

    uint8_t data[2];

    int16_t iTemp;

    float ftemp;


    ESP_ERROR_CHECK(i2c_master_init());

    ESP_LOGI(TAG, 'I2C initialized successfully');

    vTaskDelay(15 / portTICK_PERIOD_MS);


    while(1)

    {


        ESP_ERROR_CHECK(M117B_register_read(TMP117_TMP_RIG_ADDR , data, 2));


        vTaskDelay(15 / portTICK_PERIOD_MS);


        iTemp=(int16_t)((data[0] << 8) | data[1]);

        

        ftemp=MY_OutputtoTemp((int16_t)iTemp);


        ESP_LOGI(TAG, 'M117 Temp: %.3f n',ftemp);


        vTaskDelay(975 / portTICK_PERIOD_MS);


    }}


關鍵字:ESP32  驅動  TI  溫度傳感器 引用地址:使用ESP32驅動TI的TMP117溫度傳感器

上一篇:(3)ESP32 Python 制作一個辦公室溫度計
下一篇:最后一頁

推薦閱讀最新更新時間:2025-06-09 10:37

Zephyr 環境搭建 - ESP32
本篇環境搭建的前提是 Zephyr 的基本環境已經搭建好,下述為與 ESP32 相關的環境搭建,最終的結果為使用 west 成功編譯 hello_world 例程并下載到 ESP32 開發板上。Zephyr 基本環境搭建參考 Zephyr 環境搭建。 前置條件 Ubuntu 20.04 (virtualbox on win10) Zephyr (v2.4-branch) ESP32-DevKitC V4 (WROVER-E) 環境搭建 獲取 ESP-IDF mkdir ~/esp cd ~/esp git clone -b v4.2 --recursive https://github.com/espressif/
[單片機]
STM32中ADC的使用/printf函數重定向串口顯示內部溫度傳感器測量值
STM32F334C8T6這款MCU中有兩個12位ADC(模數轉換器),ADC1的通道16連接到內置的一個溫度傳感器,本文使用該溫度傳感器測量MCU和周圍的環境溫度,并且通過串口發送到PC的串口助手進行顯示。 1. ADC的使用 1. select the ADC clock using the function RCC_ADCCLKConfig() 2. Enable the ADC interface clock using RCC_AHBPeriphClockCmd(); 3. ADC pins configuration ? Enable the clock for the ADC GPIOs using the fo
[單片機]
STM32中ADC的使用/printf函數重定向串口顯示內部<font color='red'>溫度傳感器</font>測量值
基于51單片機對兩路DS18B20溫度傳感器的設計
本文提出了基于51單片機兩路溫度控制器的設計方案,該設計方案采用兩個DS18B20溫度傳感器,采集兩個不同地方的溫度,通過AT89C51處理進行,由四位LED數碼管顯示所測量溫度,前兩位為第一個溫度傳感器的溫度,后兩位為第二個溫度傳感器的溫度。采用3個按鍵實現溫度最高和最低的設定,采用蜂鳴器和電動機實現溫度過高或過低報警。 1.引言 目前,溫度控制器存在的問題是如何縮減成本,減少功耗,溫度測量的準確性和多路溫度的同時顯示。本方案設計的實現基于C51單片機的兩路溫度控制器,做到成本最低化,精確度高,兩路溫度的顯示和控制,能在溫度超出設定的最高溫度時啟動電風扇進行降溫,在溫度低于設定的最低溫度時啟動蜂鳴器報警,能夠用戶設定最高
[單片機]
基于51單片機對兩路DS18B20<font color='red'>溫度傳感器</font>的設計
解密:芯海科技片上數字溫度傳感器
新冠疫情火了“紅外額溫槍”,向額頭輕輕一靠,額溫槍便可測量出人體向外輻射的紅外光能量,繼而計算得出體溫。 看似簡單的外紅溫度計的背后,卻隱藏著不簡單的技術,我們知道體溫會隨著運動情況、室外溫度而變化,那么紅外溫度計如何準確的捕捉紅外光,如何排除室外溫度例如冷空氣的干擾,又該如何將紅外信息轉換為體溫信息?這些都是額溫槍內安置的芯片所要解決的問題。 芯海科技在這次疫情防控戰中,扮演了重要角色,額溫槍短時間內暴漲的需求,極大地考驗著廠商技術、產能、上下游配合等綜合能力。芯海科技以日產數十萬片額溫槍芯片的速度,證明了其在集感知、計算、控制于一體的信號鏈芯片領域的強勁實力,為疫情防控貢獻了力量。 片上溫度傳感器一般具有兩種架構:一種是傳統利
[手機便攜]
解密:芯海科技片上數字<font color='red'>溫度傳感器</font>
影響熱電偶溫度傳感器測量的幾個因素
熱電偶是最常用的測溫器件之一,它直接測量溫度,并把溫度信號轉換成熱電動勢信號,通過電氣儀表轉換成被測介質的溫度。因為熱電偶溫度傳感器具有測量范圍寬、精度高以及響應時間快等優點,所以得到廣泛的使用。本篇文章主要探討影響熱電偶溫度傳感器測量的因素,歸納起來,主要有以下幾點: 插入深度 熱電偶測溫點的選擇是最重要的。測溫點的位置,對于生產工藝過程而言,一定要具有典型性、代表性,否則將失去測量與控制的意義。熱電偶插入被測場所時,沿著傳感器的長度方向將產生熱流。當環境溫度低時就會有熱損失。致使熱電偶溫度傳感器與被測對象的溫度不一致而產生測溫誤差。總之,由熱傳導而引起的誤差,與插入深度有關。而插入深度又與保護管材質有關。金屬保護管因其
[嵌入式]
基于12C總線接口的智能溫度傳感器TMPl01的設計
概述   TMPl01是TI公司生產的基于I2C串行總線接口的低功耗、高精度智能溫度傳感器,其內部集成有溫度傳感器、A/D轉換器、I2C串行總線接口等。寬泛的溫度測量范圍和較高的分辨率使其廣泛應用于多領域的溫度測量系統、多路溫度測控系統以及各種恒溫控制裝置。TMPl01具有以下性能特點:   1)帶有I2C總線,通過串行接口(SDA,SCI)實現與單片機的通信,其I2C總線上可掛接3個TMPl01器件,構成多點溫度測控系統。   2)溫度測量范圍為-55%~125℃,9~12位A/D轉換精度,12位A/D轉換的分辨率達0.0625~C。被測溫度值以符號擴展的16位數字量方式串行輸出。   3)電源電壓范圍寬(+2.7
[嵌入式]
基于SMBUS的MAX6654型智能溫度傳感器
MAX6654是美國MAXIM公司生產的雙通道智能 溫度傳感器 ,能同時測量遠程溫度、本地溫度。它采用SMBUS總線接口,有多種工作模式可供選擇,并具有可編程的欠溫/超溫報警輸出功能。利用MAX6654可對PC機,筆記本電腦和服務器中CPU的溫度進行監控。
[工業控制]
基于SMBUS的MAX6654型智能<font color='red'>溫度傳感器</font>
新型溫度傳感器的研究與發展
溫度是一個基本的物理現象,它是生產過程中應用最普通、最重要的工藝參數,無論是工農業生產,還是科學研究和國防現代化,都離不開溫度測量及溫度 傳感器 。它是現代測試和工業過程控制中應用頻率最高的傳感器之一。然而,溫度的準確測量并非輕而易舉,即使有了準確度很高的溫度傳感器,但是,如果測量方法選擇不當或者測量的環境不能滿足要求,則都難以得到預期的結果。 溫度測量的最新進展 當前,雖然主要的溫度傳感器,如熱電偶、熱電阻及輻射溫度計等的技術已經成熟,但是只能在傳統的場合應用,不能滿足許多領域的要求,尤其是高科技領域。因此,各國專家都在針對性的競爭開發各種新型溫度傳感器及特殊的實用測量技術。 光纖溫度傳感器 光導纖維(簡稱光纖)自2
[傳感器]
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 织金县| 九寨沟县| 平度市| 岱山县| 丁青县| 宜阳县| 武乡县| 永定县| 大关县| 双辽市| 百色市| 安徽省| 天气| 富民县| 龙泉市| 同仁县| 寿阳县| 巫溪县| 龙井市| 阿克陶县| 海南省| 南和县| 桃江县| 渭南市| 航空| 阿拉尔市| 栖霞市| 永昌县| 临猗县| 偃师市| 长寿区| 花莲市| 焉耆| 明星| 咸阳市| 科技| 海城市| 遂溪县| 新竹县| 霍林郭勒市| 聂拉木县|