“玩板”+siri+快捷指令+XCC3200(MQTT)来控制
<div class='showpostmsg'><p> 前段时间手机系统更新上多了一个“快捷指令”的东西,还看到了别人通过快捷指令来控制ESP8266输出,确实这个比较适合我们喜欢折腾的电子爱好者!</p><p> 别人只是在抖音力视频演示了效果,他没有详细的介绍如何实现,那没有师傅带,只能百度边看边琢磨了!</p>
<p>后来慢慢知道他们的工作原来:手机中使用“快捷指令”,使用了添加 “网页” 发送一条“推送”给连接上 MQTT服务器的设备,该设备接收解析后输出。我也是边学习边琢磨!</p>
<p> 实现分三步</p>
<p>一、手机快捷指令设置</p>
<p></p>
<p>1 “获取URL内容”:http:api.hecoluds.com/cmds?device_id=xxxxxxxxxx</p>
<p>2 “方式”:POST</p>
<p>3 头部:“api-key” ,“xxxxxxxxxxxxxxxx”在MQTT服务器上信息APIKey</p>
<p>4 请求体JSON:这里的内容就是XCC3200里面接收到判断输出的信息,比如"switch ,1" 功能打开绿灯。"switch ,0" 功能关闭绿灯</p>
<p> <br />
二、MQTT设置</p>
<p></p>
<p> 我直接参考ONENET上面的 MQTT设置!</p>
<p>特别是把一些参数要保存起来</p>
<p>Server Addr 183.230.40.39<br />
Port 6002</p>
<p> ProductID <br />
DeviceID<br />
AuthInfo</p>
<p>APIKey需要ONENET工具计算一下</p>
<p>三|XCC3200的配置</p>
<p>在CCS中导入TI的 CC3200 SDK中的 MQTT Client工程,然后修改main.c中的一些基本参数</p>
<p>main.c修改一下几个方面 </p>
<p>MQTT服务器 地址和端口</p>
<p>#define SERVER_ADDRESS "mqtt.heclouds.com"//mqtt.eclipse.org api<br />
#define SERVER_IP_ADDRESS "183.230.40.39"//192.168.178.67<br />
#define PORT_NUMBER 6002//1883</p>
<p>还有就是XCC3200设计设备的一些信息</p>
<p>/* connection configuration */<br />
connect_config usr_connect_config[]</p>
<p>{</p>
<p> 基本的参数修改设置下</p>
<p>}</p>
<p>还有就是 XCC3200连接无线网络的 设置</p>
<p>common.h文件</p>
<p>#define SSID_NAME " *********** " /* AP SSID */<br />
#define SECURITY_TYPE SL_SEC_TYPE_WPA_WPA2/* Security type (OPEN or WEP or WPA*/<br />
#define SECURITY_KEY "************** " /* Password of the secured AP */</p>
<p> </p>
<p>最后就是static void<br />
Mqtt_Recv(void *app_hndl, const char *topstr, long top_len, const void *payload,<br />
long pay_len, bool dup,unsigned char qos, bool retain) 中接收的数据进行判断输出了 </p>
<p> //控制输出<br />
if(output_str=='5')//{"switch":"1"} 这里就是要与“快捷指令”请求体JSON一支<br />
{<br />
GPIO_IF_LedOn(MCU_RED_LED_GPIO);<br />
}<br />
else if(output_str=='4')//{"switch":"1"}<br />
{<br />
GPIO_IF_LedOff(MCU_RED_LED_GPIO);<br />
}</p>
<p> </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-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 />
</p>
<p> </p>
<p>我只想说这篇很干货</p>
<p>这个很有意思~赞~哈哈,我觉得肯定会有跟着作者一起捣鼓这个的。</p>
<p>请问快捷指令可以往一个局域网IP地址发送一个字符串吗?比如:向192.168.1.100发送:COM1,如果可以,能把实现过程指导下吗?谢谢!</p>
页:
[1]