色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>地下室/爬行空間通風系統開源分享

地下室/爬行空間通風系統開源分享

2022-11-03 | zip | 0.54 MB | 次下載 | 免費

資料介紹

描述

功能列表

  • 內部/外部溫度/濕度傳感器
  • 帶濕度比較的智能通風風扇控制
  • 減少地下室/爬行空間中的水分
  • 幫助減少霉菌生長
  • 智能通風省電

構建通風系統所需的零件

接線圖

?
poYBAGNh7TOAT6zqAAPgN_Vawek666.jpg
接線圖
?

OLED顯示器

?
poYBAGNh7TWAYtynAABLbn93FeE986.jpg
OLED顯示器
?

那么為什么要使用 IO 擴展器呢?

  • 設計更簡單
  • 現成的零件
  • 無需編寫 1-Wire 驅動程序
  • 無需編寫繼電器驅動程序
  • 無需編寫 OLED 顯示驅動程序
  • 沒有顯示字體占用 Arduino 代碼空間
  • 無需編寫濕度傳感器驅動程序
  • 節省 Arduino 上的代碼空間;僅 6106 字節 (19%)
  • 寫代碼不到一天
  • 使用標準 RJ11 電話線輕松接線
  • 沒有傳感器電纜長度問題
  • 比商業系統更便宜
  • 易于更改以適應個性化需求
  • 單電源

構建系統

將 Arduino Nano 連接到IO 擴展器并使用以下代碼對其進行編程6 針接頭是軟件串行調試端口,最終安裝時不需要。

?
pYYBAGNh7NeAQMlbAAMZZ3scr_c724.jpg
對 Arduino Nano 進行編程
?

確保更改 ONEWIRE_TO_I2C_ROM 定義的地址以匹配您的1-Wire 到 I2C地址。

/* IO Expander
*
* Basement/Crawlspace Ventilation System v1.1
*
*/

#include 
#include 
#include 
#include "IOExpander.h"

#define FAHRENHEIT
#define ONEWIRE_TO_I2C_ROM      "i4s71"
#define INIT_OLED               "st13;si;sc;sd"
#define HUMIDITY_SENSOR_INSIDE  "s6t1"
#define HUMIDITY_SENSOR_OUTSIDE "s8t1"
#define FAN_ON                  "r1o"
#define FAN_OFF                 "r1f"
#define ABSOLUTE_DELTA_FAN_ON   1           // Fan on if absolute humidity delta of inside >= outside
#define ABSOLUTE_DELTA_FAN_OFF  0.5         // Fan off if absolute humidity delta of inside <= outside
#define OUTSIDE_RELATIVE_FAN_ON 88          // Fan on if outside relative humidity is <= %
#define OUTSIDE_RELATIVE_FAN_OFF 90         // Fan off if outside relative humidity is >= %
#define MINIMUM_TEMPERATURE     15          // Cycle vent on/off if outside temperature <= 15C/59F
#define FAN_ON_TIME             (20*60*1000L) // 20 min
#define FAN_OFF_TIME            (20*60*1000L) // 20 min

//#define SERIAL_DEBUG
#define SERIAL_TIMEOUT  5000                // 5 sec delay between DHT22 reads

#ifdef SERIAL_DEBUG
SoftwareSerial swSerial(8,7);
#endif

struct HS {
  float temp;
  float relative;
  float absolute;
  bool error;
};

int led = 13;
bool init_oled = true;
long ontime, offtime;

#ifdef FAHRENHEIT
#define C2F(temp)   CelsiusToFahrenheit(temp)
float CelsiusToFahrenheit(float celsius)
{
  return ((celsius*9)/5)+32;
}
#else
#define C2F(temp)   (temp)
#endif

void SerialPrint(const char* str, float decimal, char error)
{
  Serial.print(str);
  if (error) Serial.print(F("NA"));
  else Serial.print(decimal, 1);
}

float DewPoint(float temp, float humidity)
{
  float t = (17.625 * temp) / (243.04 + temp);
  float l = log(humidity/100);
  float b = l + t;
  // Use the August-Roche-Magnus approximation
  return (243.04*b)/(17.625-b);
}

#define MOLAR_MASS_OF_WATER     18.01534
#define UNIVERSAL_GAS_CONSTANT  8.21447215

float AbsoluteHumidity(float temp, float relative)
{
  //taken from https://carnotcycle.wordpress.com/2012/08/04/how-to-convert-relative-hu  midity-to-absolute-humidity/
  //precision is about 0.1°C in range -30 to 35°C
  //August-Roche-Magnus   6.1094 exp(17.625 x T)/(T + 243.04)
  //Buck (1981)     6.1121 exp(17.502 x T)/(T + 240.97)
  //reference https://www.eas.ualberta.ca/jdwilson/EAS372_13/Vomel_CIRES_satvpformulae.html    // Use Buck (1981)
  return (6.1121 * pow(2.718281828, (17.67 * temp) / (temp + 243.5)) * relative * MOLAR_MASS_OF_WATER) / ((273.15 + temp) * UNIVERSAL_GAS_CONSTANT);
}

void ReadHumiditySensor(HS* hs)
{
  SerialCmd("sr");
  if (SerialReadFloat(&hs->temp) &&
      SerialReadFloat(&hs->relative)) {
    //hs->dewpoint = DewPoint(hs->temp, hs->relative);
    hs->absolute = AbsoluteHumidity(hs->temp, hs->relative);
    hs->error = false;
  }
  else hs->error = true;
  SerialReadUntilDone();
}

void setup() {
  Serial.begin(115200);
#ifdef SERIAL_DEBUG
  swSerial.begin(115200);
  //swSerialEcho = &swSerial;
#endif
  pinMode(led, OUTPUT);
  wdt_enable(WDTO_8S);
  offtime = millis() - FAN_OFF_TIME;
}

void loop() {
  HS inside, outside;
  static bool fan = false;
  static bool cycle = false;
  static long last_time = -(60L * 1000L);

  Serial.println();
  if (SerialReadUntilDone()) {
    // Read the humidity sensors only once a minute or they will self heat if read too quickly
    if (millis() - last_time > 60L * 1000L)
    {
      if (SerialCmdDone(HUMIDITY_SENSOR_INSIDE))
        ReadHumiditySensor(&inside);

      if (SerialCmdDone(HUMIDITY_SENSOR_OUTSIDE))
        ReadHumiditySensor(&outside);

      if (inside.error || outside.error) fan = false;
      else {
        if (fan) {
          if (outside.relative >= OUTSIDE_RELATIVE_FAN_OFF || inside.absolute - outside.absolute <= ABSOLUTE_DELTA_FAN_OFF)
            cycle = fan = false;
          else {
            if (cycle && outside.temp <= MINIMUM_TEMPERATURE &&
              millis() - ontime > FAN_ON_TIME) fan = false;
          }
          if (!fan) offtime = millis();
        }
        else {
          if (outside.relative <= OUTSIDE_RELATIVE_FAN_ON && inside.absolute - outside.absolute >= ABSOLUTE_DELTA_FAN_ON)
            cycle = fan = true;
          if (cycle && outside.temp <= MINIMUM_TEMPERATURE)
            fan = (millis() - offtime > FAN_OFF_TIME) ? true : false;
          if (fan) ontime = millis();
        }
      }

      if (fan) SerialCmdDone(FAN_ON);
      else SerialCmdDone(FAN_OFF);

      if (SerialCmdNoError(ONEWIRE_TO_I2C_ROM)) {
        if (init_oled) {
          SerialCmdDone(INIT_OLED);
          init_oled = false;
        }
        SerialCmdDone("st13;sc;sf0;sa1;sd70,0,"INSIDE";sd127,0,"OUTSIDE";sf1;sa0;sd0,12,248,""
#ifdef FAHRENHEIT
          "F"
#else
          "C"
#endif
          "";sd0,30,"%";sf0;sd0,50,"g/m";sd20,46,"3";");
        SerialPrint("sf1;sa1;sd70,12,"", C2F(inside.temp), inside.error);
        SerialPrint("";sd70,30,"", inside.relative, inside.error);
        SerialPrint("";sd70,48,"", inside.absolute, inside.error);
        SerialPrint("";sd127,12,"", C2F(outside.temp), outside.error);
        SerialPrint("";sd127,30,"", outside.relative, outside.error);
        SerialPrint("";sd127,48,"", outside.absolute, outside.error);
        Serial.print("";");
        Serial.print("sf0;sa0;sd0,0,"");
        if (fan) Serial.print("FAN");
        else Serial.print("v1.1");
        Serial.println("";sd");
        SerialReadUntilDone();
      }
      else init_oled = true;

      last_time = millis();
    }

    delay(1000);
  }
  else {
    digitalWrite(led, HIGH);
    delay(500);
    digitalWrite(led, LOW);
    delay(500);
    init_oled = true;
  }
  wdt_reset();
}

注意:如果您使用 USB 端口對 Arduino Nano 進行編程,則必須將其與IO 擴展器斷開,因為它也使用相同的單個串行端口,而不是如果您想調試使用 ICSP 端口對 ATmega328P 進行編程。要啟用軟件調試端口,請取消注釋 SERIAL_DEBUG 定義。

將 110VAC 線連接到兩個風扇。

?
pYYBAGNh7UCAak94AABbqUDjwCk129.jpg
連接風扇
?

在 PG7 和 PG9 外殼的任一側鉆一個 7/16" 和 9/16" 孔。使用 dremel 工具稍微擴大孔,直到壓蓋貼合。PG7 將輸入 12VDC 輸入電壓,PG9 將輸入傳感器和風扇。

?
poYBAGNh7UKAHAi5AAA6AlL_gBc089.jpg
在你的外殼上鉆一個洞
?

找到一個打開且未堵塞的通風口。這將是我們的排氣,我們將把地下室/爬行空間的空氣吹出。確保另一側的所有其他通風口都打開,因為這些通風口將成為您的進氣口。關閉相鄰的通風口,以便在整個地下室/爬行空間中創建區域而不是局部氣流。

?
poYBAGNh7USAXk_GAACvB_5wFdU595.jpg
找到一個暢通的通風口
?

使用扎帶將風扇安裝在通風口的內側。確保風扇指向正確的方向以吹出空氣。

?
poYBAGNh7UiAenE8AACjr-jkqdg945.jpg
安裝風扇
?

找到一個現有的接入點并將外部濕度傳感器線穿入內部。確保濕度傳感器距離房屋和任何障礙物足夠遠,以便準確測量環境溫度/濕度。根據當地發布的天氣報告驗證您的讀數。

?
pYYBAGNh7UyAeTh5AAArEqEkNj4558.jpg
室外濕度傳感器
?

將外部濕度傳感器連接到梯形插孔和外殼并將其安裝在內部。

?
pYYBAGNh7VmAVXDAAABtbLkpo5Q179.jpg
安裝內部梯形校正插孔
?

將內部濕度傳感器連接到梯形插孔和外殼并將其安裝在內部。需要額外濕度控制的中心位置或區域是首選。

?
poYBAGNh7WWAfSlzAACFkxDW6BQ183.jpg
內部濕度傳感器
?

將 50 英尺 RJ11 電線連接到濕度傳感器,并將帶有風扇線的電線連接到將安裝控制外殼的可用接入點。

?
poYBAGNh7WqAbX_AAACGUwc4gzA162.jpg
運行電線
?

連接所有電線并將所有部件組裝/送入控制柜。如果您的 50 英尺 RJ11 電線帶有預先壓接的連接器,您必須將它們切斷以將電線穿過壓蓋并壓接新的連接器。

?
poYBAGNh7XeAPPrRAAWJ4wL3fj4585.jpg
連接所有電線
?

測試系統并確保一切正常。要測試繼電器和風扇,請斷開 Arduino 與IO 擴展器的連接,并將其直接連接到您的計算機以手動控制它。確認一切正常后,使用雙面膠帶和包裝泡沫將所有部件組裝到外殼中以固定您的電路板,并享受智能濕度控制通風系統的好處和節省

2019 年 3 月 20 日更新

在過去幾個月在我的爬行空間中運行通風系統后,在我的熱水器泄漏后,零掛起和峰值相對濕度大于 95% 后,它已成功將相對濕度降至 50% 以下。通風系統是一個有效的控制系統

?
poYBAGNh7XqAM9VVAAAh4zlGBbg054.jpg
通氣成功!
?

從 SSD1306 0.96" OLED 顯示屏切換到 SH1106 1.3" OLED 顯示屏。它更大,更容易閱讀。使用 IO Expander 固件更新可以輕而易舉地改變它。只需在您的代碼中將“ST10”更改為“ST13”。

?
SH1106 1.3
SH1106 1.3" OLED顯示屏
?

2019 年 9 月 12 日更新

發布了 v1.1,修復了 OLED 顯示屏供電空白的冷啟動問題。還在為我的爬行空間發泄!


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 亚洲AV无码一区二区三区牛牛 | 国产精品在线手机视频 | 噜噜噜在线AV免费观看看 | 寂寞护士中文字幕 mp4 | 精品AV国产一区二区三区 | 无码人妻少妇色欲AV一区二区 | 国产色偷偷男人的天堂 | 中文字幕亚洲综合小综合在线 | 超碰在线97久久视频观看 | 99在线播放 | 日韩高清在线亚洲专区 | 久久婷婷国产五月综合色啪最新 | 撕烂衣服扒开胸罩揉爆胸 | 羞羞漫画免费漫画页面在线看漫画秋蝉 | 麻豆婷婷狠狠色18禁久久 | 我的家庭女教师 | 日韩一本道无码v | 色综合色综合久久综合频道 | 神马影院在线eecss伦理片 | 亚洲视频在线看 | 广播电台在线收听 | 野花香在线观看免费观看大全动漫 | 玩50岁四川熟女大白屁股直播 | 在线看片成人免费视频 | 我的漂亮朋友在线观看全集免费 | 大地影院日本韩国电影免费观看 | 无限资源在线看影院免费观看 | 国产精品v片在线观看不卡 国产精品v欧美精品v日韩 | 九色终合九色综合88 | 久久热精品18国产 | 国产1769一七六九视频在线 | 成人国产亚洲精品A区天堂蜜臀 | 青娱乐国产精品视频 | 欧美日韩精品一区二区三区四区 | 久久黄色片 | 久久国产精品福利影集 | 一本色道久久综合亚洲精品加 | 露露的性战k8经典 | 伦理在线影院伦理电影 | 国产精品久久久久婷婷五月色 | 奶头好翘是不是想要了 |