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

前言
b745f6a8f6b691a8f5e7c78e91e5a13.jpg
非常感谢面包板社区以及机智云能给我评测的机会,作为一位刚入门的小白来说,确实需要这么一套优质、功能全面的开发板




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


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

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


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

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

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

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



2.创建Arduino
image.png
image.png
  打开Arduino然后直接另存为文件,到桌面,文件名不要中文

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



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

4.编写代码Arduino
image.png
导入库文件,此项目有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.编译、下载
0ef7a63800bf9e5c3fe739b8d352482.jpg
因为Arduino uno只有一个串口,开发板默认让这个串口连接ESP8266
但是下载需要用到串口,所以必须把ESP8266旁边的跳线取下

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

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

6.验证
555cd1be1320713dbcd2a73c0674310.jpg