回答

收藏

[评测分享] 【Arrow 有好料】DFR0654自制温湿度计

#板卡评测 #板卡评测 1793 人阅读 | 0 人回复 | 2024-02-14

最近天气变化挺大,自制了一个温湿度计
【材料】
1、DFR0654开发板
2、OLED显示屏
3、SHT31温湿度计
【实现步骤】
1、安装ssd1306驱动库GyverOLED.
2、安装sht31驱动库SHT31。
【代码实现】
  1. // дефайн перед подключением либы - использовать microWire (лёгкая либа для I2C)
  2. //#define USE_MICRO_WIRE

  3. // дефайн перед подключением либы - скорость SPI
  4. //#define OLED_SPI_SPEED 4000000ul

  5. #include <GyverOLED.h>
  6. #include "Wire.h"
  7. #include "SHT31.h"

  8. #define SHT31_ADDRESS   0x44

  9. uint32_t start;
  10. uint32_t stop;
  11. SHT31 sht;

  12. GyverOLED<SSD1306_128x64, OLED_BUFFER> oled;


  13. void setup() {
  14.   Serial.begin(115200);
  15.   oled.init();  // инициализация

  16.   // --------------------------
  17.   // настройка скорости I2C
  18.   //Wire.setClock(800000L);   // макс. 800'000

  19.   // --------------------------
  20.   oled.clear();   // очистить дисплей (или буфер)
  21.   oled.update();  // обновить. Только для режима с буфером! OLED_BUFFER

  22.   // --------------------------
  23.   oled.home();            // курсор в 0,0
  24.   oled.setScale(2);
  25.   oled.print("SHT31 Dmo!");   // печатай что угодно: числа, строки, float, как Serial!
  26.   oled.update();
  27.   delay(2000);



  28.   Wire.begin();
  29.   Wire.setClock(100000);
  30.   sht.begin();

  31.   uint16_t stat = sht.readStatus();
  32.   Serial.print(stat, HEX);
  33.   Serial.println();
  34.   
  35. }

  36. void loop() {
  37.   sht.read();         //  default = true/fast       slow = false
  38.   Serial.print("\t");
  39.   Serial.print(sht.getTemperature(), 1);
  40.   Serial.print("\t");
  41.   Serial.println(sht.getHumidity(), 1);
  42.   delay(100);
  43.   oled.setCursor(0, 3);   // курсор в (пиксель X, строка Y)
  44.   oled.print("TEMP:");
  45.   oled.setCursor(64, 3);   // курсор в (пиксель X, строка Y)
  46.   oled.print(sht.getTemperature());
  47.   
  48.   oled.setCursor(0, 6);   // курсор в (пиксель X, строка Y)
  49.   oled.print("HUMI:");
  50.   oled.setCursor(64, 6);   // курсор в (пиксель X, строка Y)
  51.   oled.print(sht.getHumidity());
  52.   oled.update();
  53.   delay(2000);
  54. }
复制代码
【实现效果】

sht31_demo.zip (957 Bytes, 下载次数: 0)

分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条