为了给家里攒的太阳能利用起来,自己攒了一套直流12V的设备。主要功能有:

  • 使用12V为鱼缸LED供电,给鱼缸照明;
  • 使用继电器控制220V交流水泵给鱼缸打循环(直流水泵功率太小);
  • 使用12V给鱼缸打氧(待加入,暂时没有打氧的刚需,需要等到天热了);
  • LED灯光可以调节;
  • 当Blynk手机APP不可以使用的时候,可以使用触摸感应开关打开鱼缸的灯(通过判断短按,长按区别打开LED,水泵,打氧机的功能暂未实现);
    下一步计划加入ArduinoConnect功能,省的自己来回刷固件。
    以下是上述功能的代码,使用到的库包括:blynk的库,oneWire,DallasTemperature
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial#include <SPI.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <OneWire.h>
#include <DallasTemperature.h>#define BUS 13 //GPIO13口读取温度计
OneWire oneWire(BUS);
DallasTemperature sensors(&oneWire);// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "8f5450e0d7044473972ae6d6204bbxxx";// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "C_C"; //你的WiFi名称
char pass[] = "Password";    //你家WiFi密码
BlynkTimer timer;   //初始化定时器
int Temperature,slideValue;
void myTimerEvent() //定义定时函数
{sensors.requestTemperatures();  //发起查询指令,查询温度Temperature=sensors.getTempCByIndex(0); //将温度值给变量TemperatureSerial.write("温度:"); //调试的时候显示当前温度值Serial.print(Temperature);Serial.println("摄氏度");Blynk.virtualWrite(V3,Temperature);  //输出温度值给虚拟变量V3,用于APP上显示Blynk.virtualWrite(V2,slideValue/1000); //中间变量,用于显示比例,不好使。Blynk.virtualWrite(V5,5); //返回开关状态,没实际用处Blynk.virtualWrite(V4,4); //返回开关状态,没实际用处}BLYNK_WRITE(V1)  //从slide读取数值,并写入到GPIO2,调节LED灯光的。
{slideValue=param.asInt();  //读取slide值analogWrite(12,slideValue);  //将数值写到GPIO2,不知道这样是不是真正的PWM
}
//下面是定义触摸板的函数,确保每次触摸都能感应到
const int TouchBut = 14;  //触摸板输入口为GPIO14
boolean lastBut = HIGH; //高电平为关闭,跟继电器高低电平触发有关,我的是低电平触发
boolean curBut = HIGH;  //高电平为关闭
boolean ledOn = true; //默认高电平
boolean getBut(boolean last)  //获取当前开关状态
{boolean current = digitalRead(TouchBut);  //读取触摸板状态if (last != current)  //判断是否有状态改变{//这部分留着以后写感应长按与短按的功能// if(current)// {// }// //判断是否是长按current = digitalRead(TouchBut);}return current;
}
void setup()
{//初始化输出针脚pinMode(5,OUTPUT); //灯GPIO5pinMode(4,OUTPUT); //水泵GPIO4pinMode(12,OUTPUT); //调光针脚,GPIO12pinMode(14,INPUT); //按键输入,GPIO14digitalWrite(5,HIGH);   //灯默认关闭digitalWrite(4,HIGH);    水泵默认关闭// Debug consoleSerial.begin(9600);sensors.begin();//Blynk.begin(auth, ssid, pass);// You can also specify server://Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);//Blynk.begin(auth, ssid, pass, IPAddress(192,168,31,85), 8084);Blynk.begin(auth, ssid, pass, "www.cloved.xxx", 8084); //我的私人服务器,使用官方的使用上面80端口那个timer.setInterval(1500L,myTimerEvent);  //循环读取温度值,1.5s读一次,注意,DS18B20读取温度的周期低于1S可能会读不出来数据
}void loop()
{curBut = getBut(lastBut); //获取当前触摸板状态if (lastBut == LOW && curBut == HIGH)    //上升沿触发功能{ledOn = !ledOn;  //让LED的状态反转delay(500);  //延迟0.5s,确保不发生抖动digitalWrite(5,ledOn);   //将结果输出到GPIO5}lastBut = curBut;    //将当前状态写入变量,等待下一次触发//digitalWrite(5,ledOn);      //写在这里就不能APP触发了,这是我走的弯路Blynk.run();timer.run();
}

记录Blynk的使用日记-《小鱼缸那些事001》相关推荐

  1. 减肥日记---那个胖子终于瘦下来了 程序员减肥记录 程序员减肥日记

    减肥日记---那个胖子终于瘦下来了 程序员减肥记录 程序员减肥日记 一.前言 早晨起来,称一称 67.6,心中窃喜,目标达成.当了这么多年胖子,终于摆脱了. 我,又瘦下来了,终于不再是胖子啦,哈哈哈. ...

  2. 为了防止同行偷窥行业机密,小明决定将上面的实际营业额重新记录一份,这次记录的时候,把上面数组中的内容倒着记录,并将所有的负数按0记录。请你帮小明把上面的结果按小明的规则重新保存到一个新数组中,并打印出

    训练案例 1. 训练考核知识点 键盘录入,数组,循环,if 2. 训练描述 假设小明同学本周5天的日盈利分别如下:int[] arr = {1,3,-1,5,-2}为了防止同行偷窥行业机密,小明决定将 ...

  3. 能用图文记录生活日常的日记APP有哪些推荐?

    为了能全面记录自己成长的轨迹,我们通常会采用记日记的方式来留存回忆,以方便自己能随时查看,而且在现在我们还可以借助手机app记录日记,这样便能达到实时记事.随时查看的目的,既然如此,那么当下有能用图文 ...

  4. 沙发摆放7大害人风水 破财事小伤身事大(组图)

    沙发摆放7大害人风水 破财事小伤身事大(组图) 2012-09-12 13:50 来源: 网文 (网络图片/看中国配图) 沙发是客厅中日常用来休息.闲谈及会客的家具,在客厅中处于非常重要的地位.因此, ...

  5. 小杨说事-基于Halcon的多相机坐标系统一原理个人理解

    大家好呀,时隔两年小杨说事系列又开始更新了,打工人在苦逼的自动化行业里面挣扎着,工作了三年看到还有很多朋友在学习机器视觉,尤其是定位类型项目,旋转中心,分离轴,多相机标定等概念还是剪不断,里还乱的状态 ...

  6. 微信小程序实战 《跨时空》旅行日记小程序

    题外话 我喜欢旅行,在正文开始前,先向有共同兴趣的朋友推荐一个自己每次出行前必装的 APP -- 面包旅行.我主要用它来写旅行日志,每天行程结束,我都会将当天拍的照片上传并做简单的文字记录,记录是回顾 ...

  7. 你的心事我全知晓——心情日记小程序丨实战

    闲暇之余,听媳妇嘀咕说要给她做一个能表达她每日心情的小程序,只能她在上面发东西.既然媳妇发话了,就花点心思做一个吧,因为没有UI图,所有布局全靠自己瞎编,下面结合图片和代码跟大家讲解下实现过程,内容略 ...

  8. 记录平时发现的一些小知识点

    好记性不如烂笔头,写字太麻烦就在这里记录一些平时看到的零散的小知识点 1.c语言函数指针数组必须有相同的输入.输出值,函数指针数组可如下定义: void (*fun[256])(void); fun[ ...

  9. 乌托邦式的经理人日记——小的奖励激发员工热情

    从此处转来,不做任何评价. 更多的时候,作为一个工程项目小组的组长,或者项目的经理,常常会因为自己手下员工的工作热情不足,往往使得工作无法正常地进行.更有甚者,自己的手下慢慢变得人心涣散,等到工程快要 ...

最新文章

  1. java程序设计_Java程序设计:学习笔记(4-5)(未完工)
  2. JQuery中全局变量和局部变量的理解
  3. java继承和引用_浅谈Java继承、传递
  4. 广州创龙TMS320C6748 DSP开发板免费申请试用
  5. Java Class Loader Retrospect
  6. 使用AspectJ和Spring简化了AOP
  7. Eclipse下如何导入jar包
  8. li ul vue 滚动显示_vue ul循环滚动的问题
  9. MyBatis学习笔记(一) 概述
  10. 调试经验——Excel函数矩阵相乘函数(MMULT)的应用 (Use of MMULT function in Excel)
  11. 微信开放平台和微信公众平台配置流程简介,
  12. 拍摄制作360度全景图有哪些技巧?
  13. 适合国人的6款免费远程桌面工具,适用于电脑和手机
  14. Vue项目首页-热销推荐组件开发(7-6)
  15. 微信小程序云开发安装云函数依赖时候,一直显示install-save不能识别的命令
  16. MATLAB | MATLAB中绘图的奇淫技巧合集
  17. 35家网络广告代理公司调查及服务水平排行榜
  18. php注册阻止相同用户名,php如何禁止重复注册用户名
  19. [第三篇] PostGIS:“我让PG更完美”
  20. android无法加载系统so,android - android资源无法加载 - SO中文参考 - www.soinside.com

热门文章

  1. JAVA9模块化详解(二)——模块的使用
  2. html5 3D旋转木马幻灯片播放
  3. 中国风电叶片芯材市场调研与投资预测报告(2021版)
  4. 恋爱=mac?结婚=Windows?
  5. C#操作excel打印
  6. 飞聊APP停止下载,但字节跳动的社交梦会“停飞”吗?
  7. Swift 图片加水印
  8. 苹果电脑如何设置壁纸桌面?
  9. html让段落显示不全,word页面显示不全怎么办
  10. 金融行业密钥体系相关知识及原理介绍