微信小程序实时控制stc89c51

  • 第一 、先上效果图
  • 第二、原理讲解
  • 第三、下载程序到c51
  • 第四 微信小程序开发
  • 第五 可能遇到的一些小问题

第一 、先上效果图

第二、原理讲解

原理简述:利用发布订阅模式。第一步,新建主题,第二步,stc89c51通过esp8266订阅这个主题。第三步、通过app往这个主题发消息。由于单片机订阅了这个主题,所以可以实时收到发往这个主题的消息。从而达到通过微信小程序控制c51单片机的目的。

关于发布订阅:

订阅(订阅):订阅给定的一个主题。
发布(发布)将信息发送到指定的主题。

只有订阅该主题的设备才可以收到发往该主题的消息。

通俗的来讲:就是像博客订阅的场景,什么意思呢,也就是说100个人订阅了你的博客,如果博主发表了文章,那么100个人就会同时收到通知邮件,订阅/发布模式就是这样的原理。

如果还不理解的话再通俗讲一下,就像生活中听收音机,要想听收音机,肯定就是调频啦,只有在正确的频道上面,我们才能听得到好听的节目,所以说订阅首先要订阅一个频道/主题,只有订阅了该主题,我们才能收到发往该频道/主题的消息。

在本例程中,c51借助ESP8266订阅主题,小程序发布消息,c51会实时收到消息,就可以实时控制c51了。

第三、下载程序到c51

下载程序的时候需要先断开c51和esp8266的连接。

c51示例程序下载:点击下载

程序说明,波特率9600,晶振11.0592

由于ESP8266-01默认波特率是115200,需要先手动调节esp8266-01的波特率。
调整方法:ESP8266-01连接到usb转ttl

五根线
esp8266---------UsbTTL
tx----------rx
rx----------tx
vcc-------3.3v
gnd--------gnd
en----------3.3v

打开串口调试助手,找到esp8266的com口并打开,发送

AT+UART=9600,8,1,0,0

末尾应该加上回车换行,串口会回复ok

串口调试助手下载工具: 点击下载

如果上步设置波特率没反应,则是你的esp8266固件不支持更改波特率,可以刷esp8266官方固件,教程:链接

用keil 打开程序,需要修改WIFI等信息

//需要修改的部分
#define Ssid  "newhtc"                                            //WIFI名称,,修改为自己路由器的WIFI名称,好像不支持中文
#define PassWord  "qq123456"              //WIFI密码,修改为自己路由器的
#define Uid  "4d9ec352e0376f2110a0c601a2857225" //巴法云UID密钥,控制台获取
#define TopicLed  "light002" //巴法云控制台创建,名称自定义,app订阅主题要和这个推送主题一致

巴法创客云控制台 新建一个主题,主题名字随意,例如light002,本实例用用light002,使用示例代码时应修改为自己的主题名字,字母或数字或字母加数字组合。UID为用户私钥,在 巴法创客云控制台 注册登陆后可获得。
登陆完成后,可在控制台看到自己的私钥UID,如图所示:

创建主题,在控制台,可创建主题。

  • 第一输入主题,字母或数字或字母+数字组合。
  • 点击创建主题。

WIFI名称为自己的路由器WIFI名称,区分大小写,写错会导致连接不上网络的。

重要代码讲解:

//实际收到到指令:cmd=2&uid=4d9ec352e0376f2110a0c601a2857225&topic=light002&msg=on
//字符串匹配,当检测到字符串msg=on时,执行开灯
//如果有多个主题,可以加上主题名字以区分不同设备控制命令,如: if(strstr(Recive_table,"light002&msg=on"))
if(strstr(Recive_table,"&msg=on")){ P1=0xfe;   //打开灯,P10引脚置高电平
}else if(strstr(Recive_table,"&msg=off")){ 当检测到字符串msg=off时,执行关灯P1=0xff; //关闭灯,P10引脚置低电平
}else if(strstr(Recive_table,"ERROR")){ //如果掉线或网络故障,重新连接
...

对收到的消息,进行字符串匹配,收到带on的消息,把P10引脚置高,收到带off的消息,把P10口置低电平。

具体接口可参考:巴法云官方文档

下载工具STC-ISP:下载:https://www.lanzous.com/iaxa4fc 密码:1234

STC89c51/52和ESP8266接线问题
c51 ----------8266
P30----------TX
P31----------RX
3.3v-----------3.3v
Gnd---------Gnd
3.3v-----------EN
试了8266直接接5v也工作,不过不建议使用

调试:

如果路由器有网络的话,esp8266会自动连接服务器,可在巴法创客云控制台 刷新网页,查看订阅设备是否在线。如果在线的话,可以在控制台推送on或许off消息,可以在串口调试助手查看单片机是否收到指令。波特率9600。

如果控制台没有显示订阅设备在线,连接好esp8266和c51,然后断电重启重试即可。

第四 微信小程序开发

在 微信公众平台注册小程序账号,拿到小程序 appid,长的大概是这样:wx34a2063de5cec04b。

右侧点击 -开发–》开发设置–》下方服务器域名处,点击修改,在request合法域名处,添加域名https://api.bemfa.com/ 保存提交即可。如下图。

下载安装微信开发者工具。
下载demo示例程序。下载地址: 点击下载

打开微信开发者工具,小程序项目,导入项目。在目录处选择刚刚下载解压的demo示例程序,AppID处填入你的小程序AppID,然后点击下方导入即可。如下图。

本示例程序非常简单,各位大神可以继续开发添加各种功能,添加背景,优化色彩等等,如果只是简单使用,只需修改/pages/index/index.js 文件中uid 和topic 信息为自己的即可,这里的uid和topic需要和esp8266填入的uid和topic相同,如下图。

修改完毕后,ctrl+s 保存修改。可以点击左边屏幕上的按钮进行调试,如下图。


console控制台可以查看小程序的调试信息。默认每5秒会自动请求一下服务器,查看esp8266的状态信息。点击打开或者关闭按钮,打开esp8266串口调试助手,可查看esp8266是否收到指令,如果第一步esp8266已联网,都是可以收到信息的。

如果界面和其他功能都开发完毕。可以点击微信开发者工具的上面的上传按钮,如下图。

上传成功后,再登陆刚刚注册的微信公众平台,在版本管理处,可以看到自己刚刚上传的小程序,提交审核即可,等一天左右,一般都会通过,通过后登陆微信公众平台,提交发布即可。如果是自己使用的,做好加上登陆验证功能,比如验证匹配一下某个字符串是否正确等等,不然小程序上线后别人也可以随意控制了。

第五 可能遇到的一些小问题

选择PDATA 或者large XDATA。

(开源)微信小程序实时控制stc89c51,通过esp8266相关推荐

  1. 【微信小程序控制硬件⑦ 进阶篇】巧借阿里云物联网平台的免费连接,从微信小程序颜色采集控制 esp8266 输出七彩灯效果,中秋节来个直播如何?!

    [微信小程序控制硬件第1篇 ] 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件! [微信小程序控制硬件第2篇 ] 开始微信小程序之旅,导入小程序Mqtt客户 ...

  2. 最新开源微信小程序一键开发平台源码 支持15大功能模块+完整前后端+搭建教程

    分享一个开源微信小程序一键开发综合平台源码,系统支持15大小程序功能模块,涉及各行各业,含完整前后端+详细搭建部署教程. 系统特色功能一览: 1.全新重构升级功能后端文件和前端文件: 2.整套源码已经 ...

  3. 【微信小程序】基于Java+uniapp框架开发的全开源微信小程序商城系统

    应用介绍 基于Java+uniapp框架开发的全开源微信小程序商城系统,前端采用目前主流的uniapp框架开发,后端采用Java语言开发,前后端代码全部开源,减少重复造轮子,支持小程序商城秒杀.优惠券 ...

  4. 「开源」一大波开源微信小程序

    一个github开源项目:各种开源微信小程序汇总.快来看看有没有你感兴趣的吧 地址:https://github.com/opendigg/awesome-github-wechat-weapp UI ...

  5. vant组件搜索并选择_Vant Weapp - 有赞出品的免费开源微信小程序组件库

    轻量可靠的小程序UI组件库,主流移动组件库 Vant 的微信小程序版本. Vant Weapp 和 Vant 的区别 之前推荐过的移动端web组件库 Vant 是 Vue.js 版本的,其对内承载了有 ...

  6. 分销开源微信小程序-真正意义上的开源

    来客电商 微信小程序电商平台(前后端开源PHP),分销插件,整个系统架构非常简单,适合小型团队或者个人开发者二次开发. 小程序 + APP + 公众号 + PC + 生活号 注重界面美感与用户体验,打 ...

  7. 小程序 node.js mysql_基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)...

    高仿网易严选的微信小程序商城(微信小程序客户端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 功能和数据库参考ecshop 服务端api基于Node.js+Think ...

  8. node 小程序 php,基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)...

    高仿网易严选的微信小程序商城(微信小程序客户端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 功能和数据库参考ecshop 服务端api基于Node.js+Think ...

  9. 基于Node.js+MySQL开发的开源微信小程序商城(微信小程序)部署环境

    在网上搜到小程序设计的项目,下载前辈的代码到本地环境,接下来需要如何部署代码到本地,并能够看到完整的效果展示. 服务器端: https://github.com/tumobi/nideshop Nid ...

  10. 基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)

    高仿网易严选的微信小程序商城(微信小程序客户端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 功能和数据库参考ecshop 服务端api基于Node.js+Think ...

最新文章

  1. 一个 Blink 小白的成长之路
  2. ajax是tcp连接吗,基于微型TCP/IP协议与AJAX的动态Web服务器设计
  3. 调试JavaScript/VB Script脚本程序(IE篇)
  4. java poi 更新excel_在Java Apache POI中更新现有的Excel文件
  5. iOS网络编程开发-数据加密
  6. google i/o_Google I / O 2017最有希望的突破
  7. w ndows10即将停止更新,微软开始警告Windows 10 v1909用户即将停止更新服务
  8. 系统检测到您正在使用网页抓取工具访问_从网站抓取数据的3种最佳方法
  9. 前端学习笔记系列一:1.export default / export const
  10. 编写一个成绩分类程序
  11. php增加html元素,使用php将appendChild($ element)添加到现有的html元素中
  12. P2P终结者的工作原理
  13. 操作系统实验 文件复制/复制文件
  14. Redis 操作命令大全
  15. Linux 常用的zip压缩和解压命令详解
  16. 三星S8国行android 8,用户泪奔 三星S8系列国行获安卓8.0更新
  17. 动态主机配置协议(DHCP)
  18. 英国政府资助!Wave Photonics领导光量子集成电路封装项目
  19. java jni
  20. vue axios请求成功却进入catch的原因分析

热门文章

  1. PreferenceScreen移除菜单项
  2. UART RS232 RS485协议原理及应用
  3. 无线通信技术-NB-IoT
  4. 视频html5播放器代码实例
  5. 学校图书借阅管理系统(MySQL)
  6. easyboot制作xp、win7、ubuntu、老毛桃winpe、深山红叶dos工具箱多合一光盘
  7. 网站点击数字翻页html代码,html5数字翻页时钟代码
  8. 【转载+整理】EJB(三) EJB分层架构
  9. android 刷入 windows,安卓技术宅系列之安卓手机刷Windows98
  10. 什么是Robtos.txt 协议?