ESP8266(wifi芯片)与微信小程序
在物联网终端产品中,esp8266 wifi设备是怎么和小程序通信的呢? 对于这一类产品,厂家都有一个后台服务器,esp8266工作在STA模式, 连接wifi热点后,即可具备联网功能,和服务器通信,数据上报,之后小程序或者APP,从服务器中获取数据。如下图:
接着,小程序端控制设备,数据方向如下图:
那么问题来了,如果我们不需要服务器,esp8266能不能与小程序直接通信呢? 答案是肯定的。
方案很简单,只要esp8266,手机都连接着同一个路由器wifi,或者手机发起wifi热点,esp8266连接这个热点;如此他们二者都处于同一个局域网内。当处于同一个局域网后,他们就可以通过TCP/UDP方式通信。
那么又有一个问题了,TCP/UDP通信,是需要知道对方的ip,port端口号的。esp8266芯片如何知道小程序的ip和port号呢? 小程序又如何知道esp8266芯片的ip和port号呢 ?
方案也很简单。mDNS:即组播DNS(multicast DNS),主要实现了在没有传统DNS服务器的情况下使局域网内的主机实现相互发现和通信。(--百度百科)
让esp8266 注册mDNS服务, 微信小程序是有搜索局域网下 mDNS 的相关API。如此,小程序便知道esp8266的ip、port;这个时候小程序给esp8266发一下打招呼的信息,esp8266便可知道小程序的ip、port了。
双方都知道对方的ip、port,接下来数据互相收发,不成问题。笔者自己做了一个小demo。
刚刚打开的时候,小程序还没有和esp8266连接,所以显示设备是offline,这个时候,小程序下拉一下,开启搜索mDNS服务,便可找到esp8266,如下图: 返回的数据有esp8266的ip和port,小程序同时往这个ip,port发送打招呼信息,esp8266接收到信息,找到小程序的ip,port,最后设备不停的往小程序上报数据。
温湿度的数据是假的,不过确实是esp8266发过来的随机数据。on,off 是实时控制led灯的,小程序中灯泡是实时显示led 的状态的,我拍了15秒的演示显示,大家可以去我的微头条看看。
用智能手机控制单片机,UI开发怎么做?
百分之九十以上的智能硬件都需要通过手机来操作,大都需要在手机上安装APP。除了用短信方式控制之外,其他的操作界面都用专门的开发工具来编程实现,这些工具都有哪些呢?今天蚁哥给大家推荐几个免费的开发工具。
1Eclipse
这个工具程序员最为熟悉不过了,它支持很多种语言编程。要使用它来编写APP,需要下载专门的SDK,安装过程也许会让新手经历一番波折。不过网上可以找到打包好的程序:ADT-Bundle,直接解压缩就可以使用了。
EClipse开发环境
2Android Studio
谷歌自家出的官方安卓软件集成开发工具 Android Studio,宣称“会让开发者更快、更具生产力”。它完全免费,跨平台支持 Win / Mac / Linux。它的界面和EClipse几乎一样,不过支持实时渲染。有能力的程序员朋友不妨试一试这个工具。
3APP INVENTER
这个工具很有意思,它是谷歌和MIT一起研发的图形化的编程工具。因为你不需要再编写代码了,只要拖拖拽拽就能够做出自己的APP了。不过用这个工具做出来的UI大多数是中规中矩,想要做出特别炫的效果来,还需要下点苦工啦。
App Inventor
4Html5
Html大家都不陌生,Html5是最新的版本,它具有新的元素,属性和行为,具有更大的技术集,允许更多样化和强大的网站和应用程序。通过H5可以直接用JS语言编写页面。通过WebSocket技术,H5可以跟服务器进行通信,进而控制带有WIFI功能的单片机。这就让我们可以不用安装APP,通过网页直接对单片机进行控制。不过手机上的浏览器必须支持Html5才行。
5微信小程序
最近火的不得了的微信小程序,也可以通过调用蓝牙接口或者通过WebSocket实现对单片机的控制,大家可以直接搜索微信开发者的官网,下载专门的开发工具,教程也比较齐全。
微信Web开发工具
希望我的分享对大家有所帮助,欢迎大家多评论,多交流!
相关问答
单片机 如何向 微信 发消息?单片机如何将数据传给微信,满足用户在微信查看单片机系统参数的要求,这里有几个实际项目的设计思路1通过蓝牙传输方式实现微信公众号平台,有一个智能硬件的...
p0p1p2有什么区别?51单片机p0、p1、p2、p3口区别如下:一、意思不同P0口作输出口用时,需加上拉电阻。P0口有复用功能。当对外部存储器进行读写操作时,P0口先是提供外部存储器...
微信支付 智能水表的工作原理是什么?[回答]简单地说,不用进户(打开水表盖)抄收水表读数的水表都是远传水表。其抄表是自动抄读的方式,收费可以通过银行,也可以通过物业、自来水公司。1、单片...
童鞋们!帮忙答一下:51 单片机 最小系统(跑马灯)不工作?,视频...[回答]10年经验开发技术团队-支从事软件开发10余年、反应迅速、讲求团队合作的技术团队,奠定了开发实力的高起点个性化在线网校平台-多场景在线课堂直播形...
帮个忙盆友们 楼主请问!51 单片机 最小系统(跑马灯)不工作?,...[回答]usb有四根线,四种颜色,印像中是红色是+5V黑色是0,具体的你可以用电压表测一下。实力摆在这里,但是我还是要去看看,哈哈自主研发的多个软件通过g家...
51 单片机 中断如何关闭?51的串口中断,接收和发送是共用一个中断向量的,没法单独关闭。一般在中断服务函数中检测TI标志并及时清零就可以了。1、在中断服务程序里,关闭中断允许标志当...
【 微信群 历史问答搬运】请问以下,哪里可以看哪些设备可以支...现在连接湿温度传感器这种,只能用单片机配合蓝牙wifi这些来实现一个设备吗?没有接触过这些,所以不是很懂全站热门评论比如文档里面的那个湿温度传感器那种...
向高手请教一个 单片机 算法问题如何解决?这个问题,我之前遇见过,代码一个个敲出来太麻烦了,还是先编辑好,截图发出来吧,有任何的以为,欢迎关注微信公众号ickeybbs问我这个问题,我之前遇见过,代码一个个...
C语言什么意思 - 微信 用户 的回答 - 懂得C語言,是一种通用的、程序式的程式語言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和較高的移植性等特点,在程序员中备受...
今日头条科技领域,垂直内容有哪些方向?还可以分享各种编程语言的咨询,对比各种编程语言的优势缺点,不同的语言适合的应用场景还可以分享单片机或者嵌入式程序的设计,分享一些小设计,解决人们日常...