<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN">
		<id>http:///https//wiki.microduino.cn/index.php?action=history&amp;feed=atom&amp;title=Mqtt%E8%BF%9E%E6%8E%A5mCotton</id>
		<title>Mqtt连接mCotton - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="http:///https//wiki.microduino.cn/index.php?action=history&amp;feed=atom&amp;title=Mqtt%E8%BF%9E%E6%8E%A5mCotton"/>
		<link rel="alternate" type="text/html" href="https//wiki.microduino.cn/index.php?title=Mqtt%E8%BF%9E%E6%8E%A5mCotton&amp;action=history"/>
		<updated>2026-04-29T17:01:55Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https//wiki.microduino.cn/index.php?title=Mqtt%E8%BF%9E%E6%8E%A5mCotton&amp;diff=26734&amp;oldid=prev</id>
		<title>2018年11月23日 (五) 10:24 502748957@qq.com</title>
		<link rel="alternate" type="text/html" href="https//wiki.microduino.cn/index.php?title=Mqtt%E8%BF%9E%E6%8E%A5mCotton&amp;diff=26734&amp;oldid=prev"/>
				<updated>2018-11-23T10:24:31Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;zh-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;2018年11月23日 (五) 10:24的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l265&quot; &gt;第265行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第265行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[file:WiFimCotton Serial.png|400px|thumb|center|send data]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*程序首先进行WiFi模块的初始化，会返回WiFi模块的版本信息，之后连接路由器，获取自身IP，最后开始通过mqtt协议连接mCotton，连接成功后开始间隔2秒推送数据。每一步都设置了串口返回错误或成功，可以参照串口返回调试程序。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;p style=&amp;quot;color: #E87E05;font-size:135%&amp;quot;&amp;gt;如何使用mCotton&amp;lt;/p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mCotton使用：&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1：注册账号，使用网页登录 https://mcotton.microduino.cn/ ，左上角有注册按钮。进入后使用邮箱或手机号或者社交媒体账号登录均可。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[file:WiFimCotton Login.png|400px|thumb|center|login]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2：登陆后找到IOT WiFi气象站并点击名称进入。在这里可以看到之前建立好的气象站设备，我们需要以此为模板复制一份己用。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[file:WiFimCotton Toppage.png|400px|thumb|center|create]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3：首先点击页面下方的：相关应用 点击进入。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[file:WiFimCotton copystation1.png|400px|thumb|center|create step1]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4：之后再次拉到页面下方选择关联的设备 新建设备。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[file:WiFimCotton copystation2.png|400px|thumb|center|create step2]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;5：拉到下方填入标题与描述，设备类型选择WIFI设备不变。之后点击确定。之后可以在首页看到自己建立好的mCotton设备。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[file:WiFimCotton copystation3.png|400px|thumb|center|create step3]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;6：点击进入自己的设备，点击控制菜单，将其中不需要的删掉，只保留LED控制按钮。在保证电池盒打开WiFi程序运行成功的情况下，按下Off按钮，会变为ON并变成蓝色，同时连接在D6的LED灯会被点亮，再按下ON按钮，灯会关闭。达到云端控制LED的目的。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[file:WiFimCotton Labelpage.png|400px|thumb|center|control led]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;7：之后点击右边的消息，可以看到推送信息。程序中只推送了一个模拟量，连接在A0接口的灰度传感器，用户可以遮挡传感器之后点击页面上的刷新，可以看到数据有变化，之后松开传感器，再次点击刷新，可以看到数据变化。达到信息推送云端的目的。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[file:WiFimCotton datapage.png|400px|thumb|center|send data]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p style=&amp;quot;font-size:115%&amp;quot;&amp;gt;[[MCookie-WiFi/zh|返回mCookie-WiFi界面]]&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p style=&amp;quot;font-size:115%&amp;quot;&amp;gt;[[MCookie-WiFi/zh|返回mCookie-WiFi界面]]&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>502748957@qq.com</name></author>	</entry>

	<entry>
		<id>https//wiki.microduino.cn/index.php?title=Mqtt%E8%BF%9E%E6%8E%A5mCotton&amp;diff=25532&amp;oldid=prev</id>
		<title>2018年5月14日 (一) 07:41 Radiumray9@gmail.com</title>
		<link rel="alternate" type="text/html" href="https//wiki.microduino.cn/index.php?title=Mqtt%E8%BF%9E%E6%8E%A5mCotton&amp;diff=25532&amp;oldid=prev"/>
				<updated>2018-05-14T07:41:49Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;zh-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;2018年5月14日 (一) 07:41的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l10&quot; &gt;第10行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第10行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p style=&amp;quot;color: #E87E05;font-size:135%&amp;quot;&amp;gt;所用方法&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p style=&amp;quot;color: #E87E05;font-size:135%&amp;quot;&amp;gt;所用方法&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*wifi.mqttSetServer(MQTTSERVER, MQTT_PORT)设置mqtt服务器&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*wifi.mqttSetServer(MQTTSERVER, MQTT_PORT) &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &lt;/ins&gt;设置mqtt服务器&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*wifi.mqttConnect(ID, USER, PASS)连接mqtt服务器&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*wifi.mqttConnect(ID, USER, PASS) &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &lt;/ins&gt;连接mqtt服务器&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*wifi.getMqttJson()获取mqtt服务器下发数据&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*wifi.getMqttJson() &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &lt;/ins&gt;获取mqtt服务器下发数据&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*wifi.mqttSetDiveceIDToken(ID, PASS)设置diveceID和Token&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*wifi.mqttSetDiveceIDToken(ID, PASS) &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &lt;/ins&gt;设置diveceID和Token&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*wifi.mqttSetSubscrib(SUBSCRIBTOPIC)设置订阅&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*wifi.mqttSetSubscrib(SUBSCRIBTOPIC) &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &lt;/ins&gt;设置订阅&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*wifi.mqttPublish(PUBLISHTOPIC, jsonData)发布消息&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*wifi.mqttPublish(PUBLISHTOPIC, jsonData) &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &lt;/ins&gt;发布消息&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*wifi.mqttPublishM(jsonData)简短方法发布消息&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*wifi.mqttPublishM(jsonData) &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &lt;/ins&gt;简短方法发布消息&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p style=&amp;quot;color: #E87E05;font-size:135%&amp;quot;&amp;gt;实例&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p style=&amp;quot;color: #E87E05;font-size:135%&amp;quot;&amp;gt;实例&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Radiumray9@gmail.com</name></author>	</entry>

	<entry>
		<id>https//wiki.microduino.cn/index.php?title=Mqtt%E8%BF%9E%E6%8E%A5mCotton&amp;diff=25531&amp;oldid=prev</id>
		<title>Radiumray9@gmail.com：创建页面，内容为“{| style=&quot;width: 800px;&quot; |- | &lt;p style=&quot;color: #666666;font-size:220%&quot;&gt;'''HTTPGET'''&lt;/p&gt; &lt;br&gt; &lt;p style=&quot;color: #E87E05;font-size:135%&quot;&gt;描述&lt;/p&gt; 本示例会实现…”</title>
		<link rel="alternate" type="text/html" href="https//wiki.microduino.cn/index.php?title=Mqtt%E8%BF%9E%E6%8E%A5mCotton&amp;diff=25531&amp;oldid=prev"/>
				<updated>2018-05-14T07:41:09Z</updated>
		
		<summary type="html">&lt;p&gt;创建页面，内容为“{| style=&amp;quot;width: 800px;&amp;quot; |- | &amp;lt;p style=&amp;quot;color: #666666;font-size:220%&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;HTTPGET&amp;#039;&amp;#039;&amp;#039;&amp;lt;/p&amp;gt; &amp;lt;br&amp;gt; &amp;lt;p style=&amp;quot;color: #E87E05;font-size:135%&amp;quot;&amp;gt;描述&amp;lt;/p&amp;gt; 本示例会实现…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{| style=&amp;quot;width: 800px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p style=&amp;quot;color: #666666;font-size:220%&amp;quot;&amp;gt;'''HTTPGET'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;color: #E87E05;font-size:135%&amp;quot;&amp;gt;描述&amp;lt;/p&amp;gt;&lt;br /&gt;
本示例会实现一个用mqtt连接mCotton的例子&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
需要调用&amp;lt;code style=&amp;quot;color: #E87E05&amp;quot;&amp;gt;#include &amp;lt;ESP8266.h&amp;gt;&amp;lt;/code&amp;gt;头文件。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;color: #E87E05;font-size:135%&amp;quot;&amp;gt;所用方法&amp;lt;/p&amp;gt;&lt;br /&gt;
*wifi.mqttSetServer(MQTTSERVER, MQTT_PORT)设置mqtt服务器&lt;br /&gt;
*wifi.mqttConnect(ID, USER, PASS)连接mqtt服务器&lt;br /&gt;
*wifi.getMqttJson()获取mqtt服务器下发数据&lt;br /&gt;
*wifi.mqttSetDiveceIDToken(ID, PASS)设置diveceID和Token&lt;br /&gt;
*wifi.mqttSetSubscrib(SUBSCRIBTOPIC)设置订阅&lt;br /&gt;
*wifi.mqttPublish(PUBLISHTOPIC, jsonData)发布消息&lt;br /&gt;
*wifi.mqttPublishM(jsonData)简短方法发布消息&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;color: #E87E05;font-size:135%&amp;quot;&amp;gt;实例&amp;lt;/p&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266.h&amp;gt;&lt;br /&gt;
#include &amp;lt;aJSON.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#ifdef ESP32&lt;br /&gt;
#error &amp;quot;This code is not recommended to run on the ESP32 platform! Please check your Tools-&amp;gt;Board setting.&amp;quot;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
**CoreUSB UART Port: [Serial1] [D0,D1]&lt;br /&gt;
**Core+ UART Port: [Serial1] [D2,D3]&lt;br /&gt;
**/&lt;br /&gt;
#if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1284P__) || defined (__AVR_ATmega644P__) || defined(__AVR_ATmega128RFA1__)&lt;br /&gt;
#define EspSerial Serial1&lt;br /&gt;
#define UARTSPEED  115200&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
**Core UART Port: [SoftSerial] [D2,D3]&lt;br /&gt;
**/&lt;br /&gt;
#if defined (__AVR_ATmega168__) || defined (__AVR_ATmega328__) || defined (__AVR_ATmega328P__)&lt;br /&gt;
#include &amp;lt;SoftwareSerial.h&amp;gt;&lt;br /&gt;
SoftwareSerial mySerial(2, 3); /* RX:D2, TX:D3 */&lt;br /&gt;
&lt;br /&gt;
#define EspSerial mySerial&lt;br /&gt;
#define UARTSPEED  9600&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#define SSID        &amp;quot;your ssid&amp;quot;&lt;br /&gt;
#define PASSWORD    &amp;quot;your password&amp;quot;&lt;br /&gt;
#define MQTTSERVER   &amp;quot;mCotton.microduino.cn&amp;quot;&lt;br /&gt;
#define ID   &amp;quot;your divice id&amp;quot;&lt;br /&gt;
#define USER   &amp;quot;your divice id&amp;quot;&lt;br /&gt;
#define PASS   &amp;quot;your divice token&amp;quot;&lt;br /&gt;
#define SUBSCRIBTOPIC   &amp;quot;ca/your divice id&amp;quot;&lt;br /&gt;
#define SUBSCRIBTOPICP   &amp;quot;cp/your divice id&amp;quot;&lt;br /&gt;
#define PUBLISHTOPIC   &amp;quot;dp/your divice id&amp;quot;&lt;br /&gt;
#define MQTT_PORT   (1883)&lt;br /&gt;
&lt;br /&gt;
static const uint8_t stateLEDPin=4;&lt;br /&gt;
&lt;br /&gt;
#define INTERVAL_sensor 2000&lt;br /&gt;
unsigned long sensorlastTime = millis();&lt;br /&gt;
&lt;br /&gt;
float tempOLED, humiOLED, lightnessOLED, gasOLED;&lt;br /&gt;
&lt;br /&gt;
String mCottenData;&lt;br /&gt;
String jsonData;&lt;br /&gt;
&lt;br /&gt;
ESP8266 wifi(&amp;amp;EspSerial);&lt;br /&gt;
&lt;br /&gt;
void setup(void) {&lt;br /&gt;
	Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
	pinMode(stateLEDPin,OUTPUT);&lt;br /&gt;
	digitalWrite(stateLEDPin,LOW);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	while (!Serial); // wait for Leonardo enumeration, others continue immediately&lt;br /&gt;
  	Serial.print(F(&amp;quot;setup begin\r\n&amp;quot;));&lt;br /&gt;
  	delay(100);&lt;br /&gt;
&lt;br /&gt;
  	WifiInit(EspSerial, UARTSPEED);&lt;br /&gt;
&lt;br /&gt;
	Serial.print(F(&amp;quot;FW Microduino Version:&amp;quot;));&lt;br /&gt;
	Serial.println(wifi.getMVersion().c_str());&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//	if (wifi.setUart(57600)) {&lt;br /&gt;
//		Serial.print(F(&amp;quot;set uart ok\r\n&amp;quot;));&lt;br /&gt;
//	} else {&lt;br /&gt;
//		Serial.print(F(&amp;quot;set uart err\r\n&amp;quot;));&lt;br /&gt;
//	}&lt;br /&gt;
&lt;br /&gt;
	if (wifi.setOprToStation()) {&lt;br /&gt;
		Serial.print(F(&amp;quot;to station ok\r\n&amp;quot;));&lt;br /&gt;
	} else {&lt;br /&gt;
		Serial.print(F(&amp;quot;to station err\r\n&amp;quot;));&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
//	wifi.setAutoConnect(false);&lt;br /&gt;
//	wifi.restart();&lt;br /&gt;
&lt;br /&gt;
	if (wifi.joinAP(SSID, PASSWORD)) {&lt;br /&gt;
		wifi.setWiFiconnected(true);&lt;br /&gt;
		Serial.print(F(&amp;quot;Join AP success\r\n&amp;quot;));&lt;br /&gt;
		Serial.print(F(&amp;quot;IP:&amp;quot;));&lt;br /&gt;
		Serial.println(wifi.getMLocalIP().c_str());&lt;br /&gt;
	} else {&lt;br /&gt;
		wifi.setWiFiconnected(false);&lt;br /&gt;
		Serial.print(F(&amp;quot;Join AP failure\r\n&amp;quot;));&lt;br /&gt;
		Serial.print(F(&amp;quot;Make sure your SSID, PASS correctly!\r\n&amp;quot;));&lt;br /&gt;
		while (true) {&lt;br /&gt;
			mCottenData = wifi.getMqttJson();&lt;br /&gt;
			if (mCottenData != &amp;quot;&amp;quot;) {&lt;br /&gt;
				mCottenData.trim();&lt;br /&gt;
				Serial.println(mCottenData);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if (wifi.mqttSetServer(MQTTSERVER, MQTT_PORT)) {&lt;br /&gt;
		Serial.print(F(&amp;quot;mqtt set server ok\r\n&amp;quot;));&lt;br /&gt;
	} else {&lt;br /&gt;
		Serial.print(F(&amp;quot;mqtt set server err\r\n&amp;quot;));&lt;br /&gt;
	}&lt;br /&gt;
	if (wifi.mqttConnect(ID, USER, PASS)) {&lt;br /&gt;
		wifi.setMqttConnected(true);&lt;br /&gt;
		digitalWrite(stateLEDPin,HIGH);&lt;br /&gt;
		Serial.print(F(&amp;quot;mqtt connect ok\r\n&amp;quot;));&lt;br /&gt;
	} else {&lt;br /&gt;
		wifi.setMqttConnected(false);&lt;br /&gt;
		Serial.print(F(&amp;quot;mqtt connect err\r\n&amp;quot;));&lt;br /&gt;
		while (true) {&lt;br /&gt;
			mCottenData = wifi.getMqttJson();&lt;br /&gt;
			if (mCottenData != &amp;quot;&amp;quot;) {&lt;br /&gt;
				mCottenData.trim();&lt;br /&gt;
				Serial.println(mCottenData);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	if (wifi.mqttSetDiveceIDToken(ID, PASS)) {&lt;br /&gt;
		Serial.print(F(&amp;quot;mqtt set device ID Token ok\r\n&amp;quot;));&lt;br /&gt;
	} else {&lt;br /&gt;
		Serial.print(F(&amp;quot;mqtt set device ID Token err\r\n&amp;quot;));&lt;br /&gt;
	}&lt;br /&gt;
	if (wifi.mqttSetSubscrib(SUBSCRIBTOPIC)) {&lt;br /&gt;
		Serial.print(F(&amp;quot;mqtt set subscrib ca topic ok\r\n&amp;quot;));&lt;br /&gt;
	} else {&lt;br /&gt;
		Serial.print(F(&amp;quot;mqtt set subscrib ca topic err\r\n&amp;quot;));&lt;br /&gt;
	}&lt;br /&gt;
	if (wifi.mqttSetSubscrib(SUBSCRIBTOPICP)) {&lt;br /&gt;
		Serial.print(F(&amp;quot;mqtt set subscrib cp topic ok\r\n&amp;quot;));&lt;br /&gt;
	} else {&lt;br /&gt;
		Serial.print(F(&amp;quot;mqtt set subscrib cp topic err\r\n&amp;quot;));&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	jsonData = &amp;quot;{\&amp;quot;Humidity\&amp;quot;:66.66}&amp;quot;;&lt;br /&gt;
	if (wifi.mqttPublish(PUBLISHTOPIC, jsonData)) {&lt;br /&gt;
		Serial.print(F(&amp;quot;mqtt publish ok\r\n&amp;quot;));&lt;br /&gt;
	} else {&lt;br /&gt;
		Serial.print(F(&amp;quot;mqtt publish err\r\n&amp;quot;));&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop(void) {&lt;br /&gt;
&lt;br /&gt;
	mCottenData = wifi.getMqttJson();&lt;br /&gt;
&lt;br /&gt;
	if (mCottenData != &amp;quot;&amp;quot;) {&lt;br /&gt;
		mCottenData.trim();&lt;br /&gt;
&lt;br /&gt;
		Serial.println(mCottenData);&lt;br /&gt;
&lt;br /&gt;
		if (mCottenData.equals(&amp;quot;WIFI DISCONNECT&amp;quot;)) {&lt;br /&gt;
			wifi.setWiFiconnected(false);&lt;br /&gt;
			wifi.setMqttConnected(false);&lt;br /&gt;
			digitalWrite(stateLEDPin,LOW);&lt;br /&gt;
		} else if (mCottenData.equals(&amp;quot;WIFI Connected&amp;quot;)) {&lt;br /&gt;
			wifi.setWiFiconnected(true);&lt;br /&gt;
		} else if (mCottenData.equals(&amp;quot;MQTT: Disconnected&amp;quot;)) {&lt;br /&gt;
			wifi.setMqttConnected(false);&lt;br /&gt;
			digitalWrite(stateLEDPin,LOW);&lt;br /&gt;
		} else if (mCottenData.equals(&amp;quot;MQTT: Connected&amp;quot;)) {&lt;br /&gt;
			if (wifi.mqttSetDiveceIDToken(ID, PASS)) {&lt;br /&gt;
				Serial.print(F(&amp;quot;mqtt set device ID Token ok\r\n&amp;quot;));&lt;br /&gt;
			} else {&lt;br /&gt;
				Serial.print(F(&amp;quot;mqtt set device ID Token err\r\n&amp;quot;));&lt;br /&gt;
			}&lt;br /&gt;
			if (wifi.mqttSetSubscrib(SUBSCRIBTOPIC)) {&lt;br /&gt;
				Serial.print(F(&amp;quot;mqtt set subscrib ca topic ok\r\n&amp;quot;));&lt;br /&gt;
			} else {&lt;br /&gt;
				Serial.print(F(&amp;quot;mqtt set subscrib ca topic err\r\n&amp;quot;));&lt;br /&gt;
			}&lt;br /&gt;
			if (wifi.mqttSetSubscrib(SUBSCRIBTOPICP)) {&lt;br /&gt;
				Serial.print(F(&amp;quot;mqtt set subscrib cp topic ok\r\n&amp;quot;));&lt;br /&gt;
			} else {&lt;br /&gt;
				Serial.print(F(&amp;quot;mqtt set subscrib cp topic err\r\n&amp;quot;));&lt;br /&gt;
			}&lt;br /&gt;
			wifi.setMqttConnected(true);&lt;br /&gt;
			digitalWrite(stateLEDPin,HIGH);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (!wifi.isWiFiconnected()) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (wifi.isMqttConnected()) {&lt;br /&gt;
			if (mCottenData.startsWith(&amp;quot;{&amp;quot;) &amp;amp;&amp;amp; mCottenData.endsWith(&amp;quot;}&amp;quot;)) {&lt;br /&gt;
&lt;br /&gt;
				uint8_t length = mCottenData.length();&lt;br /&gt;
				char buf[length + 1];&lt;br /&gt;
				mCottenData.toCharArray(buf, length + 1);&lt;br /&gt;
&lt;br /&gt;
				aJsonObject* root = aJson.parse(buf);&lt;br /&gt;
				aJsonObject* state = aJson.getObjectItem(root, &amp;quot;undefined&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
				if (strcmp(state-&amp;gt;valuestring, &amp;quot;true&amp;quot;) == 0) {&lt;br /&gt;
					Serial.println(F(&amp;quot;ON&amp;quot;));&lt;br /&gt;
				}&lt;br /&gt;
				if (strcmp(state-&amp;gt;valuestring, &amp;quot;false&amp;quot;) == 0) {&lt;br /&gt;
					Serial.println(F(&amp;quot;OFF&amp;quot;));&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if (wifi.isMqttConnected()) {&lt;br /&gt;
		if (sensorlastTime &amp;gt; millis())&lt;br /&gt;
			sensorlastTime = millis();&lt;br /&gt;
		if (millis() - sensorlastTime &amp;gt; INTERVAL_sensor) {&lt;br /&gt;
&lt;br /&gt;
			float temp = map(analogRead(A2), 0, 1023, 0, 255);&lt;br /&gt;
			float humi = map(analogRead(A1), 0, 1023, 0, 255);&lt;br /&gt;
			float lightness = map(analogRead(A0), 0, 1023, 0, 255);&lt;br /&gt;
			tempOLED = temp;&lt;br /&gt;
			humiOLED = humi;&lt;br /&gt;
			lightnessOLED = lightness;&lt;br /&gt;
			jsonData = &amp;quot;{\&amp;quot;Humidity\&amp;quot;:&amp;quot;;&lt;br /&gt;
			jsonData += String(humi);&lt;br /&gt;
			jsonData += &amp;quot;,\&amp;quot;Temperature\&amp;quot;:&amp;quot;;&lt;br /&gt;
			jsonData += String(temp);&lt;br /&gt;
			jsonData += &amp;quot;,\&amp;quot;Lightness\&amp;quot;:&amp;quot;;&lt;br /&gt;
			jsonData += String(lightness);&lt;br /&gt;
			jsonData += &amp;quot;}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			if (wifi.mqttPublishM(jsonData)) {&lt;br /&gt;
				Serial.print(F(&amp;quot;mqtt publishM ok\r\n&amp;quot;));&lt;br /&gt;
			} else {&lt;br /&gt;
				Serial.print(F(&amp;quot;mqtt publishM err\r\n&amp;quot;));&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			sensorlastTime = millis();&lt;br /&gt;
&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;font-size:115%&amp;quot;&amp;gt;[[MCookie-WiFi/zh|返回mCookie-WiFi界面]]&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiumray9@gmail.com</name></author>	</entry>

	</feed>