RM新时代网站-首页

聚豐項(xiàng)目 > 便攜抽濕加濕器

便攜抽濕加濕器

1. 便攜。主控模塊總體重量不超過300g。 2.多功能。通過更換模塊,可以實(shí)現(xiàn)給室內(nèi)空氣抽濕加濕的功能。 3.便于維修,拓展。各模塊之間耦合度低,通過更換不同的模塊部分,為后續(xù)開發(fā)維修留下了余地。 4.可以通過手機(jī)控制參數(shù),實(shí)現(xiàn)個(gè)體化定制。

汪家州 汪家州

分享
1 喜歡這個(gè)項(xiàng)目
團(tuán)隊(duì)介紹

汪家州 汪家州

團(tuán)隊(duì)成員

汪家州 代碼+硬件

分享
項(xiàng)目簡介
1. 便攜。主控模塊總體重量不超過300g。 2.多功能。通過更換模塊,可以實(shí)現(xiàn)給室內(nèi)空氣抽濕加濕的功能。 3.便于維修,拓展。各模塊之間耦合度低,通過更換不同的模塊部分,為后續(xù)開發(fā)維修留下了余地。 4.可以通過手機(jī)控制參數(shù),實(shí)現(xiàn)個(gè)體化定制。
硬件說明

此款加濕抽濕器主要有6個(gè)模塊

  1. 加濕模塊

    rc震蕩電路+108k微孔霧化片構(gòu)成+棉棒+棉棒外殼。只需給rc震蕩電路提供5v電源即可工作。

  2. 抽濕模塊

    半導(dǎo)體制冷片+散熱片+導(dǎo)熱硅膠+散熱扇(可加可不加)。只需給半導(dǎo)體制冷片提供5v電源即可工作。

  3. arduino+繼電器控制模塊

    arduino uno 開發(fā)板 + 繼電器。負(fù)責(zé)邏輯控制,通過判斷濕度來控制繼電器的吸合,從而控制加濕模塊與抽濕模塊。

  4. lcd液晶顯示模塊

    現(xiàn)成的模塊,負(fù)責(zé)把濕度設(shè)定值與當(dāng)前濕度值顯示出來

  5. esp8266 wifi透傳模塊

    現(xiàn)成的模塊,負(fù)責(zé)把手機(jī)端發(fā)送的濕度設(shè)定值等參數(shù)傳送給arduino。

  6. HS300X傳感器模塊

    IDT廠家出的溫濕度傳感器,通過IIC 將采集到的環(huán)境溫濕度數(shù)據(jù)傳給arduino。

  7. 電源

    可以使用充電寶或者USB插槽供電。

軟件說明

#include<LiquidCrystal.h>

#include<Wire.h>

#include<WiFi.h>

#include<SoftwareSerial.h>

bool g_getDataSuccess = false;

bool g_startMeasure = false;




int relayPin = A2;

static int setHumi = 78;

// wifi

SoftwareSerial espSerial(A0, A1);


LiquidCrystal lcd(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); // rs=2,d7=12


// 濕度數(shù)據(jù)結(jié)構(gòu)

static struct SMeasureData

{

  int Humidity;

  int humi_h;

  int humi_l;

  bool Init()

  {

    Humidity = 0;

    humi_h = 0;

    humi_l = 0;

  }

} Mdata;


void setup()

{

  // put your setup code here, to run once:

  //I2C

  Wire.begin();

  // 液晶顯示屏

  lcd.begin(16, 2);

  //

  Serial.begin(9600);

  espSerial.begin(115200);

  pinMode(relayPin, OUTPUT);


}



// 以下 獲取濕度值部分開始

bool  StartMeasure(void)

{

  // 通知傳感器開始測(cè)量

  Wire.beginTransmission(0x44);// 傳感器地址44hex末尾+0

  Wire.endTransmission();

  delay(1000);

  g_startMeasure = true;

  return g_startMeasure;

}


bool DataFetch(void)

{

  Mdata.Init();

  Wire.requestFrom(0x44, 2); // 獲取濕度數(shù)據(jù)

  bool getHigh = true;

  while (Wire.available())

  {

    if ( getHigh)

    {

      Mdata.humi_h = Wire.read(); // Humidity Data [15:8]

      getHigh = false;

    }

    else

    {

      Mdata.humi_l = Wire.read(); // Humidity Data [7:0]

      getHigh = true;

    }

  }

  Mdata.Humidity = (Mdata.humi_h << 8) | Mdata.humi_l; // 拼接完整數(shù)據(jù)

  delay(1000);

  g_getDataSuccess = true;

  return g_getDataSuccess;

}


int HumiCalc(int humi)

{

  float fixNum = 16383.0;// (2e+14)- 1 = 16383,根據(jù)芯片手冊(cè)計(jì)算公式

  int humiResult = ( humi / fixNum) * 100 ;

  return humiResult;

}

// 以上 獲取濕度值部分結(jié)束





void loop()

{

  // put your main code here, to run repeatedly:

  lcd.setCursor(0, 0);

  lcd.print("setHumi: ");

  lcd.print(setHumi, DEC);

  // 獲取濕度數(shù)據(jù)開始

  StartMeasure();

  if (g_startMeasure)

  {

    DataFetch();

    if (g_getDataSuccess)

    {

      Mdata.Humidity = HumiCalc(Mdata.Humidity); //計(jì)算濕度值

      lcd.setCursor(0, 1);

      lcd.print("HUMI:");

      lcd.print( Mdata.Humidity, DEC);

    }

  }

  // 獲取濕度數(shù)據(jù)結(jié)束

  if (setHumi >= Mdata.Humidity)

  {

    digitalWrite(relayPin, LOW);// 如果當(dāng)前濕度小于設(shè)定濕度,開啟加濕

  }

  else

  {

    digitalWrite(relayPin, HIGH);// 否則 ,關(guān)閉加濕

  }

  #if 0


  if (Serial.available())

  {

    espSerial.write(Serial.read());

  }

  if (espSerial.available())

  {

    Serial.write(espSerial.read());

  }

#endif


  if (espSerial.available())

  {

    int addOrDel = 0;

    addOrDel = (int)espSerial.read();

  }

  if (addOrDel == 0x01); // wifi接受數(shù)據(jù)0A

  {

   setHumi = setHumi + 1;

  }

  elseif(addOrDel == 0x02)// wifi 接受數(shù)據(jù)0D

  {

    setHumi = setHumi - 1;

  }

}

使用的開發(fā)平臺(tái)是arduino IDE.


演示效果

如附件所示

IMG_20190113_020303.jpg


附件

(16.41 MB)下載

評(píng)論區(qū)(0 )
RM新时代网站-首页