精典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%的人还看了以下文章

  • Double.valueOf(r).doubleValue();是什么意思

    在一段代码中看到Double.valueOf(“2020”).doubleValue(),先出现了Double.valueOf(),又用了doubleValue(),有点迷惑,为什么这么用呢? <% String s=request.getParameter(“radius”); double r; if(s!=null) {r…

    2019年9月5日
    18.7K0
  • 19个常用SQL数据库命令(函数、运算符)讲解

    讲解了19个常用的sql语句!

    2023年1月29日
    9.8K0
  • idea不识别@webServlet注解,javax.servlet.htttp 找不到的解决方法

    idea不识别@webServlet注解,javax.servlet.htttp 找不到的解决方法idea不识别@webServlet注解,javax.servlet.htttp 找不到的解决方法idea不识别@webServlet注解,javax.servlet.htttp 找不到的解决方法idea不识别@webServlet注解,javax.servlet.htttp 找不到的解决方法

    在servlet3.0以后,web.xml中对Servlet配置,可以通过@WebServlet注解配置.下面是@WebServlet的属性列表: 属性名 类型 描述 name String 指定Servlet 的 name 属性,等价于 <servlet-name>。如果没有显式指定,则该 Servlet 的取值即为类的全限定名。 value …

    2020年8月22日 • 编程开发
    20.3K0
  • python 初学者练手上机实操一

    一、从键盘输入商品名称、商品的单价、商品的数量, 计算商品总价,并按如下格式输出: 商品名称:牛奶,单价:5元,数量:2件,总价:10元 二、从键盘输入年龄,如果>=18岁显示“已成年”,否则显示“未成年”。 三、输入三条边长,如果能构成三角形就计算周长并显示,否则显示“不能构成三角形”。 四、百分制成绩转换为等级制成绩。 要求:如果输入的成绩在90分…

    2023年4月7日
    8.9K0
  • 单元测试经验总结,单元测试快速入门教程六

    测试人员在进行测试的工作过程中,应该注意积累测试工作经验,这样可以缩短单元测试的时间,提高测试效果和效率。 如: 1.在做单元测试的过程中,要灵活选用测试用例设计技术,可以首先使用黑盒测试用例设计技术,然后根据相应的覆盖率统计再补充白盒测试用例。这样既减少了测试工作的重复,又保证了单元测试的完整性。 2.设计驱动程序时,要保证测试逻辑的正确性。否则,即使代码…

    2018年4月18日
    4.3K0
  • 单元测试工具JUnit介绍及使用,单元测试快速入门教程五

    单元测试工具JUnit介绍及使用,单元测试快速入门教程五单元测试工具JUnit介绍及使用,单元测试快速入门教程五单元测试工具JUnit介绍及使用,单元测试快速入门教程五单元测试工具JUnit介绍及使用,单元测试快速入门教程五

    JUnit是一个开放源代码的测试框架,用在编写和运行可重复的测试脚本之上,是用于Java语言编写的面向对象程序的单元测试工具。JUnit框架功能强大,目前已经成为Java单元测试的事实标准,基本上能满足日常的测试要求。 1.Junit主要特性 (1)可以将测试代码和产品代码分别开发,便于管理。 (2)针对某一个类的测试代码,以较少的改动便可以应用    另一…

    2018年4月18日 • 编程开发
    14.9K0

发表回复

登录后才能评论