ESP8266WiFi模块实现手机APP控制LED灯(Arduino入门小项目)

2023-11-07 01:10

本文主要是介绍ESP8266WiFi模块实现手机APP控制LED灯(Arduino入门小项目),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.项目所需硬件
一张ESP8266WIFI模块(某宝买很便宜)
ESP8266CH340模块
一根支持数据传输的安卓数据线
一台PC
二.项目所需软件
1.Arduino IDE 开发软件
这里大概说一下windows下的安装,
下载地址
如果你是windows系统选择好对应的操作系统版本,下载Windows Installer即可。
下载好的是.exe格式文件双击运行即可安装。
其他系统安装方法请百度。
2.手机APP
手机应用商店下载NeTorch网络调试工具
三·Arduino程序源码


/*这篇把8266作为TCPcleint,加入手机创建的tcpServer中来控制一个继电器*/#include <ESP8266WiFi.h>const char *ssid     = "WIFI_NAME";//这里是我的wifi,你使用时修改为你要连接的wifi ssid
const char *password = "WIFI_PASSWORD";//你要连接的wifi密码
const char *host = "192.168.*.*";//修改为手机的的tcpServer服务端的IP地址,即手机在路由器上的ip
WiFiClient client;
const int tcpPort = 8266;//修改为你建立的Server服务端的端口号void setup()
{pinMode(LED_BUILTIN, OUTPUT);Serial.begin(115200);delay(10);Serial.println();Serial.println();Serial.print("Connecting to ");//写几句提示Serial.println(ssid);WiFi.begin(ssid, password);while (WiFi.status() != WL_CONNECTED)//WiFi.status() ,这个函数是wifi连接状态,返回wifi链接状态//这里就不一一赘述它返回的数据了,有兴趣的到ESP8266WiFi.cpp中查看{delay(500);Serial.print(".");}//如果没有连通向串口发送.....Serial.println("");Serial.println("WiFi connected");Serial.println("IP address: ");Serial.println(WiFi.localIP());//WiFi.localIP()返回8266获得的ip地址
}void loop()
{while (!client.connected())//几个非连接的异常处理{if (!client.connect(host, tcpPort)){Serial.println("connection....");//client.stop();delay(500);}}while (client.available())//available()同ARDUINO,不解释了{char val = client.read();//read()同arduinoif (val == 'a') { //pc端发送a和b来控制digitalWrite(LED_BUILTIN, HIGH);client.write("已关灯");}if (val == 'b'){digitalWrite(LED_BUILTIN, LOW);client.write("已开灯");}}
}

四.程序烧录至esp8266
使用usb线连接好esp8266模块,并连接PC。
这里注意确保数据线是支持数据传输的,有的线只是充电。
连接上后可在Arduino IDE的工具——>端口看到已连接的端口号。
点击烧录
点击上图划√按钮即可开始烧录,等待烧录成功。
五.使用APP控制模块led灯
APP安装好后,打开你的手机热点,你的热点名称即上述代码中的WIFI_NAME ,你的热点密码即上述代码中的WIFI_PASSWORD。
app
设置好IP与代码中一致,TCP端口一致。将最顶部滑块划至打开模式,即可使得esp8266自动连接上你的手机热点,这时你可以通过收发模式发送字符a关闭模块上的灯,或者b打开。也可以设置按钮模式控制。

这篇关于ESP8266WiFi模块实现手机APP控制LED灯(Arduino入门小项目)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/360239

相关文章

React 记忆缓存的三种方法实现

《React记忆缓存的三种方法实现》本文主要介绍了React记忆缓存的三种方法实现,包含React.memo、useMemo、useCallback,用于避免不必要的组件重渲染和计算,感兴趣的可以... 目录1. React.memo2. useMemo3. useCallback使用场景与注意事项在 Re

Nginx实现端口映射的示例代码

《Nginx实现端口映射的示例代码》本文主要介绍了Nginx实现端口映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 找到nginx的部署路径2. 备份原来的配置文件3. 编辑nginx.conf文件4. 在

Java StringBuilder 实现原理全攻略

《JavaStringBuilder实现原理全攻略》StringBuilder是Java提供的可变字符序列类,位于java.lang包中,专门用于高效处理字符串的拼接和修改操作,本文给大家介绍Ja... 目录一、StringBuilder 基本概述核心特性二、StringBuilder 核心实现2.1 内部

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

SpringBoot AspectJ切面配合自定义注解实现权限校验的示例详解

《SpringBootAspectJ切面配合自定义注解实现权限校验的示例详解》本文章介绍了如何通过创建自定义的权限校验注解,配合AspectJ切面拦截注解实现权限校验,本文结合实例代码给大家介绍的非... 目录1. 创建权限校验注解2. 创建ASPectJ切面拦截注解校验权限3. 用法示例A. 参考文章本文

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很