久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2783|回復: 0
收起左側

基于arduino的溫濕度采集及oled顯示屏實時顯示實驗

[復制鏈接]
ID:575254 發表于 2020-2-28 11:55 | 顯示全部樓層 |閱讀模式
最近用arduino做了一個小實驗,通過溫度和濕度傳感器采集當前室內溫度和濕度,并在溫度和濕度超標的時候發出報警,同時將溫濕度數據實時oled顯示,也可以通過串口觀測數據,話不多說,代碼如下:  

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <dht.h>
dht DHT;
#include <MsTimer2.h>  
#include <SPI.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 7
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
#define uint8  unsigned char
#define uint16 unsigned int
#define OLED_RESET 8
Adafruit_SSD1306 display(OLED_RESET);
#define uint8  unsigned char
#define uint16 unsigned int
#include <MsTimer2.h>  
#define OLED_RESET 8
const int DHT11_PIN= 8;//Humiture sensor attach to pin7
int buzzerPin = 6;

int incomingByte = 0;                    // 接收到的 data byte
String inputString = "";                 // 用來儲存接收到的內容
boolean newLineReceived = false;         // 前一次數據結束標志
boolean startBit  = false;               //協議開始標志

String returntemp = "";           //存儲返回值
char temp[100] = {0};

void setup() {
  // put your setup code here, to run once:
    Serial.begin(9600);
    sensors.begin(); // initialize the bus
    display.begin(SSD1306_SWITCHCAPVCC, 0x3c);  // initialize with the I2C addr 0x3D (for the 128x64)
    display.clearDisplay();
    pinMode(buzzerPin,OUTPUT);//set the buzzer as as OUTPUT
   // digitalWrite(buzzerPin,LOW);//initialize the buzzerPin as LOW level
    digitalWrite(buzzerPin,HIGH);
}

void loop() {
   while(1){
    display.setTextSize(2);
    display.setTextColor(WHITE);
    display.setCursor(0,0);
    display.println("deg:");
    display.setCursor(110,0);
    display.println("C");
    display.setCursor(0,30);
    display.println("wet:");
    display.display();
   gettempture();
   dht();
   display.setTextSize(2);
    display.setTextColor(WHITE);
    display.setCursor(0,0);
    display.println("deg:");
    display.setCursor(110,0);
    display.println("C");
    display.setCursor(0,30);
    display.println("wet:");
    display.display();
    //int chk = DHT11.read(8);           //讀取溫濕度傳感器管腳的數值
    //int fTemp = (float)DHT11.temperature;        //fTemp賦值為浮點型讀取到的溫度值
    //int  iHumidity = DHT11.humidity;           //iHumidity賦值為讀取到的濕度值
    memset(temp, 0x00, sizeof(temp));        //清空temp數組
    dtostrf(gettempture(), 3, 1, temp);  // 相當於 %3.2f
    String sTemp = temp;         //數組temp中的字符串賦給sTemp
    String sHum =  "";   
    sHum += dht();
    returntemp = "$TH-T" + sTemp + "-H" + sHum + "#";
    Serial.print(returntemp); //返回協議數據包      
    inputString = "";   // clear the string
   // delay(3000);
   }
}
float gettempture(void) {
   float temp1=0;
   float realtemp=0;
  display.clearDisplay();
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(50,0);
  for(int a=0;a<2;a++){
    sensors.requestTemperatures();
    temp1=sensors.getTempCByIndex(0);
    realtemp+=temp1;

  }
    realtemp=realtemp/2;
    display.println(realtemp);
    display.display();

if(realtemp>30)
{
digitalWrite(buzzerPin,LOW);
}
else
{
digitalWrite(buzzerPin,HIGH);
}
return realtemp;

}
float dht(void)
{
  D: int chk = DHT.read11(DHT11_PIN);//read the value returned from sensor
  switch (chk)
  {
  case DHTLIB_OK:  
    //Serial.println("OK!");
    break;
  case DHTLIB_ERROR_CHECKSUM:
    //goto D;
    //Serial.print("Checksum error,\t");
    break;
  case DHTLIB_ERROR_TIMEOUT:
      goto D;
    //Serial.print("Time out error,\t");
    break;
  default:
     // goto D;
    //Serial.print("Unknown error,\t");
    break;
  }
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(50,30);
  display.println(DHT.humidity,1);
  display.display();

  if(DHT.humidity>50)
{
digitalWrite(buzzerPin,LOW);
}
else
{
digitalWrite(buzzerPin,HIGH);
}
return DHT.humidity;
}

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 操久久| 少妇一级淫片免费播放 | 欧美在线一区二区三区 | 成人久久久 | 成年人网站免费 | 中文精品视频 | 色欧美片视频在线观看 | 成人福利在线 | 91精品国产乱码久久久久久久久 | 二区精品 | 91亚洲精华国产 | 亚洲精品一区二区三区蜜桃久 | 97日日碰人人模人人澡分享吧 | 成人免费观看男女羞羞视频 | 在线免费av观看 | 成av在线| 亚洲国产精品一区 | 日韩中文字幕一区二区 | caoporn免费 | 日韩在线三级 | 日日夜夜免费精品视频 | 国产美女视频 | h片在线免费看 | 成人精品鲁一区一区二区 | 久久精品一级 | av一区在线观看 | 国产有码| 一区二区视频在线观看 | 久久久久国产 | 三级黄色片在线播放 | 亚州春色 | 99久久久久久99国产精品免 | 中文字幕亚洲一区二区va在线 | 天堂网中文字幕在线观看 | 国产在线一区观看 | 天天玩天天操天天干 | 成人免费在线观看 | 亚洲高清视频在线 | 午夜成人在线视频 | 中文字幕乱码一区二区三区 | va精品 |