记录Blynk的使用日记-《小鱼缸那些事001》
为了给家里攒的太阳能利用起来,自己攒了一套直流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》相关推荐
- 减肥日记---那个胖子终于瘦下来了 程序员减肥记录 程序员减肥日记
减肥日记---那个胖子终于瘦下来了 程序员减肥记录 程序员减肥日记 一.前言 早晨起来,称一称 67.6,心中窃喜,目标达成.当了这么多年胖子,终于摆脱了. 我,又瘦下来了,终于不再是胖子啦,哈哈哈. ...
- 为了防止同行偷窥行业机密,小明决定将上面的实际营业额重新记录一份,这次记录的时候,把上面数组中的内容倒着记录,并将所有的负数按0记录。请你帮小明把上面的结果按小明的规则重新保存到一个新数组中,并打印出
训练案例 1. 训练考核知识点 键盘录入,数组,循环,if 2. 训练描述 假设小明同学本周5天的日盈利分别如下:int[] arr = {1,3,-1,5,-2}为了防止同行偷窥行业机密,小明决定将 ...
- 能用图文记录生活日常的日记APP有哪些推荐?
为了能全面记录自己成长的轨迹,我们通常会采用记日记的方式来留存回忆,以方便自己能随时查看,而且在现在我们还可以借助手机app记录日记,这样便能达到实时记事.随时查看的目的,既然如此,那么当下有能用图文 ...
- 沙发摆放7大害人风水 破财事小伤身事大(组图)
沙发摆放7大害人风水 破财事小伤身事大(组图) 2012-09-12 13:50 来源: 网文 (网络图片/看中国配图) 沙发是客厅中日常用来休息.闲谈及会客的家具,在客厅中处于非常重要的地位.因此, ...
- 小杨说事-基于Halcon的多相机坐标系统一原理个人理解
大家好呀,时隔两年小杨说事系列又开始更新了,打工人在苦逼的自动化行业里面挣扎着,工作了三年看到还有很多朋友在学习机器视觉,尤其是定位类型项目,旋转中心,分离轴,多相机标定等概念还是剪不断,里还乱的状态 ...
- 微信小程序实战 《跨时空》旅行日记小程序
题外话 我喜欢旅行,在正文开始前,先向有共同兴趣的朋友推荐一个自己每次出行前必装的 APP -- 面包旅行.我主要用它来写旅行日志,每天行程结束,我都会将当天拍的照片上传并做简单的文字记录,记录是回顾 ...
- 你的心事我全知晓——心情日记小程序丨实战
闲暇之余,听媳妇嘀咕说要给她做一个能表达她每日心情的小程序,只能她在上面发东西.既然媳妇发话了,就花点心思做一个吧,因为没有UI图,所有布局全靠自己瞎编,下面结合图片和代码跟大家讲解下实现过程,内容略 ...
- 记录平时发现的一些小知识点
好记性不如烂笔头,写字太麻烦就在这里记录一些平时看到的零散的小知识点 1.c语言函数指针数组必须有相同的输入.输出值,函数指针数组可如下定义: void (*fun[256])(void); fun[ ...
- 乌托邦式的经理人日记——小的奖励激发员工热情
从此处转来,不做任何评价. 更多的时候,作为一个工程项目小组的组长,或者项目的经理,常常会因为自己手下员工的工作热情不足,往往使得工作无法正常地进行.更有甚者,自己的手下慢慢变得人心涣散,等到工程快要 ...
最新文章
- java程序设计_Java程序设计:学习笔记(4-5)(未完工)
- JQuery中全局变量和局部变量的理解
- java继承和引用_浅谈Java继承、传递
- 广州创龙TMS320C6748 DSP开发板免费申请试用
- Java Class Loader Retrospect
- 使用AspectJ和Spring简化了AOP
- Eclipse下如何导入jar包
- li ul vue 滚动显示_vue ul循环滚动的问题
- MyBatis学习笔记(一) 概述
- 调试经验——Excel函数矩阵相乘函数(MMULT)的应用 (Use of MMULT function in Excel)
- 微信开放平台和微信公众平台配置流程简介,
- 拍摄制作360度全景图有哪些技巧?
- 适合国人的6款免费远程桌面工具,适用于电脑和手机
- Vue项目首页-热销推荐组件开发(7-6)
- 微信小程序云开发安装云函数依赖时候,一直显示install-save不能识别的命令
- MATLAB | MATLAB中绘图的奇淫技巧合集
- 35家网络广告代理公司调查及服务水平排行榜
- php注册阻止相同用户名,php如何禁止重复注册用户名
- [第三篇] PostGIS:“我让PG更完美”
- android无法加载系统so,android - android资源无法加载 - SO中文参考 - www.soinside.com