极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 维博哥哥

用arduino采集温度信号通过蓝牙模块发回到手机串口

[复制链接]
发表于 2014-11-13 09:26:45 | 显示全部楼层 |阅读模式
本帖最后由 维博哥哥 于 2014-11-13 09:31 编辑

实验使用温度传感器DHT11蓝牙模块HC-05,手机使用安卓spp蓝牙串口,arduino用的是arduino due[pre lang="arduino" line="1" file="dht11"]#define DHT_PIN 50
#define VCC     48
#define GND     52
int led = 13;
byte ERROR;
byte dht_dat[5];

void setup() {
  // put your setup code here, to run once:
  pinMode(DHT_PIN,OUTPUT);
  pinMode(VCC,OUTPUT);
  pinMode(GND,OUTPUT);
  pinMode(led, OUTPUT);
  
  digitalWrite(DHT_PIN,HIGH);
  digitalWrite(VCC,HIGH);
  digitalWrite(GND,LOW);
  Serial.begin(9600);
   Serial3.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
while(Serial3.available()){
   char c=Serial3.read();
   if(c=='A'){
  ReadDHT();
  switch (ERROR){
  case 0:
     Serial.print("Current humidity=");
      Serial.print(dht_dat[0],DEC);
       Serial.print(".");
        Serial.print(dht_dat[1],DEC);
         Serial.print("% ");
          Serial.print("temperature=");
           Serial.print(dht_dat[2],DEC);
            Serial.print(".");
             Serial.print(dht_dat[3],DEC);
              Serial.print("C ");
              Serial.print("\n");
     
     Serial3.print("Current humidity=");
       Serial3.print(dht_dat[0],DEC);
       Serial3.print(".");
        Serial3.print(dht_dat[1],DEC);
         Serial3.print("% ");
         Serial3.print("\n");
          Serial3.print("temperature=");
           Serial3.print(dht_dat[2],DEC);
            Serial3.print(".");
             Serial3.print(dht_dat[3],DEC);
              Serial3.print("C ");
              Serial3.print("\n");
              break;


   case 1:
       Serial.println("Error 1HT start condition 1 not met.");
       break;
   case 2:
       Serial.println("Error 2HT start condition 2 not met.");
       break;
    case 3:
       Serial.println("Error 3HT checksum error.");
       break;
    default:
       Serial.println("Error :Unrecognized code encountered.");
       break;
   }
   delay(800);
     }
   }
}

void ReadDHT(){
  ERROR=0;
  /*for(int i=0;i<10;i++){
          digitalWrite(led,0);
          delay(1000);
          digitalWrite(led,1);
          delay(1000);
}*/
  byte dht_in;
  byte i;
  digitalWrite(DHT_PIN,LOW);
  delay(20);
  
  digitalWrite(DHT_PIN,HIGH);
  delayMicroseconds(40);
  pinMode(DHT_PIN,INPUT);
  dht_in=digitalRead(DHT_PIN);
  
  if(dht_in){
    ERROR=1;
    return;
  }
  delayMicroseconds(80);
  dht_in=digitalRead(DHT_PIN);
  
  if(!dht_in){
    ERROR=2;
    return;
  }
  delayMicroseconds(80);
  for(i=0;i<5;i++)
      dht_dat=read_dht_dat();
   pinMode(DHT_PIN,OUTPUT);
   digitalWrite(DHT_PIN,HIGH);
   byte dht_check_sum=
       dht_dat[0]+dht_dat[1]+dht_dat[2]+dht_dat[3];
   if(dht_dat[4]!=dht_check_sum)
   {
       ERROR=3;
   }
}

byte read_dht_dat(){
    byte i=0;
    byte result=0;
    for(i=0;i<8;i++){
        while(digitalRead(DHT_PIN)==LOW);
        delayMicroseconds(30);
        if(digitalRead(DHT_PIN)==HIGH)
            result |=(1<<(7-i));
        while(digitalRead(DHT_PIN)==HIGH);
    }
    return result;
}
[/code]
打开串口工具,然后手机发送A,手机和串口窗口都能同时收到温湿度信息
回复

使用道具 举报

发表于 2014-11-28 08:45:51 | 显示全部楼层
我想请问一下你用的这个器材如果是其他的话可以实现吗?是arduino板还有其他的温度传感器可以实现吗??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-9 14:38:03 | 显示全部楼层
我用的是arduino due 其它温度传感器当然也可以
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-12 10:48:55 | 显示全部楼层
Toooo 发表于 2014-11-28 08:45
我想请问一下你用的这个器材如果是其他的话可以实现吗?是arduino板还有其他的温度传感器可以实现吗??

可以啊,其他arduino板子也可以
回复 支持 反对

使用道具 举报

发表于 2017-5-30 15:25:04 | 显示全部楼层
  1. #define VCC     48
  2. #define GND     52
复制代码

不是有直接的电源地吗?为什么要这样?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-2 19:29:13 | 显示全部楼层
suoma 发表于 2017-5-30 15:25
不是有直接的电源地吗?为什么要这样?

可以自己启动一下
回复 支持 反对

使用道具 举报

发表于 2017-6-5 00:40:49 | 显示全部楼层
感谢楼主分享,小白学习一下。
回复 支持 反对

使用道具 举报

发表于 2017-6-6 19:58:18 | 显示全部楼层
请问楼主代码里面的笑脸是什么意思?新人求问,认真的
回复 支持 反对

使用道具 举报

发表于 2017-6-19 15:37:04 | 显示全部楼层
请问楼主有hc-05和板子的连线图吗,想学习一下,
还有就是这个蓝牙模块用之前要设定主从模式吗?因为我也在做跟楼主一样的要传回温度数据,但是太小白了,不懂得太多,请楼主多多指教,谢谢啦
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-24 16:56:12 | 显示全部楼层
纯小小白 发表于 2017-6-6 19:58
请问楼主代码里面的笑脸是什么意思?新人求问,认真的

笑脸,字符显示出来不一样
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-24 16:56:45 | 显示全部楼层
纯小小白 发表于 2017-6-19 15:37
请问楼主有hc-05和板子的连线图吗,想学习一下,
还有就是这个蓝牙模块用之前要设定主从模式吗?因为我也 ...

不需要设置主从模式
回复 支持 反对

使用道具 举报

发表于 2017-10-11 16:04:45 | 显示全部楼层
楼主,代码编译不过啊,出现 'Serial3' was not declared in this scope。怎么回事?
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 17:35 , Processed in 0.045007 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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