查看: 480|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 113 天

    连续签到: 14 天

    [LV.6]常住居民II

    发表于 2024-2-14 20:47:08 | 显示全部楼层 |阅读模式
    分享到:
    最近天气变化挺大,自制了一个温湿度计
    【材料】
    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. }
    复制代码
    【实现效果】
    温湿度计.jpg
    sht31_demo.zip (957 Bytes, 下载次数: 0)
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-5-12 17:03 , Processed in 0.139259 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.