久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1925|回復(fù): 0
收起左側(cè)

零知開源分享-溫濕度模塊 SHT3X SHT30 SHT31 SHT35

[復(fù)制鏈接]
ID:349555 發(fā)表于 2019-5-10 11:45 | 顯示全部樓層 |閱讀模式
1、說明
MCU:零知開源開發(fā)板
溫濕度模塊:SHT3X
開發(fā)工具:零知實(shí)驗(yàn)室軟件開發(fā)工具
功能:測(cè)量環(huán)境的溫度和濕度信息

2、硬件連接
將模塊的SCL,SDA分別于零知標(biāo)準(zhǔn)板的 A5,A4, I2C接口連接即可。
1556590795737684.png
3、核心代碼
  1. /**
  2. *        使用SHT3X 模塊測(cè)試溫濕度信息   
  3. */

  4. #include "HTU3X.h"

  5. #define LED1        PA8

  6. //Create an instance of the object
  7. HTU3X myHumidity;

  8. void setup()
  9. {
  10.   Serial.begin(9600);
  11.   Serial.println("HTU21D Example!");

  12.         pinMode(LED1, OUTPUT);

  13.   myHumidity.begin();
  14. }

  15. void loop()
  16. {
  17.         digitalWrite(LED1, HIGH);
  18.         delay(500);
  19.         digitalWrite(LED1, LOW);
  20.          
  21.   float humd, temp;
  22.   myHumidity.readTempAndHumi(&temp, &humd);

  23.   Serial.print("時(shí)間:");
  24.   Serial.print(millis());
  25.   Serial.print(" 溫度:");
  26.   Serial.print(temp, 1);
  27.   Serial.print(" °C");
  28.   Serial.print(" 濕度:");
  29.   Serial.print(humd, 1);
  30.   Serial.print("%");

  31.   Serial.println();
  32.   delay(1000);
  33. }
復(fù)制代碼
  1. /**
  2. *   file : HTU3X.cpp
  3. */
  4. #include "HTU3X.h"

  5. HTU3X::HTU3X()
  6. {
  7.   //Set initial values for private vars
  8. }

  9. //Begin
  10. /*******************************************************************************************/
  11. //Start I2C communication
  12. void HTU3X::begin(SoftWire &wirePort)
  13. {
  14.   _i2cPort = &wirePort; //Grab which port the user wants us to use
  15.    
  16.   _i2cPort->begin();
  17. }

  18. #define MAX_WAIT 100
  19. #define DELAY_INTERVAL 10
  20. #define MAX_COUNTER (MAX_WAIT/DELAY_INTERVAL)

  21. //read 2-byte value with CRC from the HTU3X
  22. byte HTU3X::readValue(uint16_t *res)
  23. {

  24.   byte msb, lsb, checksum;

  25.   msb = _i2cPort->read();
  26.   lsb = _i2cPort->read();
  27.   checksum = _i2cPort->read();

  28.   uint16_t rawValue = ((uint16_t) msb << 8) | (uint16_t) lsb;

  29.   if (checkCRC(rawValue, checksum) != 0)
  30.     return (ERROR_BAD_CRC); //Error out

  31.   *res = rawValue;

  32.   return true;
  33. }

  34. byte HTU3X::readTempAndHumi(float *temp, float *humi)
  35. {
  36.     //Request a humidity reading
  37.   _i2cPort->beginTransmission(HTU3X_ADDR);
  38.   uint16_t cmd = CMD_MEAS_CLOCKSTR_H;
  39.   _i2cPort->write(cmd>>8); //Measure value (prefer no hold!)
  40.   _i2cPort->write(cmd);
  41.   _i2cPort->endTransmission();
  42.    
  43.   delay(500);

  44.   _i2cPort->requestFrom(HTU3X_ADDR,6);

  45.   uint16_t rawTemp, rawHumi;
  46.   readValue(&rawTemp);
  47.   readValue(&rawHumi);

  48.   _i2cPort->endTransmission();

  49.   *temp = 175.0f * (float)rawTemp / 65535.0f - 45.0f;
  50.   *humi = 100.0f * (float)rawHumi / 65535.0f;

  51. }
  52.   
  53. #define SHIFTED_DIVISOR 0x988000 //This is the 0x0131 polynomial shifted to farthest left of three bytes

  54. byte HTU3X::checkCRC(uint16_t message_from_sensor, uint8_t check_value_from_sensor)
  55. {
  56.   uint8_t bit;        
  57.   uint8_t crc = 0xFF;
  58.   uint8_t byteCtr;   
  59.    uint8_t data[2] = {message_from_sensor>>8, (uint8_t)message_from_sensor};
  60.   for(byteCtr = 0; byteCtr < 2; byteCtr++)
  61.   {
  62.           crc ^= (data[byteCtr]);
  63.           for(bit = 8; bit > 0; --bit)
  64.           {
  65.                   if(crc & 0x80)
  66.                           crc = (crc << 1) ^ 0x131;
  67.                   else         
  68.                           crc = (crc << 1);
  69.           }
  70.   }
  71.    
  72.   if(crc != check_value_from_sensor)
  73.           return 1;
  74.   else                              
  75.           return 0;
  76. }

復(fù)制代碼

更多詳細(xì)資料可到零知官免費(fèi)獲取。

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产成人免费观看 | 国产免费黄网 | 国产真实乱对白精彩久久小说 | 四虎影视免费观看 | 亚洲午夜精品视频 | 久久伊人精品 | 九九综合| 在线看片国产精品 | 成人区一区二区三区 | 天堂网av在线 | 日本天堂视频 | 亚洲一视频 | 国产精品海角社区在线观看 | 国产东北一级毛片 | 国产精品毛片 | 成人久久 | 久久中文字幕一区 | 成人免费在线视频 | 亚洲国产精品久久久 | www四虎影视 | 国产欧美精品一区二区三区 | 国产四区 | 一区二区三区久久久 | 四虎最新 | 亚洲欧美在线视频 | ririsao久久精品一区 | 91精品国产一区二区三区 | 午夜网| 97超在线视频 | 亚洲国产成人精品一区二区 | 91久久伊人 | 99一级毛片 | 亚洲一级淫片 | 男女网站免费观看 | 欧美日韩视频在线播放 | 国产精品夜色一区二区三区 | 欧美成人自拍视频 | av一区二区三区 | 伊大人久久 | 亚洲三区在线观看 | 午夜影晥|