【ESP8266】NONOS SDK开发,发送HTTP请求
来源:互联网 发布:倍娱网络电视 编辑:程序博客网 时间:2024/05/14 17:35
网络方面不是很懂,可能描述有一点不准确。
主要是通过ESP8266,在NONOS-SDK环境下,用URL地址,发出HTTP请求,接收并处理信息。
假设已经大致了解厂家提供的SDK,以及Eclipse开发环境如何使用,现在大致要做的是以下几步:
1、连上WiFi(连上网络)
2、与URL地址的服务器建立TCP连接
3、发出HTTP请求
4、接收并处理信息
现在就开始一步步地讲:
一、连上WiFi
连上WiFi这里我采用比较笨的方式,就是固定的WiFi和密码,直接连上就是了
需要用到几个函数:
1 2 3 4 5 6 7 8 9 10 11来自CODE的代码片
wifi_func1)设置ESP8266 的工作模式;
2)设置好WiFi的SSID和密码;
3)开始连接WiFi;
4)检查WiFi连接状态,若为5则连接成功。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41来自CODE的代码片
init_collectwifi.c在开始初始化的时候应该还要有一句 wifi_set_opmode(STATION_MODE);
二、建立TCP连接
这里又分为几步:
1)解析URL,获取域名
要建立TCP连接,首先应该获取服务器的域名。
举个例子:https://code.csdn.net/snippets_manage
那么域名就应该是code.csdn.net,我们要建立连接也是与这个服务器建立连接,所以我们需要把URL地址拆开
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30来自CODE的代码片
http_parse_request_url.c2)解析域名,转换成IP地址
这里,当它找到对应的IP地址后,会有调用回调函数,我们可以在回调函数中进行TCP连接
我是这样调用这个函数的:espconn_gethostbyname(&user_tcp_conn,host, &addr,user_esp_dns_found);
3)TCP连接
1 2 3 4 5 6来自CODE的代码片
dns_cb.c获得了IP地址后就可以连接了1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31来自CODE的代码片
iot_station_init
在(二)中的函数应该是在要发出命令时一气呵成的,所以这里我们应该封装好一个接口函数,
只要用户给出URL和发送的命令时,系统就能自动完成功能。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18来自CODE的代码片
HttpReadFile这里有包含头文件 my_client.h ,里面定义了GET和POST的格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22来自CODE的代码片
my_client.h
四、接收信息
在之前一直没有讲,在建立了TCP连接后有四个很重要的回调函数要声明。
就是上面my_client.h中的四个回调函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77来自CODE的代码片
tcp_cb收到信号后的处理,我们就写在recv_cb里面就可以了但是有一点要注意的是:我们使用的这个NONOS_SDK,它是有看门狗的,当回调函数执行时间过长是会导致重启的!
HTTP和URL介绍 http://www.cnblogs.com/LDSmallCat/p/4942039.htmlESP8266 SDK 编程手册.pdf
- 【ESP8266】NONOS SDK开发,发送HTTP请求
- 【ESP8266】NONOS SDK开发,串口发送、接收与中断
- 【ESP8266】NONOS SDK开发,串口发送、接收与中断
- 【ESP8266】NONOS SDK开发, smartconfig/AirKiss与flash读写
- ESP8266 NONOS SDK 调度与优先级
- ESP8266-使用ESP8266 NONOS SDK的JSON API
- ESP8266-使用ESP8266 NONOS SDK的driver/key API
- 【ESP8266】ESP8266 sniffer使用示例(基于NONOS SDK)
- 【ESP8266】使用ESP8266 NONOS SDK的JSON API
- Arduino esp8266 wifi模块发送http请求
- esp8266发送https请求
- 4. ESP8266固件的编译(NONOS SDK固件 AT固件)
- ESP8266 RTOS SDK开发
- ESP8266 SDK开发1
- ESP8266 sdk开发入门
- ESP8266的SDK开发入门教程
- ESP8266 NONOS SDK2.0 自定义库编译
- 安卓开发:Volley发送Http请求
- typedef
- AngularJS杂记11----angularJS动画实例详解
- picasso与glide
- SAFT是监管不确定性的症状之一
- 浅谈SpringMvc面试问题
- 【ESP8266】NONOS SDK开发,发送HTTP请求
- Anaconda--python3.6安装openCV
- ORACLE数据truncate、delete删除恢复
- 利用Word 2010对书籍排版进行设置(三)--常用格式设置(1)
- 芝商所将于12月推出比特币期货交易
- 波罗的海国家同意支持分布式账本技术开发
- django ORM model filter 条件过滤,及多表连接查询、反向查询,某字段的distinct
- virtualbox安装kaliLinux与安装增强功能的问题
- 联合国机构用区块链打击贩卖儿童