【雕爷学编程】Arduino动手做(175)---机智云ESP8266开发板模块4

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

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十五:ESP8266机智云开发板 ESP12F wifi模块(支持云端的智能硬件开发套件)

在这里插入图片描述
知识点:机智云 (www.gizwits.com)
机智云是亚洲最大的智能硬件自助开发和云服务平台,产品及服务涵盖终端管理、连接管理、应用支持和业务分析等主要功能,为有志于进军物联网的开发者提供智能硬件一站式开发工具及云端运维服务,提供 IoT 开源嵌入式代码库、云端 API 接口、APP 端 SDK,方便开发者进行二次开发,同时支持公有云、私有云、混合云以及全球化部署,是目前 IoT 技术最成熟、云端应用功能最完善、全球量产客户最多、最受 IoT 开发者喜爱的量产级别智能硬件开发及云服务平台,被业界及媒体公认为物联网第三方云服务第一品牌。

在这里插入图片描述

ESP8266机智云开发板模块
(官方简介)这是一个支持云端的智能硬件开发套件,史上最简单最具性价比的物联网开发板,不需要你懂网络、TCP/IP、HTP、MQTT底层复杂的知识,只要你会C语音,即可用安信可的机智云SDK快速实现二次开发,这个DEMO板可以用手机流量控制板载的RGB七彩灯,手机端APP,可以通过光敏电阻显示环境亮度。代码只要少作修改半个小时即可做出一款属于你自己的远程控制设备,系统免费生成APP(安卓、IOS),开放SDK,你只需要做下APP端UI界面即可研发成一个成品。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ESP8266
1、低功耗、高集成度的 Wi-Fi 芯片
2、仅需 7 个元器件
3、超宽工作温度范围:-40°C 至 +125°C
4、ESP8285 - ESP8266 内封 8 Mbit Flash
5、高度集成——ESP8266EX 是业内集成度最高的 Wi-Fi 芯片,最小封装尺寸仅为 5mm x 5mm。ESP8266EX 高度集成了天线开关、射频 balun、功率放大器、低噪放大器、过滤器和电源管理模块,仅需很少的
电路,可将所占 PCB 空间降到最低。
6、32 位 Tensilica MCU——ESP8266EX 内置 Tensilica L10632 位微型控制器 (MCU),具有超低功耗和 16 位 RSIC,时钟速度最高可达 160 MHz。支持实时操作系统 (RTOS),目前 Wi-Fi 协议栈只用了 20% 的 MIPS,其他均可用于用户编程和开发。
7、低功耗——ESP8266EX 专为移动设备、可穿戴电子产品和物联网应用而设计,通过多项专有技术实现了最低功耗。ESP8266EX 有三种运行模式:激活模式、睡眠模式和深度睡眠模式,能够延长电池寿命。
8、性能稳定——ESP8266EX 集成了更多的元器件,性能稳定,易于制造,工作温度范围达到 -40°C 到 +125°C。

在这里插入图片描述

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十五: ESP8266 Witty Cloud ESP-12F WiFi模块 Witty Cloud 机智云开发板 ESP Witty
项目四:扫描可用的 WiFi 网络

实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验一百三十五: ESP8266 Witty Cloud ESP-12F WiFi模块 机智云开发板 ESP Witty项目四:扫描可用的 WiFi 网络
*/#include <ESP8266WiFi.h>const int greenPin = 12;void setup() {Serial.begin(115200);pinMode(greenPin, OUTPUT);digitalWrite(greenPin, HIGH);delay (6000);digitalWrite(greenPin, LOW);Serial.println(F("\nESP8266 WiFi 扫描"));// 设置 WiFi 为站模式WiFi.mode(WIFI_STA);// 如果之前已连接,则断开与 AP 的连接WiFi.disconnect();delay(100);
}void loop() {String ssid;int32_t rssi;uint8_t encryptionType;uint8_t* bssid;int32_t channel;bool hidden;int scanResult;Serial.println(F("正在开始WiFi扫描..."));scanResult = WiFi.scanNetworks(/*async=*/false, /*hidden=*/true);if (scanResult == 0) {Serial.println(F("未找到网络"));} else if (scanResult > 0) {Serial.printf(PSTR("%d 个网络找到:\n"), scanResult);// Print unsorted scan resultsfor (int8_t i = 0; i < scanResult; i++) {WiFi.getNetworkInfo(i, ssid, encryptionType, rssi, bssid, channel, hidden);Serial.printf(PSTR("  %02d: [CH %02d] [%02X:%02X:%02X:%02X:%02X:%02X] %ddBm %c %c %s\n"),i,channel,bssid[0], bssid[1], bssid[2],bssid[3], bssid[4], bssid[5],rssi,(encryptionType == ENC_TYPE_NONE) ? ' ' : '*',hidden ? 'H' : 'V',ssid.c_str());delay(0);}} else {Serial.printf(PSTR("WiFi 扫描错误 %d"), scanResult);}// 在再次扫描之前稍等片刻delay(5000);Serial.println(F(""));
}

项目四:扫描可用的 WiFi 网络

项目串口返回情况

在这里插入图片描述
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十五: ESP8266 Witty Cloud ESP-12F WiFi模块 机智云开发板 ESP Witty
项目五:扫描可用的 WiFi 网络之二,按钮输入用于启动扫描和板载 LED亮起以指示扫描何时进行
在每个回路上,还要检查连接到 LDR 的模拟输入并调整RGB 绿色 LED 的亮度以匹配测量的亮度。

实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验一百三十五: ESP8266 Witty Cloud ESP-12F WiFi模块 机智云开发板 ESP Witty项目五:扫描可用的 WiFi 网络之二,按钮输入用于启动扫描和板载 LED亮起以指示扫描何时进行在每个回路上,还要检查连接到 LDR 的模拟输入并调整RGB 绿色 LED 的亮度以匹配测量的亮度。
*/#include "ESP8266WiFi.h"const int BUTTON_PIN = 4;    // 定义按钮所连接的引脚
const int ON_BOARD_LED = 2;  // 定义板载 LED 连接到的引脚
const int RGB_G_PIN = 12;    // RGB 绿色 LED
const int LDR_PIN = A0;      // 定义 LDR光敏电阻 连接的模拟引脚//===============================================================================
//  初始化
//===============================================================================void setup() {pinMode(ON_BOARD_LED, OUTPUT);       // 将 LED_BUILTIN 引脚初始化为输出pinMode(BUTTON_PIN, INPUT_PULLUP);   // 使用内置上拉初始化按钮引脚digitalWrite(ON_BOARD_LED, HIGH);    // 确保 LED 关闭Serial.begin(115200);                // 设置通信速率为 115200// 将 WiFi 设置为站模式,如果之前已连接,则与 AP 断开连接WiFi.mode(WIFI_STA);WiFi.disconnect();delay(100);Serial.println("WiFi扫描 初始化完成");
}//===============================================================================
// 主要程序
//===============================================================================void loop() {int btn_Status = HIGH;int lightIntensity;lightIntensity = analogRead(LDR_PIN);  // 读取光照强度analogWrite( RGB_G_PIN, map(lightIntensity, 40, 1023, 0, 1023));btn_Status = digitalRead (BUTTON_PIN);  // 检查按钮状态if (btn_Status == LOW) {                // 按钮按下,所以做点什么Serial.print("光强度读数: ");Serial.println(lightIntensity);Serial.println("扫描开始......");Serial.println("");digitalWrite(ON_BOARD_LED, LOW);       // 打开 LED// 无线上网。扫描网络将返回找到的网络数量int n = WiFi.scanNetworks();Serial.println("扫描完成!");Serial.println("");if (n == 0)Serial.println("没有找到网络");else{Serial.print("找到网络=");Serial.print(n);Serial.println("个");for (int i = 0; i < n; ++i){// 为找到的每个网络打印 SSID 和 RSSISerial.print(i + 1);Serial.print(": ");Serial.print(WiFi.SSID(i));Serial.print(" (");Serial.print(WiFi.RSSI(i));Serial.print(")");Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE) ? " : 不安全" : " : 加密");delay(10);}}Serial.println("");digitalWrite(ON_BOARD_LED, HIGH);    // 关闭 LED}
}

项目五:扫描可用的 WiFi 网络之二,按钮输入用于启动扫描和板载 LED亮起以指示扫描何时进行
在每个回路上,还要检查连接到 LDR 的模拟输入并调整RGB 绿色 LED 的亮度以匹配测量的亮度。

项目串口返回情况

在这里插入图片描述

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十五: ESP8266 Witty Cloud ESP-12F WiFi模块 机智云开发板 ESP Witty
项目六:尝试连接WiFi 网络(绿灯亮)

实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验一百三十五: ESP8266 Witty Cloud ESP-12F WiFi模块 机智云开发板 ESP Witty项目六:尝试连接WiFi 网络(绿灯亮)
*/#include <ESP8266WiFi.h>
const char* ssid = "zhz2";
const char* password = "12345678";void setup() {Serial.begin(115200);delay(10);pinMode(12, OUTPUT);pinMode(13, OUTPUT);pinMode(15, OUTPUT);digitalWrite(12, LOW);digitalWrite(13, LOW);digitalWrite(15, LOW);// 我们将首先连接到 Wi-Fi 网络:Serial.println();Serial.println();Serial.print("连接到 ");Serial.println(ssid);Serial.println("尝试连接WiFi 网络......");WiFi.begin(ssid, password);/*我们等到状态指示ESP8266已连接到Wi-Fi网络,此后,将显示Wi-Fi连接消息以及路由器分配给它的IP地址。您的路由器需要具备DHCP功能并且已激活DHCP功能:*/while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");Serial.println("");}Serial.println("Wi-Fi 已连接");Serial.println("IP地址: ");Serial.println(WiFi.localIP());
}void loop() {if (WiFi.status() == WL_CONNECTED)digitalWrite(12, HIGH);//连接后绿灯亮
}

项目六:尝试连接WiFi 网络(绿灯亮)

项目串口返回情况

在这里插入图片描述

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十五: ESP8266 Witty Cloud ESP-12F WiFi模块 机智云开发板 ESP Witty
项目七:尝试连接多个WiFi 网络

  • 在启动时快速连接到以前的 WiFi 网络
  • 注册多个网络(至少 1 个)
  • 以最强信号 (RSSI) 连接到 WiFi
  • 当连接失败或丢失时回退以连接到下一个 WiFi
  • 回退以连接到 WiFi 扫描未报告的隐藏 SSID

实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验一百三十五: ESP8266 Witty Cloud ESP-12F WiFi模块 机智云开发板 ESP Witty项目七:尝试连接多个WiFi 网络- 在启动时快速连接到以前的 WiFi 网络- 注册多个网络(至少 1 个)- 以最强信号 (RSSI) 连接到 WiFi- 当连接失败或丢失时回退以连接到下一个 WiFi- 回退以连接到 WiFi 扫描未报告的隐藏 SSID
*/#include <ESP8266WiFiMulti.h>ESP8266WiFiMulti wifiMulti;// 每个 AP 的 WiFi 连接超时。连接时间较长时增加。
const uint32_t connectTimeoutMs = 5000;void setup() {// 不要在闪存中保存 WiFi 配置 - 可选WiFi.persistent(false);pinMode(12, OUTPUT);pinMode(15, OUTPUT);digitalWrite(12, LOW);digitalWrite(15, LOW);Serial.begin(115200);Serial.println("\nESP8266 Multi WiFi example");// 设置 WiFi 为站模式WiFi.mode(WIFI_STA);// 注册多个WiFi网络wifiMulti.addAP("zhz", "12345678");wifiMulti.addAP("zhz2", "12345678");wifiMulti.addAP("zhz_5G", "12345678");// 更多是可能的
}void loop() {// 保持WiFi连接if (wifiMulti.run(connectTimeoutMs) == WL_CONNECTED) {Serial.print("WiFi 已连接: ");Serial.print(WiFi.SSID());Serial.print(" ");Serial.println(WiFi.localIP());digitalWrite(12, HIGH);//连接后绿灯亮} else {Serial.println("WiFi未连接!");digitalWrite(15, HIGH);//未连接红灯亮}delay(1000);
}

项目七:尝试连接多个WiFi 网络

  • 在启动时快速连接到以前的 WiFi 网络
  • 注册多个网络(至少 1 个)
  • 以最强信号 (RSSI) 连接到 WiFi
  • 当连接失败或丢失时回退以连接到下一个 WiFi
  • 回退以连接到 WiFi 扫描未报告的隐藏 SSID

项目串口返回情况

在这里插入图片描述

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

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

相关文章

【UE5 多人联机教程】03-创建游戏

效果 步骤 打开“UMG_MainMenu”&#xff0c;增加创建房间按钮的点击事件 添加如下节点 其中&#xff0c;“FUNL Fast Create Widget”是插件自带的函数节点&#xff0c;内容如下&#xff1a; “创建会话”节点指游戏成功创建一个会话后&#xff0c;游戏的其他实例即可发现&am…

微服务体系<1>

我们的微服务架构 我们的微服务架构和单体架构的区别 什么是微服务架构 微服务就是吧我们传统的单体服务分成 订单模块 库存模块 账户模块单体模块 是本地调用 从订单模块 调用到库存模块 再到账户模块 这三个模块都是调用的同一个数据库 这就是我们的单体架构微服务 就是…

Training-Time-Friendly Network for Real-Time Object Detection 论文学习

1. 解决了什么问题&#xff1f; 目前的目标检测器很少能做到快速训练、快速推理&#xff0c;并同时保持准确率。直觉上&#xff0c;推理越快的检测器应该训练也很快&#xff0c;但大多数的实时检测器反而需要更长的训练时间。准确率高的检测器大致可分为两类&#xff1a;推理时…

银河麒麟安装mysql数据库(mariadb)-银河麒麟安装JDK-银河麒麟安装nginx(附安装包)

银河麒麟离线全套安装教程&#xff08;手把手教程&#xff09; 1.银河麒麟服务器系统安装mysql数据库&#xff08;mariadb&#xff09; 2.银河麒麟桌面系统安装mysql数据库&#xff08;mariadb&#xff09; 3.银河麒麟服务器系统安装JDK 4.银河麒麟桌面系统安装JDK 5.银河麒麟…

青大数据结构【2021】

一、单选&#xff08;17&#xff01;&#xff09; 根据中序遍历得到降序序列可以知道&#xff0c;每个结点的左子树的结点的值比该结点的值小&#xff0c;因为没有重复的关键字&#xff0c;所以拥有最大值的结点没有左子树。 二、简答 三、分析计算 四、算法分析 3.迪杰斯特拉…

windows安装Elasticsearch8.9.0

官网解压安装好路径&#xff08;非中文&#xff0c;无空格&#xff09; 可参考 言之有李LAX csdn http://t.csdn.cn/S2oju本人使用jdk17 修改配置elasticsearch.yml xpack.security.enabled: false xpack.security.http.ssl:enabled: false直接点击bin\elasticsearch.bat…

Unity 工具之 NuGetForUnity 包管理器,方便在 Unity 中的进行包管理的简单使用

Unity 工具之 NuGetForUnity 包管理器&#xff0c;方便在 Unity 中的进行包管理的简单使用 目录 Unity 工具之 NuGetForUnity 包管理器&#xff0c;方便在 Unity 中的进行包管理的简单使用 一、简单介绍 二、NuGetForUnity 的下载导入 Unity 三、NuGetForUnity 在 Unity 的…

LeetCode 75 第十二题(11)盛最多水的容器

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 配合着示例给出的图片我们可以得知找出盛水最多的容器是什么意思,给一个数组,找出数组中两个元素能围成的最大的矩阵面积是多少. 比较直观的想法是套两层for循环暴力解出来,但是这题是中等难度题,一般中等题是没法用暴力得…

pinia在vue3中的使用

总结&#xff1a; 在store文件夹中建一个pinia的文件userStore.js 1.要想使用pinia必须先引入defineStore 这里我们使用es6的模块化语法导出的 import { defineStore } from pinia 2.然后使用export const useUserStore defineStore(user,{}) defineStore 方法有两个参数&…

论文分享:PowerTCP: Pushing the Performance Limits of Datacenter Networks

1 原论文的题目&#xff08;中英文&#xff09;、题目中包含了哪些关键词&#xff1f;这些关键词的相关知识分别是什么&#xff1f; 题目&#xff1a;PowerTCP: Pushing the Performance Limits of Datacenter Networks PowerTCP&#xff1a;逼近数据中心的网络性能极限 2 论…

vue+Element项目中v-for循环+表单验证

如果在Form 表单里有通过v-for动态生成&#xff0c;如何设置验证呢&#xff1f; <el-form ref"ruleFormRef" :model"ruleForm" status-icon :rules"rules" label-width"120px"class"demo-ruleForm" hide-required-aster…

在EF Core中为数据表按列加密存储

假设有User表 public class User : Entity<int> {public int Id { get; set; }public string UserName { get; set; }public string Name { get; set; }public string IdentificationNumber { get; set; } }其中有身份证号码IdentificationNumber列&#xff0c;需要加密…

虚拟机(VMware)安装Linux(Ubuntu)安装教程

清华大学开源网站镜像站网址&#xff1a;清华大学开源软件镜像站 | Tsinghua Open Source Mirror 进入之后在搜索框中搜索“ubuntu” 直接点击箭头所指的蓝色字体“ubuntu-20.04.1-desktop-amd64.iso”即可下载

[Ubuntu 22.04] containerd配置HTTP方式拉取私仓Harbor

文章目录 1. 基础环境配置2. Docker安装3. 部署Harbor&#xff0c;HTTP访问4. 部署ContainerD5. 修改docker配置文件&#xff0c;向harbor中推入镜像6. 配置containerd6.1. 拉取镜像验证6.2. 推送镜像验证 1. 基础环境配置 [Ubuntu 22.04] 安装K8S基础环境准备脚本 2. Docker安…

听说 Spring Bean 的创建还有一条捷径?

文章目录 1. resolveBeforeInstantiation1.1 applyBeanPostProcessorsBeforeInstantiation1.2 applyBeanPostProcessorsAfterInitialization1.3 案例 2. 源码实践2.1 切面 Bean2.2 普通 Bean 在 Spring Bean 的创建方法中&#xff0c;有如下一段代码&#xff1a; AbstractAutow…

详解rocketMq通信模块升级构想

本文从开发者的角度深入解析了基于netty的通信模块, 并通过简易扩展实现微服务化通信工具雏形, 适合于想要了解netty通信框架的使用案例, 想了解中间件通信模块设计, 以及微服务通信底层架构的同学。希望此文能给大家带来通信模块架构灵感。 概述 网络通信是很常见的需求&#…

什么是自动化测试?

什么是自动化测&#xff1f; 做测试好几年了&#xff0c;真正学习和实践自动化测试一年&#xff0c;自我感觉这一个年中收获许多。一直想动笔写一篇文章分享自动化测试实践中的一些经验。终于决定花点时间来做这件事儿。 首先理清自动化测试的概念&#xff0c;广义上来讲&#…

k8s安装prometheus

安装 在目标集群上&#xff0c;执行如下命令&#xff1a; kubectl apply -f https://gitee.com/i512team/dhorse/raw/main/conf/kubernetes-prometheus.yml使用 1.在浏览器访问地址&#xff1a;http://master_ip:30000&#xff0c;如下图所示&#xff1a; 2.查看k8s自带的…

yolov5 onnx模型 转为 rknn模型

1、转换为rknn模型环境搭建 onnx模型需要转换为rknn模型才能在rv1126开发板上运行&#xff0c;所以需要先搭建转换环境 模型转换工具 模型转换相关文件下载&#xff1a; 网盘下载链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;teuc 将其移动到虚拟机中&#xf…

前端开发Vue3.0 标签setup语法『UI组件库』之『模态框』【业务提升必备】

封装模态框需要定义的参数 title //弹窗标题 show // 是否显示弹窗 width // 弹窗宽度 height // 弹窗高度 borderRadius // 弹窗圆角 headerColor // 弹窗顶部颜色 contentText // 内容文本 contentTextCorder //内容文本颜色 position // 标题的位置 …