温度湿度计

来自Microduino Wikipedia
跳转至: 导航搜索
Language English

目的

将获取到的环境数据通过手机查看。

原理

通过温湿度传感器和光敏传感器将获取到的环境数据结合mCookie-BT蓝牙传送到手机上。

设备

模块 数量 功能
mCookie-CoreUSB/zh 1 核心板
mCookie-Hub/zh 1 传感器转接板
mCookie-BT/zh 1 蓝牙模块
Microduino-Temp&Hum/zh 1 温湿度传感器
Microduino-Light/zh 1 光敏传感器

文档

Android客户端: 注意:新版BT是蓝牙4.0,需要Android 4.3以上的系统才能支持。这里只提供Android的APP。
APP下载:

准备

  • Setup 1:将Light光敏传感器接到Sensorhub的A0引脚上。将温湿度传感器接到Hub的IIC引脚上。
  • Setup 2:将CoreUSB、BT、传感器与Hub叠堆,连接到电脑。

软件调试

  • 打开Arduino IDE,将下列代码复制到IDE中。
#include <Wire.h>
#include "I2Cdev.h"

#include <AM2321.h>
AM2321 am2321;

#include <SoftwareSerial.h>

SoftwareSerial mySerial(4, 5); // RX, TX

//#define Serial_com mySerial
#define Serial_com Serial1

float sensor_tem, sensor_hum, sensor_lux, sensor_light;

String dataToSend;
char buf[10];

void setup() {
  Serial.begin(9600);

  Serial_com.begin(9600);
}

void loop() {
  //获取温湿度==============================================
  am2321.read();
  sensor_tem = am2321.temperature / 10.0;
  sensor_hum = am2321.humidity / 10.0;

  sensor_light = map(analogRead(A0), 0, 1023, 0, 255);

  dtostrf(sensor_tem, 1, 1, buf);
  dataToSend = "{T:" + String(buf) + "}";
  Serial_com.print(dataToSend);
  Serial.println(dataToSend);
  delay(1000);

  dtostrf(sensor_hum, 1, 1, buf);
  dataToSend = "{H:" + String(buf) + "}";
  Serial_com.print(dataToSend);
  Serial.println(dataToSend);
  delay(1000);

  dtostrf(sensor_light, 1, 1, buf);
  dataToSend = "{L:" + String(buf) + "}";
  Serial_com.print(dataToSend);
  Serial.println(dataToSend);
  delay(1000);

  dataToSend = "";
}
  • Setup 1:选择正确的板卡和COM端口,编译通过后直接下载。
Upload.JPG
  • Setup 2:下载Android客户端。解压安装并打开,如果没有打开蓝牙,会提示用户需要打开蓝牙设备。
Microduino BT Serial 1.png
  • Setup 3:点击右上角SCAN搜索设备,设备名为Microduino,点击进行连接。
Microduino BT Serial 2.png
  • 初始情况在右上角出现Serial Present,等待变成Serial ready,此时就能正常通讯了。每隔1S上传一个环境数据。

软件说明

  • CoreUSB与蓝牙的通讯串口:Serial1
#define my_Serial Serial1
  • 传感器获取到值,每隔1S发送一次数据。
  dtostrf(sensor_tem, 1, 1, buf);
  dataToSend = "{T:" + String(buf) + "}";
  Serial_com.print(dataToSend);
  Serial.println(dataToSend);
  delay(1000);

视频