完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、项目设计与分析 现在,物联网+智能家居很流行,国内甚至出现了一个yeelink物联网免费平台,不过那个东西针对arduino多一点。 最初的设想本来是用7687做一个web服务器,手机接入来控制资源。最终,我觉得这个一是难度系数太大,二是不符合常理:回家肯定连上路由器了,连这个干嘛?三是例程有基本的httpget例子。所以,项目的基本思路定为:工作在wifi station模式下,通过PC上的局域网http服务器,实现中程控制。如果远程控制,需要一个类似于yeelink的公网ip服务器。 二、web服务器配置 win7自带iis服务器,傻瓜式配置完成后,在iis根目录下放一个led.html。如果pc和手机连在同一个路由器下,手机或者电脑浏览器输入pc的ip地址(一般是192.168.1.102),+“/led.html”,就能进入led界面。 html如下(简陋如斯,不忍附图): 可以看到定义的method是post,在http协议中,post方法可用来改变服务器的内容,get方法可用来获取服务器的内容。一个基本的服务器要具有交互功能,就要能处理client的post请求。为此,采用最简单的方法,在根目录下放一个asp脚本(也叫vbs),该脚本由html中的action="back.asp"和按钮所触发(需要netframework),功能是在根目录下以ansi编码创建一个info.txt,其内容来自于网页输入: <%@ Language=VBScript %> <% 'Option Explicit 'Response.Expires=0 'Dim StrName 'StrName = Trim(Request.Form("jiao")) 'Trim函数用来除首尾空格 set objFile=Server.CreateObject("Scripting.FileSystemObject") set objTextFile=objFile.CreateTextFile (Server.MapPath("info.txt"),2,false) objTextFile.Write (Request.Form("jiao")) objTextFile.close %> 注意,编码十分重要。这也是asp现在几近死亡的原因,它有一种编码很老旧,不是utf也不是ANSI,上述的false是默认的,会以ANSI编码,但是网上好多修改版都把它改为了true。这样的话,开发板get到的数据包,开发板识别不了。 三、板载程序修改 if(client_data.response_buf[0]!=last){ tmp=last; last=client_data.response_buf[0]; switch(last){ case 'a':{open();break;} case 'b':{open();hal_gpio_set_output(HAL_GPIO_33,HAL_GPIO_DATA_HIGH);break;} case 'c':{open();hal_gpio_set_output(HAL_GPIO_35,HAL_GPIO_DATA_HIGH);break;} case 'd':{open();hal_gpio_set_output(HAL_GPIO_6,HAL_GPIO_DATA_HIGH);break;} case 'e':{open();hal_gpio_set_output(HAL_GPIO_34,HAL_GPIO_DATA_HIGH);break;} case 'f':{shut();break;} default:last=tmp; } } 核心代码如上,其中hal_..._high不是1,是0!我在编译过程中一开始写得是0,老是提示枚举变量不对,修改为上述表达式才过关。考研期间默认程序老是get失败,配好自己的服务器后,就一切顺利了。附,可以看到http和https的区别,后者需要验证身份。 工程include了一个lwip,这是挪威一个计算机研究所的开发的轻量协议栈,这样才能在广大的嵌入式平台上进行http通信,致敬!可以看到,httpclient配置的基本过程和uart类似,定义一个结构体,再用该结构体来初始化client。 四、控制具体过程 如前所述,手机通过post改变服务器上的info.txt文件,它只有一个字符,a/b/c/d/e/f,开发板循环get,分析数据后点亮对应的灯。当全部功能调试通过,就可以用手机控制了。注意,asp真的是药丸,ANSI它就报错,但是不影响控制。 五、感谢与感想 感谢电子发烧友的试用机会,让我也过了一把遥控的瘾。另外,也不知道hal是好是坏,感觉学到了一些东西,可是还感觉,对底层依然是不很了解。 |
|
相关推荐
5 个讨论
|
|
只有小组成员才能发言,加入小组>>
890 浏览 0 评论
【KV260视觉入门套件试用体验】四、KV260 视觉入门套件和固件更新
1463 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI Library体验之OCR识别
1112 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI 通过迁移学习训练自定义模型
1467 浏览 0 评论
【KV260视觉入门套件试用体验】KV260系列之Petalinux镜像+Resnet 50探索
1133 浏览 0 评论
【AMD KV260视觉入门开发套件试用】4、简单几步体验ubuntu 20.04.3 LTS运行人员检测应用
1611浏览 1评论
869浏览 1评论
【KV260视觉入门套件试用体验】老刘记事儿KV260初体验之Micro-SD选型提速研究(三)
826浏览 1评论
【KV260视觉入门套件试用体验】KV260部署yolov3实现车辆和行人检测
2424浏览 1评论
【KV260视觉入门套件试用体验】基于KV260的人脸识别的实现与展示
818浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 04:18 , Processed in 0.788555 second(s), Total 82, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号