电子萌新的第一个“活”项目用ArduinoDS18B20花50块自制智能鱼缸温控器附代码与接线图养鱼爱好者都知道水温稳定是鱼类健康的关键。市面上的成品温控器动辄几百元而今天我们要用50元预算和一块Arduino开发板打造一个会自主思考的鱼缸温控系统。这个项目特别适合刚接触硬件的编程爱好者——不需要电路基础只要会插线就能完成。1. 硬件清单与成本控制我们先来算一笔经济账。整套系统核心部件只有4个元器件型号单价元采购平台主控板Arduino Nano12.8淘宝/拼多多温度传感器DS18B20防水款5.9华强北商城继电器模块5V单路光耦隔离3.5立创商城加热棒50W不锈钢18.0本地水族店合计40.2注实际花费可能更低很多元件可以复用其他项目剩余材料DS18B20这个传感器堪称电子界的瑞士军刀防水封装可直接浸入鱼缸±0.5℃精度远超普通NTC热敏电阻单总线协议只需一根数据线连接原生支持Arduino有现成库文件2. 开发环境闪电搭建别被开发环境这个词吓到整个过程比安装手机APP还简单下载Arduino IDE官方完全免费# Windows用户直接运行安装包 # Mac用户拖拽到Applications文件夹插入Arduino Nano设备管理器中确认COM端口号安装DS18B20的库文件工具 - 管理库 - 搜索OneWire和DallasTemperature - 安装提示如果遇到驱动问题CH340芯片的板子需要单独安装驱动卖家通常提供下载链接。3. 电路连接乐高式接线法所有连接都采用防呆设计根本不可能接错[DS18B20] [Arduino Nano] VCC --------- 5V GND --------- GND DATA ------- D2 (需接4.7K上拉电阻) [继电器] [加热棒] VCC --------- 5V GND --------- GND IN ---------- D3 COM --------- 火线 NO ---------- 加热棒实际接线时建议使用面包板过渡测试正式使用时可以用热熔胶固定接头防水4. 代码解析智能温控逻辑核心代码不到30行但实现了完整的PID控制思想#include OneWire.h #include DallasTemperature.h #define RELAY_PIN 3 #define TEMP_PIN 2 OneWire oneWire(TEMP_PIN); DallasTemperature sensors(oneWire); float targetTemp 26.0; // 设置目标温度 void setup() { pinMode(RELAY_PIN, OUTPUT); sensors.begin(); Serial.begin(9600); } void loop() { sensors.requestTemperatures(); float currentTemp sensors.getTempCByIndex(0); Serial.print(当前水温: ); Serial.print(currentTemp); Serial.println(°C); if(currentTemp targetTemp - 0.5) { // 0.5℃回差防止频繁开关 digitalWrite(RELAY_PIN, HIGH); Serial.println(加热棒启动); } else if(currentTemp targetTemp) { digitalWrite(RELAY_PIN, LOW); Serial.println(加热棒关闭); } delay(5000); // 每5秒检测一次 }进阶技巧在setup()函数里添加这段代码可实现开机自检for(int i0; i3; i) { digitalWrite(RELAY_PIN, HIGH); delay(200); digitalWrite(RELAY_PIN, LOW); delay(200); }5. 系统优化与扩展可能基础版已经能用但还有更多玩法值得尝试OLED显示模块8元实时显示水温曲线#include U8g2lib.h U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0);手机监控0元利用旧安卓手机串口蓝牙模块双重保护在代码中加入超温报警if(currentTemp 32.0) { while(1) { // 死循环报警 digitalWrite(BUZZER_PIN, HIGH); delay(500); digitalWrite(BUZZER_PIN, LOW); delay(500); } }我的热带鱼缸运行这个系统三个月后温度波动始终保持在±0.8℃以内。最惊喜的是某天加热棒故障系统通过串口日志及时发现了异常——这比普通温控器只能被动响应高明多了。