如果不了解MQTT的可以看这篇文章 http://www.cnblogs.com/yangfengwu/p/7764667.html

    http://www.cnblogs.com/yangfengwu/p/8026014.html

    关于钱的问题,其实自己是花钱买的云服务,虽然自己现在能支付的起,但是呢为了尽量减少支出,自已还有好多好多文章要写,好多好多元器件要买,所以哈会在自己的淘宝上卖源码2元价格,一元捐出,一元自己留着当亲们支付云服务的费用了

    如果看不懂也没关系,跟着做就可以了,做完以后您会发现原来MQTT这么好用,也如此简单.

    对了我要尽量把程序写的烂一些,界面做的烂一些,因为既然是学习用的应该越直观越好…….说一下,自己的服务器因为公开了稳定性上肯定不好,

    数据冲突也是可能的,这是第一篇,下面几篇慢慢的来,咱一块慢慢完善哈

    不过自己这批贴片的板子要等到后天才到……………………..

    连接MQTT服务器 - 图1 连接MQTT服务器 - 图2

    连接MQTT服务器 - 图3

    链接:https://pan.baidu.com/s/1bpjRzyB 密码:90vv

    将下载的jar包放在一个地方

    连接MQTT服务器 - 图4

    我放在了我的Android的源码的根目录

    现在在Android 工程导入下载的那个jar包

    连接MQTT服务器 - 图5

    连接MQTT服务器 - 图6

    现在把可能用到的一些权限加上

    连接MQTT服务器 - 图7

    复制代码

    1. <!-- 获取手机信息权限 -->
    2. <uses-permission android:name="android.permission.INTERNET

    复制代码

    现在呢先写个程序获取手机的IMEI号,因为连接的时候每一个客户端的ClientID要求不能一样,咱就用IMEI号代表ClientID

    连接MQTT服务器 - 图10

    其实就这两句

    1. TelephonyManager mTm = (TelephonyManager)this.getSystemService(TELEPHONY_SERVICE);
    2. TelephonyIMEI = mTm.getDeviceId();

    现在配置咱的MQTT

    复制代码

    1. public class

    复制代码

    现在连接咱的服务器,连接成功后打印一下连接成功,连接是阻塞的,所以放在一个任务里面执行连接

    复制代码

    1. public class

    复制代码

    现在下载到手机试一试

    连接MQTT服务器 - 图15

    现在呢测试一下通信,测试接收消息,用调试助手发信息,然后手机端接收,然后显示出来

    调试助手链接

    链接:https://pan.baidu.com/s/1qYxEeLI 密码:exfj

    现在先设置一下APP的订阅的主题,和接收到消息之后就显示出来

    连接MQTT服务器 - 图16

    连接MQTT服务器 - 图17

    复制代码

    1. public class

    复制代码

    下载到手机

    现在配置一下软件,对了有些参数现在不明白没关系,后面会介绍一下相关的知识,

    连接MQTT服务器 - 图20

    软件的主题名称要和APP中订阅的主题一样 都是 test

    现在连接

    连接MQTT服务器 - 图21

    现在点击发布消息

    连接MQTT服务器 - 图22

    看手机端

    连接MQTT服务器 - 图23

    说明已经能通信了

    现在说一下关于主题哈,关于/

    现在把手机端的订阅的主题改为"/#"

    连接MQTT服务器 - 图24

    然后下载到手机

    连接MQTT服务器 - 图25

    连接MQTT服务器 - 图26

    你会发现手机也能接收消息

    连接MQTT服务器 - 图27

    连接MQTT服务器 - 图28

    手机都能接收到消息

    # 是一个匹配主题中任意层次数的通配符。比如说,如果你订阅了test/device/#,你就可以接收到以下这些主题的消息。

    1. test/device
    1. test/device/后面随便是什么
    1. 咱们的设备可以用"/"来进行分类,咱们的APP呢可以指定接收哪一类的产品的数据"XXXX/#"....是不是很方便


      对了如果现在接收两个已知主题的设备
      假如说是

    连接MQTT服务器 - 图29

    第一种方式

    连接MQTT服务器 - 图30

    连接MQTT服务器 - 图31 连接MQTT服务器 - 图32

    1. 第二种方式

    1. 连接MQTT服务器 - 图33

    结果和上面一样

    连接MQTT服务器 - 图34

    现在呢在界面加一个按钮,按下发送消息"1",松开发送消息"0"

    然后设置发布的主题是"/test/button"

    连接MQTT服务器 - 图35

    复制代码

    1. public class

    复制代码

    现在下载到手机,

    调试助手订阅一下主题 "/test/button"

    连接MQTT服务器 - 图38

    动作一下按钮

    连接MQTT服务器 - 图39

    连接MQTT服务器 - 图40

    现在把发过来的数据用文本框显示,不让他提示了

    连接MQTT服务器 - 图41

    连接MQTT服务器 - 图42

    1. 接收显示的换一下

    连接MQTT服务器 - 图43

    复制代码

    1. runOnUiThread(new Runnable() {//因为操作的是主界面的控件所以用刷新UI的线程,最好用handle哈,我这里怎么简单怎么写
    2. public void run() {
    3. //Toast.makeText(getApplicationContext(),"主题:"+topic+"消息:"+msgString, 500).show();
    4. textView.setText("主题:"+topic+"\n消息:"+msgString);
    5. }
    6. });

    复制代码

    现在试一下

    连接MQTT服务器 - 图46

    好了,现在咱开始控制咱的WIFI模块了….用咱的手机控制WIFI板子上的继电器,WIFI模块呢采集温湿度,然后显示在手机的文本框中

    自己更倾向于用lua开发,所以要刷入lua的固件哈

    关于刷固件可以参考

    http://www.cnblogs.com/yangfengwu/p/7514336.html

    自己已经下载好的固件

    链接: 密码:9zns

    如果亲们自己下载的话别忘了,把mqtt和dht选择上哈

    连接MQTT服务器 - 图47

    程序—init.lua

    复制代码

    1.  

    复制代码

    现在说一下个个部分的功能,对了关于语法问题和其余的问题就请大家参考我的,其实上面的代码就是参考的官方给的API函数,

    我希望亲们最重要的是有自学的能力,而不是需要别人灌输东西的机器.

    连接MQTT服务器 - 图50

    连接MQTT服务器 - 图51

    好了亲们可以自己去测试了

    源码链接

    https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.7a8f8764Ey3xGc&id=563674399702

    wifi的就是上面的,直接复制粘贴过去就好啦

    APP源码链接:https://pan.baidu.com/s/1pLKGLrt

    自己淘宝店的链接呢在最上面

    原文:

    https://www.cnblogs.com/pilink/p/8434302.html