esp8266系列学习(五)——esp8266+单片机+路由器实现物联网远程控制方案的一些问题记录

 

一、如何根据单片机发来的消息在手机端界面显示?即:手机、单片机如何双向通信且在各自界面中进行信息显示。

答:我们可以把手机、单片机通过esp8266模块和路由器建立联系,组成局域网(路由能上网的话,亦可于外网通信)。具体来说:

  1. 把单片机和wifi模块通过串口进行连接
  2. 通过单片机内部编程由单片机的串口发送AT指令设置wifi模块工作在station模式,然后主动连接能上网的当前环境路由器
  3. 手机也连接该路由器,让手机和wifi模块同处在一个路由器下
  4. 通过单片机的串口发送AT指令设置wifi模块为tcp客户端,与知心天气网站服务器和手机进行tcp通信,接入知心天气网站服务器端域名为api.seniverse.com,端口80,手机端可借助有人网络助手(或者自己写一个手机端的软件)设置手机的tcp server及指定开放的端口成功建立tcp通信后,用户可通过单片机的串口向知心天气网站的服务器端提交基于http协议的GET请求,获取天气信息的api接口需要用户注册申请,如下是我已经申请了的:GET https://api.seniverse.com/v3/weather/now.json?key=S4bQnu5_rNi_kbNJZ&location=hangzhou&language=zh-Hans&unit=c,服务求收到GET请求后会返回一个json格式的数据包,使用到第三方的开源库cJSON进行解析即可
  5. 对于如何在各自界面进行显示,单片机端可以外接一块液晶屏,手机端利用有人网络助手(前期开发测试时推荐使用)也可以显示通信的信息,只不过界面不美观,且没有特定的说明和规划,如果是自己写的手机端的软件,则可以根据需要进行UI界面设计,进行有规划的消息显示,以及可设计触发单片机执行各事件的触发控件,实现各动作的软/硬件触发。

 

二、单片机如何上网?

单片机通过esp8266wifi模块连接一个可以上网的路由器即可建立与广域网(外网)的tcp通信。

当前核心板更新为第二版,修改如下:修改FPC(间距0.5mm)封装; 修改焊盘封装,使得方便串口选择下载固件还是与STM32串口通信; 改进Wifi下载方式,改为贴片拨动开关(核心板右侧),相比跳帽,更为简洁方便; 增加esp8266按键,用于机智云代码远程控制开发时,进入wifi自动配对路由器或无线热点; 增加龟仔贴片按键(核心板下侧背面)。用于esp8266复位; 底板核心资源: 两路USB+继电器+KF301 一路NTC二分法测温 MP3控制与播放WIFI远程控制 软件核心思路: stm32-usb-fatfs-spi_flash ld3320-语音识别-QJ004 mp3数据输入解码 && LD3320本身mp3解码 stm32--串口--esp8266-对接机智云-手机app远程控制 整个软件框架采用 动态链表+任务方式实现管理,类似嵌入式操作系统的任务管理部分。 特点(详细远程控制和语音控制功能介绍见附件): 基于LD3320的语音识别; 基于LD3320的mp3播放(实测128kbps无压力,更高的没测了,应该也没问题); 基于STM32和SPI FLash芯片的虚拟U盘修改语音识别词条; 基于ESP8266和机智云(采用eclipse开发,文档对linux下和eclipse下开发均有详细介绍)的远程控制 FPC接口引出了剩余的MCU引脚到底板。 底板接串口模块,系统会实时输出当前一些信息,细节见底下开发文档。 增加了四路输出控制接口(目前提供了四路的简单控制) 支持U盘拖入固件在线升级并自动重启(2019/01/12) 固件拖入升级思路如下,详细实现,见提供的源码即可: keil中修改中断向量位置,主程序中修改中断向量起始地址; app程序承担固件接收处理; BootLoader程序负责写入并自动重启进入新app中; 具体使用方法: firmware文件夹若不存在,则自动生成,bin文件升级完成后,将自动删除; 将app程序生成的bin文件放入虚拟U盘firmware文件夹,重上电,闪烁3次后即自动进行固件更新; 说明: 误识别无法避免,我们做了两个方面努力尽量减少其发生的概率: 添加了垃圾词汇,见虚拟U盘一图,xiao xing 对应多个垃圾词语,买家不要删除 唤醒词尽量避免了使用常见的短语 使用方法(见附件): 只通电,上电准备就绪后,喇叭播放 “系统正在运行中”语音; 先说唤醒词 “小星”,识别正确,则回复“小星在”; 随后可以说出setup.ini配置文件中对应的词条,识别成功,则闪烁一次,回答“好的”,串口输出指定格式的数据帧“AT+??+END\r\n”,四路控制接口中指定接口执行相应命令; 有一个mp3歌曲播放范例,说“音乐”,则开始播放mp3歌曲,播放完才能回到正常的语音识别; 只需要开机说一次唤醒词,后面直接说出命令即可。容易增加误识别现象; 若识别失败,LED闪烁两次,提示需要注意发音/环境嘈杂等; 注意: 若需要修改词条,通过USB接口接入电脑,打开setup.ini配置文件,修改词条即可,前面5条不 要轻易动,最好从第6条开始修改相应的识别句子。此外,CH1~CH4四路控制接口的高低电平可 以自行更改,这样,识别成功则取反相应的输出电平。(wifi默认使能); 当前第二版本的词条内容如下,由买家根据实际情况自行设计(音乐在播放时,ld3320不可进行语音识别): 当前支持ini格式配置文件,软件目前支持20条语音控制命令(音乐相关,控制相关,最多支持50条) 代码上经过几次升级,目前软件支持以下扩展用的功能(底板预留IO可扩展的功能): OLED 128*32屏幕 XN297无线模块 完整功能演示(wifi的见文档即可):视频链接地址: https://pan.baidu.com/s/1mHhrHqAfB5fW7N8HnGbTfQ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xw-何妨吟啸且徐行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值