精典Arduino入门小项目-手机APP控制LED灯

本文主要介绍了一个典型的Arduino入门小项目-手机APP控制LED灯,包括需要的硬件、软件(提供下载地址),源码,只需根据教程操作,就能做出一个完整项目!

一.项目所需硬件

一张ESP8266WIFI模块(某宝买很便宜) 精典Arduino入门小项目-手机APP控制LED灯

ESP8266串口无线WIFI模块NodeMCU Lua V3物联网开发板8266-01/01S
【推荐理由】赠运费险,淘宝月销量第一
【现价】7.8

【立即购买】

一根支持数据传输的安卓数据线

一台PC

二.项目所需软件

1.Arduino IDE 开发软件

下载地址

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()同arduino
    if (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。

精典Arduino入门小项目-手机APP控制LED灯 设置好IP与代码中一致,TCP端口一致。

将最顶部滑块划至打开模式,即可使得esp8266自动连接上你的手机热点,这时你可以通过收发模式发送字符a关闭模块上的灯,或者b打开。也可以设置按钮模式控制。

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/11701.html

(0)
江山如画的头像江山如画管理团队
赞!1条语句快速将python程序打包成可执行文件
上一篇 2023年2月3日 上午8:22
精!如何在IDEA中导入myeclipse项目、配置并运行(实例演示)
下一篇 2023年2月3日 上午9:06

99%的人还看了以下文章

  • 第二课:Maven的下载安装及环境变量配置

    第二课:Maven的下载安装及环境变量配置第二课:Maven的下载安装及环境变量配置第二课:Maven的下载安装及环境变量配置第二课:Maven的下载安装及环境变量配置

    一、Maven的下载 下载地址:http://maven.apache.org/download.cgi 下载完成后,得到一个压缩包apache-maven-***-bin.zip,解压,可以看到maven的组成目录 Maven目录分析 bin:含有mvn运行的脚本 boot:含有plexus-classworlds类加载器框架 conf:含有setting…

    2023年1月27日 编程开发
    7.9K0
  • python 中time.gmtime()与localtime()的区别

    gmtime转换的时间是UTL时间,与北京时间相差了8个小时 import time print(time.time()) print(time.strftime(“%Y-%m-%d 星期%w %H:%M:%S”,time.localtime())) print(time.strftime(“%Y-%m-%d 星期%w %H:%M:%S”,time.gmti…

    2022年7月15日
    10.2K0
  • 最清楚的过拟合(Overfitting)、欠拟合讲解

    问题的产生 当我们构建模型时,总会希望假设空间参数尽可能多,系统越复杂,拟合得越好嘛!我们还希望我们的优化算法能使我们的模型产生的损失函数的值尽可能小(即我们的假设空间能够贴合每一个训练样本点)。但这样真的好吗?奥卡姆剃刀貌似又胜利了。然而假设我们的模型达成了上述的情况,有很大概率产生一个ML界非常令人头疼的一件事:过拟合(Overfitting)。 欠拟合…

    2022年9月21日
    11.9K0
  • JSP实现网站计数器—javabean

    jsp javabean实例,制作简单网站计数器。此实例在于学习javabean的使用。

    编程开发 2020年2月11日
    10.0K0
  • java中类、接口、方法、变量命名时的大小写问题

    类或者接口 一个单词:首字母大写 举例:Student,Demo 多个单词:每个单词首字母大写 举例:HelloWorld,StudentName 方法或者变量 一个单词:首字母小写 举例:name,main 多个单词:从第二个单词开始,每个单词首字母大写 举例:studentAge,showAllNames() 常量 全部大写 一个单词:大写 举例:PI …

    2020年11月15日
    4.1K0
  • jsp写mysql数据库出现中文乱码

    今天用jsp做个图片书管理系统,向mysql数据库中存中文的时候显示乱码,如图书名: web???? 修改页面是http://localhost:8080/library/book?action=bookModifyQuery&ID=14 根据中文乱码的处理方法: 表单method方式为post或get中文乱码的解决方法 jsp:include包含h…

    2020年8月22日
    5.2K0

发表回复

登录后才能评论