有很多错误,请大家指教

/*目前程序支持通过检测电流状态来判断是否执行继电器转换触点* 支持微信消息推送,能实时根据电流状态向主题发送开关
* 智能语言控制控制,支持同时天猫、小爱、小度、google Assistent控制(小爱开关时指令显示亮度反了,不过不影响正常使用)
* 也同时支持web控制、小程序控制、app控制,定时控制等
*
*/#include <ESP8266WiFi.h>               //加载WIFI库文件
#include <PubSubClient.h>              //加载MQTT推送库文件
#include <ESP8266HTTPClient.h>  //微信推送TCP库//********************需要修改的部分*******************//
//const char* ssid = "**********";           //WIFI名字
//const char* password = "********";     //WIFI密码
const char* ssid = "*******";           //WIFI名字
const char* password = "********";     //WIFI密码
#define ID_MQTT  "***************************"     //用户私钥,控制台获取
const char*  topic = "light001002";        //主题名字,可在巴法云控制台自行创建,名称随意
const int outputpin1 = D1;       //单片机引脚值,D系列是NodeMcu引脚命名方式,用于继电器触点转换
const int outputpin2 = D2;       //单片机引脚值,D系列是NodeMcu引脚命名方式
int currents; //定义电流为整数型变量String uid = "************************";             // 用户私钥,巴法云控制台获取,用于微信推送消息
String msg = "";
String title = "客厅灯";                           // 消息标题
String msg2 = "已打开";                             //发送的消息
String msg3 = "已关闭";
//**************************************************//String ApiUrl = "http://go.bemfa.com/v1/sendwechatcard";
bool relay="ture";  //定义布尔变量,用于继电器转换
bool cloudpush="false";//mqtt和微信消息推送布尔变量const char* mqtt_server = "bemfa.com"; //默认,MQTT服务器
const int mqtt_server_port = 9501;      //默认,MQTT服务器WiFiClient Client;
WiFiClient espClient;
PubSubClient client(espClient);
HTTPClient http;  //初始化httpvoid setup() {pinMode(outputpin1, OUTPUT); //设置引脚为输出模式pinMode(outputpin2, OUTPUT); //设置引脚为输出模式Serial.begin(9600);     //设置波特率9600,hlw8110的未9600setup_wifi();           //设置wifi的函数,连接wificlient.setServer(mqtt_server, mqtt_server_port);//设置mqtt服务器client.setCallback(callback); //mqtt消息处理
}void loop() {if (!client.connected()) {reconnect();} //状态实时反馈语句段  if(currents>10 && cloudpush=="false"){statebackON();//电流状态返馈,反馈到mqtt服务器同步doHttpStickON(); //微信消息推送函数cloudpush="true";}else if(currents<10 && cloudpush=="true"){statebackOFF();//电流状态返馈,反馈到mqtt服务器同步doHttpStickOFF();//微信消息推送函数cloudpush="false";}else{  Serial.println(" ”已开“/”已关“状态已推送至maqtt服务器,不在重复推送");}client.loop();delay(10);
}//wifi连接
void setup_wifi() {delay(10);//Serial.println();Serial.println("Connecting to ");Serial.println(ssid);WiFi.begin(ssid, password);while (WiFi.status() != WL_CONNECTED){delay(1000);Serial.println("wait connect to wifi.");}Serial.println("");Serial.println("WiFi connected");Serial.println("IP address: ");Serial.println(WiFi.localIP());
}//回调函数
void callback(char* topic, byte* payload, unsigned int length)
{Serial.print("get Topic:");Serial.println(topic);for (int i = 0; i < length; i++) {msg += (char)payload[i];}Serial.print("Msg:");Serial.println(msg);if (msg == "on" && currents<10) //如果接收字符on,且电流小于10ma,亮灯{SwitchRelay();//继电器触点转换Serial.println("switch relay succeed");} else if (msg == "off"&&currents>=10)//如果接收字符off,且电流大于10ma,灭灯{SwitchRelay();//继电器触点转换Serial.println("switch relay succeed");}else if (msg == "off" && currents<10){Serial.println("Closed. Please do not repeat order.");} else if (msg == "on"&& currents>=10){Serial.println("Opened. Please do not repeat order.");}else{}msg = "";
}//mqtt重连函数
void reconnect() {while (!client.connected()) {Serial.print("Attempting MQTT connection...");if (client.connect(ID_MQTT)) {Serial.println("connected");Serial.print("subscribe:");client.subscribe(topic);Serial.println(topic);//订阅主题,如果需要订阅多个主题,可发送多条订阅指令client.subscribe(topic2);client.subscribe(topic3);} else {Serial.print("failed, rc=");Serial.print(client.state());Serial.println(" try again in 5 seconds");// Wait 5 seconds before retryingdelay(5000);} }
}//继电器触点转换
void SwitchRelay(){if(relay){      //通过布尔函数对继电器连接的触点进行切换digitalWrite(outputpin1,HIGH);   //D2为此处的引脚编号,根据需要更改-delay(70);   //脉冲电流宽度>=50ms,括弧单位毫秒digitalWrite(outputpin1,LOW); relay=false;}else if (!relay){digitalWrite(outputpin2,HIGH);  //D5为此处的引脚编号,根据需要更改-delay(70);digitalWrite(outputpin2,LOW);relay=true;}
}//电流状态返馈,反馈到mqtt服务器同步
void statebackON(){String litemsg1 = "on" ;//数据封装 状态关#亮度100client.publish(topic, litemsg1.c_str());//mqtt数据上传
}
void statebackOFF(){String litemsg2 = "off" ;//数据封装 状态关#亮度100client.publish(topic, litemsg2.c_str());}//mqtt数据上传}//******微信消息推送函数********//void doHttpStickON(){  //微信消息推送函数http.begin(Client,ApiUrl+"?uid="+uid+"&title="+title+"&msg="+msg2);  //初始化请求int httpCode = http.GET();                                  //发送请求if (httpCode > 0) { // 检查状态码String payload = http.getString();   //获取响应信息Serial.println(payload); }            //打印响应信息http.end();   //关闭http}void doHttpStickOFF(){  //微信消息推送函数http.begin(Client,ApiUrl+"?uid="+uid+"&title="+title+"&msg="+msg3);  //初始化请求int httpCode = http.GET();                                  //发送请求if (httpCode > 0) { // 检查状态码String payload = http.getString();   //获取响应信息Serial.println(payload); }            //打印响应信息http.end();   //关闭http}

物联网多控开关智能家居方案相关推荐

  1. 物联网国赛AIOT智能家居系统部署

    前言 8月刚刚结束的物联网国赛中首次出现AIOT部署智能家居系统,由于6月新大陆AIOT平台大更新,新版智能家居部署文档过长,且没有相关更好的教学,特制此文章.注:该文章主要是以国赛题目作为讲解,其中 ...

  2. 物联网核心安全系列——智能家居与数据安全问题

    智能家居的出现给用户带来便利,比如最新的家庭自动化技术,包括智能能源管理.遥控门锁和室内视频监控等.所有的这些功能都可以很方便地通过智能手机.平板电脑和网络门户来控制.但智能家居的隐私问题也让专家和用 ...

  3. 本地语音控制模块 | 带语音识别的智能家居方案

    智能家居已经进入"声控时代",越来越多的声控智能家居产品进入人们的家庭,声控智能家居将会成为人们购买智能家居的首选.今天就为大家分享逐日科技最新研发的带语音识别的智能家居控制方案, ...

  4. 自家的智能家居方案研究

    最后更新于:2022年6月27日 11:38:05 最近忙着房子装修,有心搞一套智能家居玩玩,利用上班累了的摸鱼时间做些研究总结,出套方案: 各智能配件按照需求程度进行打分: 5分:生 活 必 需 品 ...

  5. 智能家居价格昂贵?只能说你知道的太少——平价的智能家居方案

    当今的社会,人们的生活水平在不断提高,这得益于科技的发展,部分人会在居家体验中选择更为便捷的家居设备,但是一提到智能两个字,大部分人第一时间反应就是贵,很贵,非常贵.当然,这些反应是非常正常的,因为很 ...

  6. 物联网十二五规划,智能家居前景广阔

    科技的不断进步,使得许多原本毫无关联的技术可以完美的融合在一起.物联网十二五规划的出台,带给智能家居第二次生命.智能家居在物联网大潮下拥有广阔的发展前景.智能家居又称智能住宅.通俗地说,它是融合了自动 ...

  7. PHY6252国产低功耗蓝牙5.2 SoC芯片智能手环/智能家居方案替代NRF52810

    目录 PHY6252简介 芯片特性 结构框图 开发板使用注意事项 应用领域 PHY6252简介 PHY6252是一款支持BLE 5.2功能的系统级芯片(SoC),集成了低功耗的高性能多模射频收发机,搭 ...

  8. linux窗帘文件夹命令,窗帘面板和电机 · 控客智能家居 Linux SDK 使用手册 · 看云...

    ## 开关停 | OPEN | CLOSE | STOP | | --- | --- | --- | | 开 | 关 | 停 | ### 请求 ```json { "nodeId" ...

  9. 无线WiFi技术智能家居的优选方案,物联网WiFi芯片模块应用

    智能家居是以家庭居住场景为载体,以物联网为关键技术,融合自动控制技术.计算机技术.以及新兴发展的大数据.人工智能.云计算等技术:将家电控制.环境监控.影音娱乐.信息管理等功能有机结合,通过对家居设备线 ...

最新文章

  1. pyecharts 应用5:视觉映射配置项VisualMapOpts
  2. 宏病毒的研究与实例分析05——无宏文件携带宏病毒
  3. Netty介绍 与第一个Netty实例
  4. SQL Server2000 未公开的存储过程
  5. mysql 查数据 default无效_导入mysql数据的时候提示Field * doesn't have a default value解决方法...
  6. Linux下磁盘监控及系统版本-CPU-内存等查看
  7. ax在c语言中意思啊,【数论】整理关于ax+by=c
  8. DebugView使用笔记
  9. python自动保存ping结果_利用python获取Ping结果示例代码
  10. Python之访问set
  11. 发展之道:简单与专注
  12. 程序员的修炼之道——从小工到专家
  13. 【转】android新建项目时 出现appcompat_v7工程错误和红色感叹号
  14. Tinker在sdk升级后无法成功打补丁包的问题
  15. (原)logstash-forwarder + logstash + elasticsearch + kibana
  16. 纯Qt版中国象棋:实现双人对战、人机对战及网络对战
  17. VMware ESXi 安装
  18. 中文转拼音全拼和首字母
  19. String Permutation
  20. 协同演化博弈模型matlab,求教 matlab做演化博弈

热门文章

  1. gw在计算机网络里面_GW 是什么意思?
  2. iOS性能优化系列篇之“列表流畅度优化”工具篇
  3. 今天没学到东西...倒是做饼越来越拿手了
  4. 【简单入门】使用Babel进行es6转es5
  5. 直播如何解决延时问题?
  6. python excel实操之表格转置
  7. 微信支付一篇就够了(app,小程序,公众号)
  8. Python3.7源码包编译安装
  9. 电子半导体万级洁净室的指标大全
  10. 将MQTT收到的数据保存到MySQL数据库