I-002 智能家居系列--ESP8266环境搭建

2023-05-16

智能家居系列

  • 1 NodeMCU简介
  • 2 硬件介绍
  • 3 开发工具的选择
    • 3.1 软件介绍
    • 3.2 环境搭建
  • 4 测试代码
  • 5 后续会更新这边文章

1 NodeMCU简介

NodeMCU简介. NodeMCU ,是一个开源的 物联网 平台。. 它使用 Lua 脚本语言编程。. 该平台基于eLua开源项目,底层使用ESP8266 sdk 0.9.5版本。该平台使用了很多开源项目, 例如 lua-cjson, spiffs. NodeMCU包含了可以运行在esp8266 Wi-Fi SoC 芯片之上的固件,以及基于ESP-12模组的硬件。

2 硬件介绍

在这里插入图片描述
ESP8266芯片有17个GPIO引脚(GPIO0~GPIO16)。这些引脚中的GPIO6~GPIO 11被用于连接开发板的闪存(Flash Memory)。如果在实验电路中使用GPIO6~GPIO11,NodeMCU开发板将无法正常工作。因此建议您不要使用GPIO6~GPIO11。
特殊引脚说明:

引脚说明
GPIO 2在NodeMCU开发板启动时是不能连接低电平的
GPIO 15引脚在开发板运行中一直保持低电平状态。因此请不要使用GPIO15引脚来读取开关状态或进行I²C通讯
GPIO 0在开发板运行中需要一直保持高电平状态。否则ESP8266将进入程序上传工作模式也就无法正常工作了。您无需对GPIO 0 引脚进行额外操作,因为NodeMCU的内置电路可以确保GPIO 0 引脚在工作时连接高电平而在上传程序时连接低电平。

3 开发工具的选择

Node MCU的可以使用多种语言进行开发:

  • Lua语言
  • Python
  • C语言
    本次开发我们使用C语言,使用的开发工具为Arduino IDE,这种开发工具简单好用,且资料较多,且后续的开发我们可能会使用到Arduino开发板。
    在这里插入图片描述

3.1 软件介绍

界面大致分为四个部分:

  • 菜单栏:包含文件菜单、编辑菜单、程序菜单、工具菜单和帮助菜单;
  • 工具栏:包含编译、上传、新建程序(sketch)、打开程序(sketch)、保存程序(sketch)和串口监视器(Serial Monitor);
  • 编辑区:程序代码编写区域;
  • 状态区:显示程序编译和上传等信息。

3.2 环境搭建

1. 安装开发板编译器:打开arduino IDE —> 文件—>首选项
在这里插入图片描述
2.打开首选项,选择 附加开发板管理器网址, 添加第三方开发板管理器网址:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

在这里插入图片描述
3. Arduino IDE中,点击工具–>开发板–>开发板管理器
在这里插入图片描述
如果在配置时未发现需要的选项,请将软件重启。
4.打开开发板管理器,搜索"esp8266",点击安装
在这里插入图片描述
器件包一般都会安装失败:下载这个软件,直接双击安装即可。
5.将ESP8266插入电脑USB接口。
在这里插入图片描述
6.Arduino中选择工具–>开发板—>NodeMCU1.0
在这里插入图片描述
7.选择ESP8266连接的串口端口,可以查看自己设备管理器中具体连接的串口端口号
在这里插入图片描述

4 测试代码

/*
 *  本实验将教你如何将板子设定成HTTP服务器
 *  本服务器会依照接收到的信息去改变*引脚
 *  http://server_ip/gpio/0 会将脚位变成 低电压
 *  http://server_ip/gpio/1 会将脚位变成 高电压
 *  本服务器的ip会在序列号中显示
 */
 
#include<ESP8266WiFi.h>
 
const char* ssid = "******";    //这里输入你家的WiFi名称
const char* password = "******";   //这里输入你家的WiFi密码
 
WiFiServer server(80);  //开启此板子的port80
 
//#define GPIO2 2   
 
void setup() {
  Serial.begin(115200);  //开启电脑的串口号,速度设为115200
  delay(10);
 
  pinMode(2,OUTPUT);      //将引脚2设为输出,就是板子上面D4的脚位
  digitalWrite(2,0);      //先将这引脚设为低电压
 
  //接下来板子开始要连线到你家的路由器了
  Serial.println();  //打印空格
  Serial.println();  //打印空格
  Serial.println("Connecting to ");  //打印连接到你家
  Serial.println(ssid); 
 
  WiFi.begin(ssid,password);  //使用你家的WiFi和密码开始连接路由器
 
  while(WiFi.status() != WL_CONNECTED){   //这是个无限循环,还没连线成功时会一直跳出点点
    delay(500);
    Serial.print(".");
  }
 
  Serial.println("");// 连线成功之后会在这里,跳出连线成功
  Serial.println("WiFi connected");
 
  server.begin();  //服务器启动
  Serial.println("Server started");
 
  Serial.println(WiFi.localIP());  //列出此服务器被分配到的网络IP
}
 
void loop() {
  //确定是否连线中,不是的话就跳出去
    WiFiClient client = server.available();
  if(!client){
      return;
    }
//等待传到这个服务器的信息,一直等一直等
Serial.println("new client");
while(!client.available()){
    delay(1);
  }
 
// 收到传过来的信息之后,将收到的信息存入req
String req = client.readStringUntil('\r');
Serial.println(req);   // 打印收到的信息
client.flush();  
 
 
//开始比对收到的信息来决定作什么事
int val;
if (req.indexOf("/gpio/0") != -1)   //如果收到/gpio/0
  val = 0;
else if (req.indexOf("/gpio/1") != -1)   //如果收到/gpio/1
  val = 1;
else{
    Serial.println("invalid request");
    client.stop();
    return;
}
 
digitalWrite(2,val);   //依照收到的信息改变灯的亮暗
 
client.flush();
 
 
 // Prepare the response
  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";
  s += (val)?"high":"low";
  s += "</html>\n";
 
  // Send the response to the client
  client.print(s);
  delay(1);
  Serial.println("Client disonnected");
}

5 后续会更新这边文章

欢迎一起讨论技术问题,求关注!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

I-002 智能家居系列--ESP8266环境搭建 的相关文章

  • C++ day37 标准模板库STL初识

    文章目录 简介是什么 xff1a 容器类模板 xff0c 迭代器类模板 xff0c 函数对象模板 xff0c 算法模板的集合STL不是面向对象编程 xff0c 而是泛型编程 xff01 历史 xff1a 1994年发布 模板类vector示
  • STM32烧录 Error:Flash Download Failed-“Cortex-M3“ 解决方案—ST-Link调试

    STM32烧录 Error Flash Download Failed 34 Cortex M3 34 解决方案 ST Link调试 开发环境介绍设置步骤1 于Device中选择与你的开发板相匹配的芯片 xff0c 一般主芯片上都有标注2
  • SQL (十四)插入数据(insert语句,把数据插入表中)

    文章目录 插入完整的行 xff1a values子句不安全写法安全写法 xff1a 在表名后的括号明确给出列名小结 插入行的一部分 xff1a 简单插入某些查询的结果 xff08 即检索出的数据 xff09 xff1a insert sel
  • 模2除法(CRC冗余码计算)和二进制/十进制除法

    文章目录 CRC循环冗余检验 xff1a 余数为0就没出错 xff1b 不能确定哪几个比特出错了二进制除法 xff08 和十进制除法其实一样 xff01 xff09 模2除法 xff08 不同于二进制除法 xff01 本质就是异或而已 xf
  • latex超链接Argument of \Hy@setref@link has an extra }.错误解决

    用了 usepackage url 来在文章中写了超链接 xff0c 如 url https www baidu com 但是直接编译后没有颜色 xff0c 就是黑色的 xff0c 参考文献也是黑色的 加入下面两句代码可以让超链接显示出颜色
  • 希捷移动硬盘更换文件系统(exfat vs NTFS)

    毕业资料多 xff0c 专门买了个移动硬盘 xff0c 希捷的 2T 第一次买移动硬盘 xff0c 以为和常规U盘一样 xff0c 买来没仔细看说明书就直接用上了 xff0c 但是使用过程中老出问题 xff0c 比如从featurize平台
  • LPWAN——Sigfox实战经验介绍

    0 序 最近半年的时间一直在从事这方面的开发工作 xff0c 到目前为止对于Sigfox有一定想法和经验 xff0c 同时目前国内对于该技术的使用和应用还处在刚刚起步的阶段 xff0c 很多博客对Sigfox的讲解是一个浅尝辄止的介绍 xf
  • 拉格朗日乘子法详解(Lagrange multiplier)

    最近在视频的变换编码里推导最优变换 xff08 KL变换 xff09 时需要用拉格朗日乘子法 xff0c 之前在机器学习的各种优化问题里也要用到这个方法 xff0c 特此仔细钻研一番 xff0c 总结如下 xff1a 注 xff1a 这篇博
  • MATLAB求解规划问题(线性规划, 整数规划, 非线性规划)

    文章目录 基础知识规划问题的数学模型的三个要素解 线性规划Linear Programing理论示例 整数规划理论示例 非线性规划理论示例 生产实践中 xff0c 经常会遇到很多资源分配的问题 xff0c 如何分配各种资源以获得最大经济效益
  • matlab画三维图像(plot3,mesh,surf)

    二维函数的图像必须用三维坐标系画 xff0c 很多函数的图像长得很好看 xff0c 很有意思 会可视化也会有利于我们理解更深刻 xff08 1 xff09 plot3 三维曲线图 在网上看到这图觉得挺好看 xff1a t 61 0 pi 3
  • 智能小车学习笔记

    教程 视频教程 xff1b 资源网站 xff1b 可以获取模块的基础资料 xff1b 有刷电机有损耗 电机选型考虑 xff1a 转速和额定电压 xff1b 电机的力矩 xff0c 减速电机减速箱的作用 xff1a 减速 增大力矩 xff08
  • C++ 容器详解

    顺序容器vectorlistdequestackqueuepriority queue 关联容器mapmultimapsetmultiset 无序容器容器的互相比较迭代器 顺序容器 顺序容器类型特点vector可变大小数组支持快速随机访问
  • Cmake入门&运行保存C/C++文件

    Cmake入门 amp 运行保存C C 43 43 文件 在ubuntu创建 保存 运行c 43 43 文件CMake入门创建文件编译 参考 最近在学习Intel realsense T265双目视觉 xff0c 其中一步需要创建源文件ma
  • NVIDIA Jetson TX2 上手指南

    文章目录 一个性能强大的边缘设备我和 NVIDIA Jetson TX2 的初体验Fresh Your TX2为什么在第一步取消Host Machine可能遇到的问题 用上最好的性能 xff0c 小风扇跳舞吧 xff5e xff5e 运行一
  • extern "C"的作用以及为什么要使用extern "C"

    实现c 43 43 代码能够调用其他c语言代码 xff0c 加上extern 34 C 34 后 xff0c 这部分代码编译器以c语言的方式进行编译和链接 xff0c 而不是按c 43 43 方式原因 xff1a c和c 43 43 对同一
  • 什么是链表?(图解)

    一 xff1a 链表是什么 1 链表是物理存储单元上非连续的 非顺序的存储结构 xff0c 数据元素的逻辑顺序是通过链表的指针地址实现 xff0c 有一系列结点 xff08 地址 xff09 组成 xff0c 结点可动态的生成 2 结点包括
  • C++ STL各个容器的区别

    1 STL容器分类 xff1a STL的容器可以分为以下几个大类 一 顺序 xff08 序列 xff09 容器 xff0c 有vector list deque string stack 适配器类 queue 适配器类 priority q
  • Bat脚本-编译及烧录keil-MDK工程

    目录 概述背景需求需求分析需求实现实现功能使用示例1 修改脚本中的编译软件路径2 将脚本的文件路径加入系统的环境变量3 通过Vscode 进行调用 可进一步优化的方向总结 概述 本文主要讲述的是一个关于调用keil MDK的软件编译对应单片
  • ubuntu部署http服务器

    一 安装apache2 sudo apt install y apache2 二 配置环境 默认是80端口 xff0c 防止冲突自定义端口 xff1a 8001 1 修改 etc apache2 ports conf文件j监听端口 List
  • c/c++math.h标准库

    math h数学函数 这个库中所有可用的函数取double参数并返回double的结果 abs 绝对值 acos 反余弦 acosh 反双曲余弦 asin 反正弦 asinh 反双曲正弦 atan2 两个参数的反正切 atan 反正切 at

随机推荐

  • Linux Simulink打不开——unable to run the MATLABWindow application on Linux

    Linux Simulink打不开 unable to run the MATLABWindow application on Linux 解决办法 xff1a 解决办法 xff1a 参考网页 xff1a https www mathwor
  • RTX移植STM32F103,超详细~

    目录 RTX移植前言移植1 创建工程2 配置工程3 添加LED文件4 编写测试代码5 编译烧录 RTX移植 往期回顾 为什么需要RTOS 前言 keil RTX是一款应用广泛的嵌入式RTOS xff0c 具体可见官网 为什么需要RTOS x
  • 基于28035的ePWM触发ADC采样设计

    目录 前言实验目的实验要求硬件电路实验步骤代码解释实验结果总结体会 前言 玖道最近在做一个开关电源项目 xff0c 需要用到TI 的TMS320F28035 芯片 xff0c 实现控制电路的设计 简单来说就是利用28035采集信号量 xff
  • 浅析DSP28035的看门狗模块

    目录 背景工作原理结构与寄存器代码实验结果总结 背景 嵌入式系统通常会使用DSP来实现控制功能 xff0c 比如开关电源的数字控制 试想如果DSP中程序出现Bug 崩溃 跑飞了怎么办 xff1f 如果不及时处理 xff0c 这对整个嵌入式系
  • 浅析TMS320F28035的GPIO模块

    目录 GPIO简介硬件电路软件代码总结 通用输入输出端口 General Purpose Input Output GPIO 几乎是学习包括DSP xff0c 单片机在内的微处理器的第一步 GPIO的功能包括基本的输入 xff0c 输出 x
  • Ubuntu 20.04下配置 HAL 汇编开发环境教程

    目录 安装解压配置环境变量测试 案例 安装 环境 xff1a Ubuntu 20 04 安装包 xff1a linux64 hla tar gz 这里安装的是64位的 xff0c 具体与linux hla tar gz有什么不同 xff0c
  • 为什么单片机需要时钟系统,时钟信号在单片机中扮演怎样的角色?

    现在想想 xff0c 我自学单片机都快一年了 我自学过8051 msp430和STM32 xff0c 做一些基本的小项目 xff0c 参加过2018年江苏省电子设计大赛 xff0c 还获得了一等奖 我懂 xff0c 也不懂单片机 不懂就要去
  • Spring Security OAuth2.0认证授权学习与使用~(更新中)

    Spring Security OAuth2 0认证授权学习与使用 1 1 什么是认证1 1 1 系统为什么要认证 xff1f 1 1 2 认证 1 2 什么是会话 xff1f 1 2 1 会话1 2 2 基于Session的认证方式如下图
  • Altium中PCB上走线镀锡的方法

    Altium中PCB上走线镀锡的方法 PCB设计时 有时候需要在不增加PCB走线宽度的情况下提高该走线通过大电流的能力 载流能力 通常的方法是给该导线镀锡 或者上锡 下面以在PCB顶层走线镀锡为例 使用AD09软件 简单介绍如何走线上锡处理
  • Arduino成长日记2 - Arduino编程基础

    上一篇讲述了什么是Arduino以及各类Arduino开发板的参数 xff0c 本篇开始介绍开发环境搭建以及一些编程基础 Arduino开发环境 开发环境即Arduino项目的编程环境 Arduino IDE xff0c Arduino集成
  • 通过QGC应用TFmini Plus

    TFmini QGC中所需设置参数 xff1a EKF2 RNG AID enable EKF2 RNG MODE Range sensor SENS TFMINI CFG TELEM SERIAL 4 最后一个参数如何确定是哪一通道 xf
  • C语言格式化字符串漏洞实验

    格式化字符串漏洞实验 在线实验环境 xff1a 格式化字符串漏洞实验 文章转载自 xff1a https github com shiyanlou seedlab blob master formatstring md 一 实验描述 格式化
  • C语言Socket编程(TCP与UDP)

    C语言Socket编程 xff08 TCP与UDP xff09 UDP xff1a span class token comment udp server c span span class token macro property spa
  • ubuntu 换源深层次解析

    换源也是一个容易出错的问题 xff0c 本文以树莓派为例展开 xff0c x86也是一样的操作 那么假设成立的话 xff0c 就要记住我们是在树莓派 xff08 arm xff09 上安装的ubuntu xff0c 不是X86 xff0c
  • 1运动规划概述

    Motion planning autonomous robot 总结一下什么是自主机器人 xff1a 首先我们需要状态估计 xff08 定位 xff09 xff1b 基于此 xff0c 利用传感器融合人建立一个周围环境的三维地图 xff1
  • 5轨迹生成

    文章目录 Introduction全局与局部方法全局与局部对比 轨迹生成T xff08 what xff09 为什么需要平滑轨迹呢Y why W how 微分平坦 xff08 Differential Flatness xff09 TQua
  • java--通过JNI调用动态链接库(dll、so、dylib)

    公司项目需要用到第三方qt插件 xff0c 由于业务是偏底层的 xff0c 基本上用不到jar包 xff0c 因此只能通过jni的方式调用 没学过c 43 43 xff0c 十多天的摸爬滚打一路过来不容易啊 xff01 今天总算跑通了 网上
  • 在头文件实现函数的重定义问题

    例如一个头文件headfile h这样写 pragma once bool Func return true 在这个头文件被多个地方包含的时候就会出问题 xff0c 链接时报错 FuncB报重定义 fatal error LNK1169 找
  • 数字电路基础知识系列(六)之LC滤波器的基础知识

    针对设计过程的问题 xff0c 如有疑问 xff0c 欢迎留言讨论 xff01 点我返回目录 LC滤波器 xff0c 是指将电感 L 与电容器 进行组合设计构成的滤波电路 xff0c 可去除或通过特定频率的无源器件 电容器具有隔直流通交流
  • I-002 智能家居系列--ESP8266环境搭建

    智能家居系列 1 NodeMCU简介2 硬件介绍3 开发工具的选择3 1 软件介绍3 2 环境搭建 4 测试代码5 后续会更新这边文章 1 NodeMCU简介 NodeMCU简介 NodeMCU 是一个开源的 物联网 平台 它使用 Lua