查看: 523|回复: 3

点亮你的鱼缸

[复制链接]
本帖最后由 347945801 于 2020-11-13 18:36 编辑

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

硬件清单
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.png

而我们对于表情板的编程可以移到Mind+上,在将代码复制到Arduino上(Mind+还未支持M0)
FriNovember-202011134792..png

[C++] 纯文本查看 复制代码
#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);
}


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

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

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


安卓机器人  中级技神

发表于 2020-11-14 09:20:22

本帖最后由 安卓机器人 于 2020-11-14 12:42 编辑

一直在找适合水养植物的IOT鱼缸
回复

使用道具 举报

rzegkly  版主

发表于 2020-11-14 17:07:43

很好的创意
回复

使用道具 举报

 初级技师

发表于 3 天前

这个不错,很有创意
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail