蓝雨夜 发表于 2020-2-27 23:54

“玩板”+siri+快捷指令+XCC3200(MQTT)来控制

<div class='showpostmsg'><p>&nbsp; &nbsp; 前段时间手机系统更新上多了一个&ldquo;快捷指令&rdquo;的东西,还看到了别人通过快捷指令来控制ESP8266输出,确实这个比较适合我们喜欢折腾的电子爱好者!</p>

<p>&nbsp; &nbsp;别人只是在抖音力视频演示了效果,他没有详细的介绍如何实现,那没有师傅带,只能百度边看边琢磨了!</p>

<p>后来慢慢知道他们的工作原来:手机中使用&ldquo;快捷指令&rdquo;,使用了添加 &ldquo;网页&rdquo; 发送一条&ldquo;推送&rdquo;给连接上 MQTT服务器的设备,该设备接收解析后输出。我也是边学习边琢磨!</p>

<p>&nbsp; &nbsp; 实现分三步</p>

<p>一、手机快捷指令设置</p>

<p></p>

<p>1 &ldquo;获取URL内容&rdquo;:http:api.hecoluds.com/cmds?device_id=xxxxxxxxxx</p>

<p>2 &ldquo;方式&rdquo;:POST</p>

<p>3 头部:&ldquo;api-key&rdquo; ,&ldquo;xxxxxxxxxxxxxxxx&rdquo;在MQTT服务器上信息APIKey</p>

<p>4 请求体JSON:这里的内容就是XCC3200里面接收到判断输出的信息,比如&quot;switch ,1&quot;&nbsp; 功能打开绿灯。&quot;switch ,0&quot;&nbsp; 功能关闭绿灯</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
二、MQTT设置</p>

<p></p>

<p>&nbsp; 我直接参考ONENET上面的 MQTT设置!</p>

<p>特别是把一些参数要保存起来</p>

<p>Server Addr 183.230.40.39<br />
Port 6002</p>

<p>&nbsp;ProductID&nbsp;&nbsp; &nbsp;<br />
&nbsp;DeviceID<br />
&nbsp;AuthInfo</p>

<p>APIKey需要ONENET工具计算一下</p>

<p>三|XCC3200的配置</p>

<p>在CCS中导入TI的 CC3200 SDK中的&nbsp;MQTT Client工程,然后修改main.c中的一些基本参数</p>

<p>main.c修改一下几个方面&nbsp;</p>

<p>MQTT服务器 地址和端口</p>

<p>#define SERVER_ADDRESS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;mqtt.heclouds.com&quot;//mqtt.eclipse.org &nbsp;api<br />
#define SERVER_IP_ADDRESS &nbsp; &nbsp; &nbsp; &nbsp;&quot;183.230.40.39&quot;//192.168.178.67<br />
#define PORT_NUMBER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;6002//1883</p>

<p>还有就是XCC3200设计设备的一些信息</p>

<p>/* connection configuration */<br />
connect_config usr_connect_config[]</p>

<p>{</p>

<p>&nbsp; &nbsp; 基本的参数修改设置下</p>

<p>}</p>

<p>还有就是 XCC3200连接无线网络的 设置</p>

<p>common.h文件</p>

<p>#define SSID_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot; ***********&nbsp; &nbsp;&quot; &nbsp; &nbsp;/* AP SSID */<br />
#define SECURITY_TYPE &nbsp; &nbsp; &nbsp; SL_SEC_TYPE_WPA_WPA2/* Security type (OPEN or WEP or WPA*/<br />
#define SECURITY_KEY &nbsp; &nbsp; &nbsp; &nbsp;&quot;**************&nbsp; &nbsp; &quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Password of the secured AP */</p>

<p>&nbsp;</p>

<p>最后就是static void<br />
Mqtt_Recv(void *app_hndl, const char &nbsp;*topstr, long top_len, const void *payload,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;long pay_len, bool dup,unsigned char qos, bool retain) 中接收的数据进行判断输出了&nbsp;</p>

<p>&nbsp; &nbsp;//控制输出<br />
&nbsp; &nbsp; if(output_str==&#39;5&#39;)//{&quot;switch&quot;:&quot;1&quot;} 这里就是要与&ldquo;快捷指令&rdquo;请求体JSON一支<br />
&nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GPIO_IF_LedOn(MCU_RED_LED_GPIO);<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; else if(output_str==&#39;4&#39;)//{&quot;switch&quot;:&quot;1&quot;}<br />
&nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; GPIO_IF_LedOff(MCU_RED_LED_GPIO);<br />
&nbsp; &nbsp; }</p>

<p>&nbsp;</p>

<p><br />
<b><font color="#5E7384">此内容由EEWORLD论坛网友<font size="3">蓝雨夜</font>原创,如需转载或用于商业用途需征得作者同意并注明出处</font></b></p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

蓝雨夜 发表于 2020-2-27 23:55

本帖最后由 蓝雨夜 于 2020-2-28 08:07 编辑

<p>视频演示效果</p>

<p><iframe allowfullscreen="true" frameborder="0" height="450" src="http://player.youku.com/embed/XNDU2NTExNjU5Ng" style="background:#eee;margin-bottom:10px;" width="100%"></iframe><br />
&nbsp;</p>

<p>&nbsp;</p>

hotsauce1861 发表于 2020-2-28 09:41

<p>我只想说这篇很干货</p>

okhxyyo 发表于 2020-2-28 10:22

<p>这个很有意思~赞~哈哈,我觉得肯定会有跟着作者一起捣鼓这个的。</p>

jhbl 发表于 2021-8-8 16:36

<p>请问快捷指令可以往一个局域网IP地址发送一个字符串吗?比如:向192.168.1.100发送:COM1,如果可以,能把实现过程指导下吗?谢谢!</p>
页: [1]
查看完整版本: “玩板”+siri+快捷指令+XCC3200(MQTT)来控制