一、实验结果

最终实验结果如上图所示,由于csdn限制gif图像大小,所以模糊了点,但是还是可以看清的。

图中是手机在网页中进行操作,然后发送请求到php服务器,php服务器建立tcp链接,该链接通过一个JAVA写的TCP请求转发器,把tcp请求转发到stm32中,stm32中代码对请求进行解析,解析到不同的指令,譬如灯亮/灭,就执行对应的操作。

二、实验图解

下面用一张图来说明:

步骤A:stm32通过手机热点连接到TCP SERVER,由于tcp协议的特性,可以保持持久连接

步骤B1:手机通过互联网访问控制页面,接入到TCP SERVER

步骤B2:手机通过发送请求,告知TCP SERVER:帮我把请求转发给STM32

步骤C1:TCP SERVER 把请求转发给了STM32,STM32中解析请求并执行(灯亮灭)

步骤C2:STM32执行了请求之后,进行回馈,通过步骤A中建立的TCP连接,告知TCP SERVER:帮我告诉手机B端,我已经做完了任务

步骤D:TCP SERVER 把请求转发给手机B,B收到信息,进行弹窗提示。步骤结束。

三、实验分析

执行以上操作的前提是stm32已经提前通过ESP8266模块连接到手机的热点上,然后通过热点发送TCP请求到TCP请求转发器中。

其中TCP请求转发器的工作原理类似于websocket,即建立一个TCP SERVER,然后把连接到该TCP SERVER的TCP 连接以KEY-VALUE的形式放入到一个MAP中。

后期其他TCP连接就可以通过在请求中说明KEY值,然后通过KEY找到对应的TCP链接,再转发给相应的TCP链接.

举个例子:STM32链接到转发器中,以A - SOCKET(key-value)的形式保存在MAP中,然后手机端B发送TCP请求给SERVER,在请求中说明:请帮我把请求转发给一个叫做A的TCP链接去,然后TCP SERVER就把B 发送的请求内容转发给A,从而实现B控制A。

同样,STM32也可以直接请求TCP SERVER 把stm32采集到的数据转发给手机B端

重点说明:该实验中,只要STM32 连接到一个能上网的手机热点中,就可以连接到服务器(TCP SERVER),该TCP SERVER是通过花生壳进行内网穿透暴露出来的端口,所以没有距离的限制,只要手机能上网,STM32就可以连接到TCP SERVER。

同理,只要手机端B端可以上网,就可以访问控制端的页面,从而通过网页控制STM32。

四、具体实现

1.STM32端通过串口给ESP8266模块发送AT指令,进行连接手机热点、发送TCP请求;

设置ESP8266对应的USART3的中断,接收数据并保存到一个字符数组中。解析字符数组,执行指令(灯亮灭)

也可以直接发送stm32采集的信息(温湿度),直接发送到TCP SERVER,或者转发到手机端B

图1                                                                图2

其中图1 是通过AT指令进行连接热点

图2 是设置串口3的中断进行TCP请求的接收

具体操控ESP8266的代码太长了就不放出来了٩(๑❛ᴗ❛๑)۶,一般淘宝买ESP8266都会有附赠。

2.TCP SERVER端,采用JAVA实现,编写了一个基于TCP 的server,这个server的内容其实很简单,做了两件事:

1.就是把每一个连接到TCP SERVER的socket以KEY-VALUE的形式保存到MAP中。

2.解析每一个TCP请求,若TCP请求中有说明要求进行转发,则在MAP中找到对应要转发的SOCKET,进行转发

值得说明的是,TCP server所监听的端口要使用花生壳进行内网穿透,如监听8089端口,就要通过花生壳软件将该端口映射到外网,如下图示范:这样处于外网的机器就可以通过访问172XXXX.:31253 ,从而访问到本地的127.0.0.1:8089端口

上图是TCP SERVER的截图,写的比较简陋,后期写一个GUI界面会好看点

3.由于本人只有一台花生壳账号,所以在同一台电脑上同样适用花生壳对外开放了80端口进行PHP服务器的架设

4.手机访问页面

通过手机访问页面后,然后点击按钮,就可以控制stm32

本次说明到此结束。希望下次做的更好。

stm32通过ESP8266连接互联网服务器,手机通过网页实现远程控制灯亮灭相关推荐

  1. esp8266监听服务器端口信息,esp8266连接远程服务器收信息

    esp8266连接远程服务器收信息 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务 ...

  2. esp怎么从服务器接受信息,esp8266连接远程服务器收信息

    esp8266连接远程服务器收信息 内容精选 换一换 TCP协议适用于注重可靠性,对数据准确性要求高,速度可以相对较慢的场景,如文件传输.发送或接收邮件.远程登录等.您可以添加一个TCP监听器转发来自 ...

  3. Arduino+ESP8266手机控制小灯亮灭及常见问题

    最近在接触Arduino和ESP8266模块,比较基础的就是运用Arduino IDE软件.ESP8266模块和一款手机软件来控制8266测试板上的小灯亮灭. 项目软件: Arduino IDE软件 ...

  4. 阿里云IOT入门教程(三)阿里云IOT Studio自建手机App控制Wemos D1 Mini( ESP8266 )板载灯亮灭

    阿里云IOT入门教程(一)阿里云IOT Studio自建手机App控制Wemos D1 Mini( ESP8266 )板载灯亮灭 概述 所需材料 Mqtt预备知识 hacklab端开发 * 硬件端上报 ...

  5. 最简单DIY基于ESP8266的智能彩灯①(在网页用按钮点亮普通RGB灯)

    ESP8266和ESP32智能彩灯开发系列文章目录 第一篇:最简单DIY基于ESP8266的智能彩灯①(在网页用按钮点亮普通RGB灯) 文章目录 ESP8266和ESP32智能彩灯开发系列文章目录 前 ...

  6. stm32f103c8t6+ESP8266利用onenet平台上传数据到云平台,再利用云平台远程下发命令给单片机控制LED灯亮灭

    stm32f103c8t6+ESP8266利用onenet平台上传数据到云平台,再利用云平台远程下发命令给单片机控制LED灯亮灭 接触stm32已经有一年半的时间了,从最开始的stm32F103ZET ...

  7. esp8266接入百度云,使用客户端控制灯亮灭

    esp8266接入百度云 摘要:本篇文章介绍了esp8266如何接入百度云的整个流程,最终实现一个简单的小demo,通过mqtt客户端去去控制esp8266上小灯的点亮与关闭.文章包含三个部分: 一. ...

  8. 安卓手机与蓝牙模块联合调试(二)—— 单片机蓝牙控制LED灯亮灭(上)

    系列博文: (1)安卓手机与蓝牙模块联合调试(一)--蓝牙模块的串口通讯 (2)安卓手机与蓝牙模块联合调试(二)-- 单片机蓝牙控制LED灯亮灭(上) (3)安卓手机与蓝牙模块联合调试(三)-- 单片 ...

  9. 采用STM32外部中断模式控制LED灯亮灭

    文章目录 实验工具 一.STMCube配置项目 1.配置引脚 2.配置EXIT 3.配置SYS 4.配置GPIO 5.创建代码 二.使用KEil配置代码 1.打开生成的项目,找到stm32f1xx_i ...

最新文章

  1. 第四周项目二-太乐了
  2. python编程 语言-python编程语言有什么用途
  3. 【研讨课】超临界水气化制氢技术 2018-06-11
  4. java中的console是干什么的_[Java教程]javascript中,你真的会用console吗?
  5. 微信小程序 三元运算 checked
  6. postman使用过程中body中的form-data,x-www-form-urlencoded,raw,binary的简单记录
  7. java中的字符串_Java中的字符串
  8. 「ECharts」电商平台数据可视化实时监控系统之后台开发
  9. 解决IntelliJ Idea 集成TortoiseSVN 时找不到svn.exe,也就是 svn安装失败 找不到指定
  10. hdu-1711(hash)
  11. 免费c语言入门自学书籍pdf下载,c语言从入门到精通pdf
  12. Mysql数据库的备份与恢复
  13. 立创EDA学习笔记(2)——创建元件符号
  14. 智能手机基于众包的室内定位
  15. R语言中的ggmap包
  16. 聚类生成anchor框的尺寸和比例
  17. 【Flutter】Dart 数据类型 数字类型 ( Dart 文件创建 | num 类型 | int 类型 | double 类型 | num 相关 API )
  18. python图片转pdf
  19. video.js视频高度自适应解决方法
  20. 为什么墨刀的动效这么酷炫?学会神奇移动,你也可以

热门文章

  1. 工作20天之感悟(嵌入式开发)
  2. 浅谈Unity中的文字显示
  3. android开发隐藏图片,用美图看看安卓版教你如何隐藏私人图片(图文)
  4. C++ 模版类和模板函数介绍及使用
  5. apns 苹果服务器压力,[iOS]APNs推送机制
  6. ERP中Bom的替代料
  7. Python之Sqlitespy连接并把Excel内容写到数据库的表中
  8. 机器学习实战案例—验证码(CAPTCHA)识别基于Logistic
  9. Excel 2010 SQL应用117 分组统计之GROUP BY 与First
  10. 如何用CSS动画特效让图片旋转起来