一.所需器件:1.USB TO TTL 2.LED灯 3.面包板 4.连接线 5.电脑

二.配置Arduino IDE环境

1.安装ESP8266开发板软件包
使用1.6.4及以上版本的Arduino, 打开Arduino IDE,打开 文件->首选项 在 附加开发板管理器网址 一栏写入: http://arduino.esp8266.com/stable/package_esp8266com_index.json添加完以后点击 
做完这步以后重启Arduino IDE,然后依次点击 工具->开发板->开发板管理器 打开后在搜索框输入esp,然后能找到类似'esp8266 by ESP8266 Community',点击并安装。
安装完后重启Arduino IDE,然后依次点击 工具->开发板->Generic ESP8266 Module,接着按照下面的信息在工具栏找到对应项进行配置

  • Flash Mode: DIO
  • Flash Frequency: 40 MHz
  • Upload Using: Serial
  • CPU Frequency: 80 MHz
  • Flash Size: 4M (1M SPIFFS)
  • Upload Speed: 115200
  • Port: 对应的USB 端口 (当你一将Arduino连接电脑时,在设备管理器中会冒出端口号)
  • Programmer: AVRISP mkll

其他的设置就按照默认的选择不变

2.安装ArduinoJSON库
在我们的HTML网页中将使用到json数据,所以我们需要添加ArduinoJson库到我们的Arduino IDE中。打开 项目->加载库->管理库 在搜索框输入json,可能会得到类似 'ArduinoJSON by Benolt Blanchon' 点击它并安装,如果安装出现问题,可以访问如下链接: installing ArduinoJson library 在这步设置以后,你可以通过 #include<ArduinoJson.h> 在项目中添加库 了

三.配置HTML网页程序

在自己电脑上新建一个web project,例如工程名起为wifiarduino,里面放一个light.json文件,内容为{"light":"off"},然后放到tomcat中发布,然后就能通过在浏览器端输入http://localhost/wifiarduino/light.json查看到了。

四.连线

ESP8266                 USB TO TTL

  • VCC                      3.3 V
  • GND                     GND
  • CH_PD                 3.3 V
  • TX                         TX
  • RX                         RX
  • GPIO2                   3.3 V
  • GPIO0                   GND

将ESP8266设定为FLASH(烧写)模式:当GPIO0(上图紫色线)接地线时,ESP8266是以bootloader模式(编程模式)启动的,这也就是你可以烧写ESP8266的时候。在Arduino代码加载完毕时,你将看到Arduino IDE底部提示“上传结束”的信息,然后代码就会开始运行了。
程序上传结束后,将紫色线移除:当你不想将ESP8266一直设定为烧写模式时,将紫色线移除即可,程序将会一直在ESP8266上执行。

五.编写Arduino代码

#include <ESP8266WiFi.h>
#include <ArduinoJson.h>
const char* ssid     = "mywifi"; //修改成你可访问的wifi名称
const char* password = "mywifipassword";  // 修改成wifi密码
const char* host     = "192.168.1.10"; // 你的网点域名或IP 
String path          = "/wifiarduino/light.json"; // 文件路径
const int pin        = 2;
void setup() {
    pinMode(pin, OUTPUT);
    pinMode(pin, HIGH);
    Serial.begin(115200);
  delay(10);
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  int wifi_ctr = 0;
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("WiFi connected");
    Serial.println("IP address: " + WiFi.localIP());
}
void loop() {
    Serial.print("connecting to ");
  Serial.println(host);
  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    Serial.println("connection failed");
    return;
  }
  client.print(String("GET ") + path + " HTTP/1.1\r\n" +               "Host: " + host + "\r\n" +                "Connection: keep-alive\r\n\r\n");
  delay(500); // wait for server to respond
  // read response  
String section="header";
  while(client.available()){
    String line = client.readStringUntil('\r');
    // Serial.print(line);    // we’ll parse the HTML body here
    if (section=="header") { // headers..
      Serial.print(".");
      if (line=="\n") { // skips the empty space at the beginning
         section="json";
      }
    }
    else if (section=="json") {  // print the good stuff
      section="ignore";
      String result = line.substring(1);      // Parse JSON
      int size = result.length() + 1;
      char json[size];
      result.toCharArray(json, size);
     StaticJsonDocument<200> jsonDocument;
      deserializeJson(jsonDocument, json);
      auto error = deserializeJson(jsonDocument, json);
      if (error)
      {
        Serial.println("parseObject() failed");
        return;
      }
      // Make the decision to turn off or on the LED
      if (strcmp(jsonDocument["light"], "on") == 0) {
        digitalWrite(pin, HIGH);
         Serial.println("LED ON");
      }
      else {
        digitalWrite(pin, LOW);
        Serial.println("led off");
      }
    }
  }
  Serial.print("closing connection. ");
}

五.打开Arduino IDE中 工具->串口监视器,并将右下角的波特率设定为115200,然后它将会显示你是否连上了WiFi,如果你看到ESP8266上有红灯亮起,且有蓝灯闪烁时,说明你的无线模块准备完毕。

使用ESP8266模块在WIFI下通过网页远程控制LED开关相关推荐

  1. 基于Android studio设计的APP通过esp8266在AP模式下控制STM32单片机LED灯

    一.单片机硬件:mini板f103rct6. 显示屏TFT2.8寸.wifi模块esp8266(正点原子旗舰店购买) 关键代码: 模块AT指令配置进入ap模式: 相应的指令执行: 软件Android ...

  2. stm32f103c8t6+esp8266在WiFi下通过手机控制外设

    stm32f103c8t6+esp8266在WiFi下通过手机控制外设 前言 准备材料 实验目的 实验效果 代码 主函数 对esp8266初始化 总结 代码 前言 通过上一篇,介绍了esp8266的基 ...

  3. arduino+ESP8266模块使用AT指令设置wifi

    原文链接:https://dsx2016.com/?p=1510 公众号:大师兄2016 前言 本文使用ESP8266模块结合arduino设置wifi通信 设备 ESP8066-01模块 ESP82 ...

  4. android+app+wifi+控制+协议,玩转OneNET物联网平台之MQTT服务④ —— 远程控制LED(数量无限制)+ Android App控制...

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.但愿你们分享给你周边须要的朋友或者同窗,说不定大神成长之路有博哥的奠定石...android 若是以为有用,麻烦点赞收藏,您的 ...

  5. 第二篇 在Arduino IED环境下测试ESP8266模块与外网通信

    这是通过使用ESP8266模块实现Android客户端控制Arduino板载LED闪烁的第二篇 如果你还没搭建起来编译环境请阅读第一篇相关操作 因为最近工作忙到要死,拖了一周才有空来继续写完,还请见谅 ...

  6. 使用ESP-8266模块做一个便携式WIFI杀手

    使用ESP-8266模块做一个便携式WIFI杀手 如何用esp8266做个wifi干扰器 声明:此教程仅用于测试和自己玩,请勿用于非法用途,否则后果自负. 其实关于esp8266网上有许多教程,好多前 ...

  7. 【瑞萨RA_FSP】WiFi——ESP8266模块通讯

    文章目录 一.Wifi模块简介 二.ESP8266功能介绍 1. 通用输入/输出接口(GPIO) 2. 使用UART与WIFI通讯 3. ESP8266工作模式介绍 三.AT指令 四.实验:STA模式 ...

  8. 利用ESP8266模块制作便携WiFi杀手进行deauth攻击

    起因是这样的: 前几天突然想起以前玩过的kali攻击WiFi,用的是aircrack-ng一套工具,然后又对WiFi的攻击起了三分钟热情.但是突然想起kali虚拟机必须要外置网卡才能挂载,自己做的u盘 ...

  9. ESP8266的Web配网以及强制门户的实现(连接wifi自动打开网页)

    目录 前言 Web配网详解 强制门户详解 完整代码 实验效果 前言 1.Web配网概述 在应用到esp8266的场景,往往与wifi是离不开的,但用户的wifi账号密码又无从知晓,于是乎有了配网. 目 ...

  10. 【沧海拾昧】WiFi串口通信ESP8266模块基本介绍(附野火WiFi透传实例)

    #C0104 沧海茫茫千钟粟,且拾吾昧一微尘 --<沧海拾昧集>@CuPhoenix [阅前敬告] 沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系 [如有问题必是本集记录有谬 ...

最新文章

  1. Android 从 Android 本地图库选择多个图片
  2. 20个顶尖产品经理都在用的APP
  3. 工作日志——k8s pvpvc
  4. hls fifo_【正点原子FPGA连载】第一章HLS简介--领航者ZYNQ之HLS 开发指南
  5. 获取script内html元素,Python从scripthtml标记内部获取数据值
  6. 【图像超分辨率】基于ResNet或GAN的遥感图像超分辨率论文
  7. WAMP PHP开发环境
  8. 颜宁:女性科学家如何更好的搞科研?
  9. java速成 转载lvsi
  10. [2019IEEE Transactions on Cybernetics ] Asymptotic Soft Filter Pruning for Deep Convolutional Neural
  11. amr转换成mp3 java_微信开发-将amr格式转换为mp3格式
  12. 星星之火-26:3G CDMA系统中单用户的扩频原理
  13. java mars2_Mars-java 2.1.5 发布
  14. Ps怎么做火焰字 PS火焰字制作图文教程
  15. 游戏服务器没有响应怎么回事,求助!!!为什么我进不了游戏!!!
  16. 20个非常有用的Python单行代码
  17. 元素周期表的118个化学元素
  18. sp经营许可证适用范围是什么?
  19. 环信群列表 php,一行代码实现群聊头像(用环信仿微信群聊头像)
  20. lumen时间不准确,少8个小时

热门文章

  1. Webcat 数据库管理工具
  2. 多种语言打印Hello World
  3. FastFDS 分布式文件系统
  4. 一些收藏默认网站后缀
  5. SQLServer示例数据库AdventureWorks下载地址
  6. Win7启动慢,元凶竟是闲置eSATA接口,快下补丁
  7. 时间序列平稳性的判断
  8. 【组合数学】 放小球之隔板法
  9. 计算机毕业设计JAVA鸿鹄教育培训mybatis+源码+调试部署+系统+数据库+lw
  10. UE4开发六:人物动画