【雕爷学编程】Arduino动手做(172)---WeMos D1开发板模块4

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十二:升级版 WeMos D1 R2 WiFi UNO 开发板 基于ESP8266

在这里插入图片描述
知识点:ESP8266
低功耗、高集成度的 Wi-Fi 芯片
仅需 7 个外围元器件
超宽工作温度范围:-40°C 至 +125°C
ESP8285 - ESP8266 内封 8 Mbit Flash

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百七十二:升级版 WeMos D1 R2 WiFi UNO 开发板 基于ESP8266

项目十:Station模式下的操作实例,查询当前WiFi的IP地址

Arduino实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验一百二十五: 升级版 WeMos D1 R2 WiFi UNO 开发板 基于ESP8266项目十:Station模式下的操作实例,查询当前WiFi的IP地址
*/#include <ESP8266WiFi.h>#define AP_SSID "zhz" //这里改成你的wifi名字
#define AP_PSW  "156721"//这里改成你的wifi密码void setup() {//设置串口波特率,以便打印信息Serial.begin(9600);Serial.println("");Serial.println("ESP8266准备就绪");//启动STA模式,并连接到wifi网络WiFi.begin(AP_SSID, AP_PSW);Serial.print(String("连接到---") + AP_SSID);//判断网络状态是否连接上,没连接上就延时500ms,并且打出一个点,模拟连接过程while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}Serial.println("");Serial.print("已连接,IP地址: ");//输出station IP地址,这里的IP地址由DHCP分配Serial.println(WiFi.localIP());Serial.println("设置结束");
}void loop() {
}

项目十:Station模式下的操作实例,查询当前WiFi的IP地址

实验串口返回情况

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
WeMos D1开发板电原理图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百七十二:升级版 WeMos D1 R2 WiFi UNO 开发板 基于ESP8266

项目十一:创建一个服务器实例,在手机浏览器输入1关灯,输入0开灯

Arduino实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验一百二十五: 升级版 WeMos D1 R2 WiFi UNO 开发板 基于ESP8266项目十一:创建一个服务器实例,在手机浏览器输入1关灯,输入0开灯
*/#include <ESP8266WiFi.h>const char* ssid = "zhz";
const char* password = "567890";// 创建一个服务器实例
// 指定要监听的端口作为参数
WiFiServer server(80);void setup() {Serial.begin(115200);delay(10);// prepare GPIO2pinMode(2, OUTPUT);digitalWrite(2, 0);/* pinMode(3, OUTPUT);digitalWrite(3, 0);/*pinMode(4, OUTPUT);digitalWrite(4, 0);pinMode(5, OUTPUT);digitalWrite(5, 0);pinMode(6, OUTPUT);digitalWrite(6, 0);pinMode(7, OUTPUT);digitalWrite(7, 0);pinMode(8, OUTPUT);digitalWrite(8, 0);pinMode(9, OUTPUT);digitalWrite(9, 0);pinMode(10, OUTPUT);digitalWrite(10, 0);pinMode(11, OUTPUT);digitalWrite(11, 0);pinMode(12, OUTPUT);digitalWrite(2, 0);pinMode(13, OUTPUT);digitalWrite(13, 0);pinMode(14, OUTPUT);digitalWrite(14, 0);pinMode(15, OUTPUT);digitalWrite(15, 0);pinMode(16, OUTPUT);digitalWrite(16, 0);*/// 连接到 WiFi 网络Serial.println();Serial.println();Serial.print("Connecting to ");Serial.println(ssid);WiFi.begin(ssid, password);while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}Serial.println("");Serial.println("WiFi connected");// 启动服务器server.begin();Serial.println("Server started @ ");// 打印 IP 地址和说明Serial.println(WiFi.localIP());Serial.println("To control GPIO, open your web browser.");Serial.println("To set GPIO 0 high, type:");Serial.print(WiFi.localIP());Serial.println("/gpio/1");Serial.println("To set GPIO 0 low, type:");Serial.print(WiFi.localIP());Serial.println("/gpio/0");Serial.println("To toggle GPIO 0, type:");Serial.print(WiFi.localIP());Serial.println("/gpio/0");
}void loop() {// 检查客户端是否已连接WiFiClient client = server.available();if (!client) {delay(100);return;}// Commented out by BB as gets stuck in while loop.// Wait until the client sends some data//Serial.println("new client");//while(!client.available()){//  delay(1);//}// 读取请求的第一行String req = client.readStringUntil('\r');Serial.println(req);client.flush();// 匹配请求int val;if (req.indexOf("/gpio/1") != -1)val = 1;else if (req.indexOf("/gpio/0") != -1)val = 0;else if (req.indexOf("/gpio/4") != -1)val = (!digitalRead(0)); // <<<<< Edit: insert /gpio/3 lines after this line.else {Serial.println("invalid request");client.print("HTTP/1.1 404\r\n");client.stop();return;}// Set GPIO2 according to the requestdigitalWrite(2, val);/*digitalWrite(3, val);/* digitalWrite(4, val);digitalWrite(5, val);digitalWrite(6, val);digitalWrite(7, val);digitalWrite(8, val);digitalWrite(9, val);digitalWrite(10, val);digitalWrite(11, val);digitalWrite(12, val);digitalWrite(13, val);digitalWrite(14, val);digitalWrite(15, val);digitalWrite(16, val);*/client.flush();// 准备响应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";// 将响应发送给客户端client.print(s);delay(1);Serial.println("Client disonnected");// 客户端实际上会断开连接// 当函数返回并且 'client' 对象被销毁时
}

实验串口返回情况

在这里插入图片描述
打开手机浏览器,输入
192.168.31.90/gpio/1或者
192.168.31.90/gpio/0

即可控制板载LED的亮灭

在这里插入图片描述
在这里插入图片描述

打开电脑上任何一款浏览器,输入“192.168.31.90/gpio/1”或者“192.168.31.90/gpio/0”,即可控制板载灯

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/10315.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux-DHCP安装配置流程

DHCP 介绍 DHCP&#xff08;Dynamic Host Configuration Protocol&#xff09;是一种网络协议&#xff0c;用于在局域网(LAN)中自动分配IP地址和其他网络配置信息给计算机设备。DHCP旨在简化网络管理&#xff0c;允许设备自动获取IP地址&#xff0c;无需手动配置&#xff0c;…

19.主题时钟

主题时钟 html部分 <div class"btn">黑色</div><div class"clock-container"><div class"time">21</div><div class"date">21</div><div class"clock"><div class&qu…

centos安装vnc

安装VNC的前提是得有桌面 centos安装桌面_学习使我快乐——玉祥的博客-CSDN博客 这个桌面已经支持3389的RDP了&#xff0c;可以直接用window的远程桌面连接&#xff0c;不过就是有点卡 开始 安装 yum install tigervnc-server tigervnc -y 查询是否安装 rpm -qa | grep t…

Linux系统MySQL数据库的备份及应用

本节主要学习了MySQL数据库的备份&#xff1a;概念&#xff0c;数据备份的重要性&#xff0c;造成数据丢失的原因&#xff0c;备份的类型&#xff0c;常见的备份方法&#xff0c;实例与应用等。 目录 一、概述 二、数据备份的重要性 三、造成数据丢失的原因 四、备份类型 …

小程序如何上传商品

​小程序作为一种便捷的电商平台&#xff0c;上传商品是非常重要的一步。本文将为你提供一个完整的小程序上传商品教程&#xff0c;帮助你轻松上架自己的商品。 一、进入商品管理页面 在个人中心点击管理入口&#xff0c;然后找到“商品管理”菜单并点击。 2. 点击“添加商品…

MySQL数据库期末项目 图书馆管理系统

1 项目需求分析 1.1 项目名称 图书馆管理系统 1.2 项目功能 在以前大多部分图书馆都是由人工直接管理&#xff0c;其中每天的业务和操作流程非常繁琐复杂&#xff0c;纸质版的登记信息耗费了大量的人力物力。因此图书馆管理系统应运而生&#xff0c;该系统采用智能化设计&#…

Vue3的watch侦听器以及与Vue2的watch的侦听器区别

一、Vue3的watch侦听器&#xff1a; 1、基础用法侦听单个数据 导入watch函数执行watch函数传入要侦听的响应式数据(ref对象)和回调函数 <template><button click"add">{{ count }}</button> <template><script>//导入watchimport {…

分布式文件存储与数据缓存 FastDFS

一、FastDFS概述 1.1 什么是分布式文件系统 单机时代 初创时期由于时间紧迫&#xff0c;在各种资源有限的情况下&#xff0c;通常就直接在项目目录下建立静态文件夹&#xff0c;用于用户存放项目中的文件资源。如果按不同类型再细分&#xff0c;可以在项目目录下再建立不同的…

C++初阶之一篇文章让你掌握string类(模拟实现)

string类模拟实现 1.为什么要模拟实现string2.string的模拟实现需要注意哪些问题3.经典的string类问题4.写时拷贝5.传统版写法的String类&#xff08;参考&#xff09;6.现代版写法的String类&#xff08;参考&#xff09;7.string类的模拟实现&#xff08;讲解&#xff09;7.1…

Android:RecyclerView封装,打造列表极简加载

前言 mBinding.recycler.linear().divider().set<OrdinaryListBean> {addLayout(R.layout.layout_ordinary_item)}.setList(getList()) 如果我要说&#xff0c;除了数据和布局之外&#xff0c;以上的几行代码&#xff0c;就实现了一个列表加载&#xff0c;有老铁会相信…

多次发请求优化为发一次请求

优化 getUserInfo 请求 要求 getUserInfo 是个通用接口&#xff0c;在各个模块里面都有可能使用 requestUserInfo 模拟的是请求服务端真正获取用户信息的方法 业务背景 在一个页面有 A, B, C 等多个功能模块&#xff0c;A, B, C 模块渲染执行顺序不可控每个模块都会调用 get…

在 Windows 中通过 WSL 2 高效使用 Docker

大家好&#xff0c;我是比特桃。平时开发中&#xff0c;不免会使用一些容器来跑中间件。而开发者使用的操作系统&#xff0c;大多是Mac OS 、Windows。Docker 为了兼顾这两个平台的用户&#xff0c;推出了 Docker Desktop 应用。Docker Desktop 中的内核还是采用了 Linux 的内核…

基于规则指导的知识图谱推理协作代理学习(2019)7.27

基于规则指导的知识图谱推理协作代理学习 摘要介绍问题和准备工作问题公式基于符号的方法基于游走的方法 RuleGuider模型架构实体代理策略网络 模型学习奖励设计训练过程 实验实验设置数据集实验结果消融研究人工评估 总结 摘要 基于 行走模型 是通过在提供可解释决策的同时实…

flutter android Webview 打开网页错误ERR_CLEARTEXT_NOT_PERMITTED 、 net:ERR_CACHE_MISS

当你在Flutter应用中尝试打开一个非安全连接的网页&#xff08;例如HTTP连接而不是HTTPS连接&#xff09;时&#xff0c;可能会遇到"ERR_CLEARTEXT_NOT_PERMITTED"错误。这是因为默认情况下&#xff0c;Android 9及更高版本禁止应用程序通过非安全的明文HTTP连接进行…

Linux学习笔记--如何在ubuntu中启用root用户和安装软件的方法(解决安装依赖)

一、ubuntu启用root用户 打开Terminal(终端)&#xff0c;右键点击桌面&#xff0c;选择终端&#xff0c;弹出终端窗口。&#xff08;使用快捷键ctrlaltt&#xff0c;也可以调出Terminal&#xff09;。 指令su&#xff0c;该指令可切换用户或者切换到超级管理员root。 su 在终端…

STL中的常用算法详解

1. STL常用算法 STL的算法主要是由下面的头文件组成的。 <algorithm> <functional> <numeric>1.algorithm是所有STL头文件中最大的一个范围涉及到比较、交换、查找、遍历操作、复制、修改等等算法的头文件。 2.numeric体积很小&#xff0c;只包括几个再序…

爬虫获取渲染后页面(JAVA)

一、背景 最近突然想了解一下爬虫&#xff0c;但是自己又不太了解python&#xff0c;所以学习了下Java版爬虫。在这个过程中遇到了一个问题&#xff0c;为了解决这个问题&#xff0c;百度了很多方法&#xff0c;两个小时候&#xff0c;终于找到了一个最佳方案 二、问题描述 第…

python与深度学习(八):CNN和fashion_mnist二

目录 1. 说明2. fashion_mnist的CNN模型测试2.1 导入相关库2.2 加载数据和模型2.3 设置保存图片的路径2.4 加载图片2.5 图片预处理2.6 对图片进行预测2.7 显示图片 3. 完整代码和显示结果4. 多张图片进行测试的完整代码以及结果 1. 说明 本篇文章是对上篇文章训练的模型进行测…

day43-Feedback Ui Design(反馈ui设计)

50 天学习 50 个项目 - HTMLCSS and JavaScript day43-Feedback Ui Design&#xff08;反馈ui设计&#xff09; 效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport&q…

opencv-26 图像几何变换04- 重映射-函数 cv2.remap()

什么是重映射&#xff1f; 重映射&#xff08;Remapping&#xff09;是图像处理中的一种操作&#xff0c;用于将图像中的像素从一个位置映射到另一个位置。重映射可以实现图像的平移、旋转、缩放和透视变换等效果。它是一种基于像素级的图像变换技术&#xff0c;可以通过定义映…