点亮你的鱼缸

2020-11-139886
精华项目
AI 快速预览详细 收起
本文介绍了一个使用M0主控板、DS18B20温度传感器和TDS传感器来监测鱼缸水质和温度的项目。通过表情板和OLED显示屏直观展示状态,确保鱼儿健康成长。硬件清单包括M0主控板、DS18B20温度传感器、TDS传感器、RGB LED点阵表情板和OLED显示屏。代码中可以根据不同鱼种调整温度和TDS的阈值。上传代码后,将探头放入鱼缸中即可实时监测水质和温度。


在快节奏的生活中,陌生人之间的交流越来越少,很多人都选择养宠物作为排解寂寞的手段
其中,养金鱼大概是“看起来”最简单的了
点亮你的鱼缸图7
但我们的生活越来越忙碌,你是否在紧张忙碌的生活中,经常忘了照顾你的小鱼鱼呢?
是否因为忘了换水而让鱼生活在浑浊的水中呢,又是否因为加热棒突然抽风而将鱼煮“熟”了呢

硬件清单
M0主控板x1
DS18B20 防水温度传感器套件x1
Gravity: 模拟TDS传感器x1
Gravity: I2C 8×16 RGB LED点阵表情板x1
Gravity I2C OLED-2864 显示屏x1
杜邦线若干

软件使用Arduino IDE 烧录程序M0的SDK可以在Wiki中找到我们还用到了几个传感器和显示器的库包括DFRobot_TDSDFRobot_RGBPanelDFRobot_SSD1306_I2C
DFRobot_DS18B20,DFRobot_NeoPixel这两个库在DFRobot官方库中没有,但可以在Mind+的Arduino库中找到。

因为我们同时使用的表情板和OLED显示屏都是IIC设备,因此我们需要将IIC接口扩展,这里就需要用到扩展板了



我们开始着手做一个外壳
这里我选择用激光切割来制作,使用的材料是黑色的亚克力板(不用透明的肯定不是因为里面接线太乱)
在拼装的过程中,我顺便将会表情板和OLED显示屏固定在了亚克力板上
点亮你的鱼缸图5

而我们对于表情板的编程可以移到Mind+上,在将代码复制到Arduino上(Mind+还未支持M0)
点亮你的鱼缸图6

[mw_shl_code=cpp,false]#include <DFRobot_DS18B20.h>
#include <DFRobot_NeoPixel.h>
#include <DFRobot_RGBPanel.h>
#include <DFRobot_SSD1306_I2C.h>
// 静态常量
const uint16_t bitmap[][8] = {
{0x03e0,0x07f0,0x0888,0x0888,0x0770,0x0360,0x02a0,0x02a0},
{0x0000,0x1008,0x0810,0x0420,0x0810,0x1008,0x03c0,0x0420},
{0x4422,0x2814,0x1008,0x2814,0x4422,0x0000,0x0000,0x03c0},
{0x0000,0x1008,0x2814,0x0000,0x0000,0x0000,0x0420,0x03c0}
};
// 创建对象
DFRobot_NeoPixel neoPixel_4;
DFRobot_TDS tds_A0(A0);
DFRobot_SSD1306_I2C oled12864;
DFRobot_DS18B20 ds18b20_5;
DFRobot_RGBPanel panel;


// 主程序开始
void setup() {
oled12864.begin(0x3c);
ds18b20_5.begin(5);
neoPixel_4.begin(4, 20);
neoPixel_4.setBrightness(255);
}
void loop() {
oled12864.setCursorLine(1);
oled12864.printLine((String("TDS: ") + String((tds_A0.getTdsValue()))));
oled12864.setCursorLine(2);
oled12864.printLine((String("Temperature:") + String(ds18b20_5.getTempC())));
if (((ds18b20_5.getTempC()<20) && ((tds_A0.getTdsValue())>=30))) {
panel.diy(bitmap[0], 1);
}
else {
if ((ds18b20_5.getTempC()<20)) {
panel.diy(bitmap[1], 3);
}
else if (((tds_A0.getTdsValue())>=30)) {
panel.diy(bitmap[2], 4);
}
else {
panel.diy(bitmap[3], 2);
neoPixel_4.showRainbow(0, 4, 1, 360);
}
}
delay(5000);
}[/mw_shl_code]

代码中关于温度和TDS的阈值可以根据养的鱼的种类不同而修改
接着上传代码到主控中

将代码上传后,我们将探头放入鱼缸中,就能获取鱼缸中的水质和温度了
点亮你的鱼缸图2
这是适宜的水质和温度,表情板显示笑脸,灯带为彩色
点亮你的鱼缸图1
这是TDS超标是的表情,灯带为蓝色
点亮你的鱼缸图3
这是水温低于或高于正常值的表情,灯带显示为黄色
点亮你的鱼缸图4
水质和水温都不在正常范围内时,表情板就显示一个红色的骷髅头,你亲爱的小鱼鱼就快嗝屁啦

鱼的记忆只有7秒,我们无法感受到他们的生活状态,这个小鱼缸让人们可以生动的感受鱼的生活环境
及时换水和正确使用加热棒,也避免主人投食过多导致水体浑浊


创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(3)
诩
这个不错,很有创意
rzegkly
rzegkly
很好的创意
许培享
许培享
一直在找适合水养植物的IOT鱼缸
- 没有更多了 -