收藏官网首页
查看: 156|回复: 0

[资料] 【机智云Gokit2.0开发板】温湿度计制作

658

主题

714

帖子

3万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
35553
跳转到指定楼层
楼主
 楼主| 发表于 2024-9-4 15:03:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
校园创客福利
机智云gokit2.0开发板】温湿度计制作


目录
1.前言
2.温湿度计制作

前言



随着科技的进步和生活水平的提高,精准的环境监测逐渐成为日常生活中的重要需求。温湿度计作为环境监测的基础工具,在农业、气象、家庭等领域发挥着关键作用。机智云Gokit2.0开发板,凭借其强大的扩展性和灵活的开发能力,为温湿度计的制作提供了理想的解决方案。本文将介绍如何利用机智云Gokit2.0开发板设计和制作一款高性能的温湿度计,详细讲解其硬件选型、软件编程以及实际应用,旨在为读者提供一种高效、精准的环境监测方案。





这款开发板是一款物联网开发板,集成了物联网很多常用的功能
应用板板载了
  • 正反转可调速电机马达
  • 温湿度传感器
  • 红外感应器
  • RGB全彩LED灯
  • 另外增加了OLED扩展接口(8针脚)



主控板采用了arduino R3版本,可以使用Arduino IDE编程软件,快捷,高效的编程
Arduino IDE的优点就是不需要了解库函数如何做的,里面有非常多封装好的库函数,直接调用即可



WIFI模块采用esp8266,出厂已经内置机智云的固件,可以通过AirLink 、WebConfig、 SoftAP三种方法进行配网,让开发板拥有WIFI功能。

温湿度计制作
1.安装Arduino



  首先访问Arduino的官网,进入软件下载界面https://www.arduino.cc/en/software
  选择自己的系统版本下载,这里我直接选择 WIN10 and newer 64 bits





  可以选择捐赠,也可以选择仅下载,所以我们只下载就可以了
  选JUST DOWNLOAD






运行下载后的程序arduino-ide_2.2.1_Windows_64bit.exe
  然后一直下一步就可以了






  打开软件,一开始应该是英文状态,点击【File】-> 【Preferences】,可以改中文模式,同时可以改主题颜色




2.创建Arduino








  打开Arduino然后直接另存为文件,到桌面,文件名不要中文





选择开发板,Arduino uno
用数据线连接开发板,选择端口,我这里是COM12



3.硬件接线








从原理图可以找出,DHT11温湿度传感器的引脚是D3
开发板预留了一个oled屏幕接口(spi)8针脚
但是我这里只有4针脚(iic)的,所以我需要自行定义两个引脚用来给屏幕传输
GND----GND
VDD----VCC
SCK----D8
SDA----D9

4.编写代码Arduino




导入库文件,此项目有2个库文件
1.温湿度传感器库----DHT
2.OLED库文件----U8g2

库文件下载地址
DHT https://mbb.eet-china.com/download/315968.html
U8g2 https://mbb.eet-china.com/download/315969.html

Arduino源码下载
https://mbb.eet-china.com/download/315970.html

导入库文件



  1. #include <DHT.h>
  2. #include <U8g2lib.h>
  3. //uno内存太小用不了常规的中文库
  4. //最多只能用u8g2_font_unifont_t_chinese2
复制代码


定义引脚、类型


  1. #define SCL 8
  2. #define SDA 9
  3. //u8g2定义
  4. U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /*clock=*/SCL, /*data=*/SDA, /*reset=*/U8X8_PIN_NONE);

  5. //定义针脚
  6. #define DHTPIN 3
  7. //定义类型,DHT11或者其它
  8. #define DHTTYPE DHT11
  9. //进行初始设置
  10. DHT dht(DHTPIN, DHTTYPE);
复制代码


中文字模


  1. uint8_t weight_str[][32] =
  2. {
  3. {0x00,0x00,0xC4,0x1F,0x48,0x10,0x48,0x10,0xC1,0x1F,0x42,0x10,0x42,0x10,0xC8,0x1F,
  4. 0x08,0x00,0xE4,0x3F,0x27,0x25,0x24,0x25,0x24,0x25,0x24,0x25,0xF4,0x7F,0x00,0x00},/*"温",0*/


  5. {0x00,0x00,0xE4,0x1F,0x28,0x10,0x28,0x10,0xE1,0x1F,0x22,0x10,0x22,0x10,0xE8,0x1F,
  6. 0x88,0x04,0x84,0x04,0x97,0x24,0xA4,0x14,0xC4,0x0C,0x84,0x04,0xF4,0x7F,0x00,0x00},/*"湿",1*/

  7.   
  8. {0x80,0x00,0x00,0x01,0xFC,0x7F,0x44,0x04,0x44,0x04,0xFC,0x3F,0x44,0x04,0x44,0x04,
  9. 0xC4,0x07,0x04,0x00,0xF4,0x0F,0x24,0x08,0x42,0x04,0x82,0x03,0x61,0x0C,0x1C,0x70},/*"度",2*/

  10. };
复制代码


初始化函数


  1. void setup() {
  2.   Serial.begin(9600);
  3.   dht.begin(); //DHT开始工作
  4.   u8g2.begin();//u8g2开始工作

  5.   u8g2.clearBuffer();  // 清空显示设备内部缓冲区
  6.   //u8g2.setFont(u8g2_font_unifont_t_chinese2);//设置中文字符集,没内存,别用
  7.   u8g2.setFont(u8g2_font_ncenB14_tr);//设置数字样式
  8. }
复制代码


循环函数


  1. void loop() {
  2.   // 两次检测之间,要等几秒钟,这个传感器有点慢。
  3.   delay(2000);
  4.   // 读温度或湿度要用250毫秒
  5.   float h = dht.readHumidity();//读湿度
  6.   float t = dht.readTemperature();//读温度,默认为摄氏度

  7.   /*串口*/
  8.   Serial.print("Humidity: ");//湿度
  9.   Serial.println(h);
  10.   Serial.print("Temperature: ");//温度
  11.   Serial.print(t);


  12.   /*屏幕*/
  13.   u8g2.firstPage();
  14.   do
  15.   {
  16.      

  17.     u8g2.drawXBM(0,8,16,16,weight_str[0]);//x:X位置。y:Y位置。w:位图的宽度。h:位图的高度。bitmap:指向位图开始的指针
  18.     u8g2.drawXBM(16,8,16,16,weight_str[2]);//x:X位置。y:Y位置。w:位图的宽度。h:位图的高度。bitmap:指向位图开始的指针
  19.     u8g2.drawXBM(0,30,16,16,weight_str[1]);//x:X位置。y:Y位置。w:位图的宽度。h:位图的高度。bitmap:指向位图开始的指针
  20.     u8g2.drawXBM(16,30,16,16,weight_str[2]);//x:X位置。y:Y位置。w:位图的宽度。h:位图的高度。bitmap:指向位图开始的指针

  21.     u8g2.setCursor(40, 45); //指定显示位置
  22.     u8g2.print(h); //使用print来显示字符串  湿度
  23.     u8g2.setCursor(40, 20); //指定显示位置
  24.     u8g2.print(t); //使用print来显示字符串  温度
  25.   } while (u8g2.nextPage());

  26. }
复制代码


5.编译、下载





因为Arduino uno只有一个串口,开发板默认让这个串口连接ESP8266
但是下载需要用到串口,所以必须把ESP8266旁边的跳线取下






选择Arduino uno开发板,对应的com端口
然后按下Ctrl+U即可下载,或者点击左上角的上传






输出这些提示,则代表上传正常


6.验证


















您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表