《ESP8266通信指南》14-连接WIFI(基于Lua)


往期

《ESP8266通信指南》13-Lua 简单入门(打印数据)-CSDN博客

《ESP8266通信指南》12-Lua 固件烧录-CSDN博客

《ESP8266通信指南》11-Lua开发环境配置-CSDN博客

《ESP8266通信指南》10-MQTT通信(Arduino开发)-CSDN博客

《ESP8266通信指南》9-TCP通信(Arudino开发)-CSDN博客

《ESP8266通信指南》8-连接WIFI(Arduino开发)(非常简单)-CSDN博客

《ESP8266通信指南》7-Arduino 开发8266的环境配置与示例代码烧录-CSDN博客

《ESP8266通信指南》6-创建TCP服务器(AT指令)-CSDN博客

《ESP8266通信指南》5-TCP通信透传模式(AT指令)-CSDN博客

《ESP8266通信指南》4-以Client进行TCP通信(AT指令)-CSDN博客

《ESP8266通信指南》3-常用AT指令详解-8266连WIFI-CSDN博客

《ESP8266通信指南》2-ESP8266 AT测试-CSDN博客

《ESP8266通信指南》1-ESP8266 简介-CSDN博客

1. 小节目标

使用 Lua 编写连接 WIFI 代码,烧录到 ESP8266 上,连接 WIFI 后打印 IP 地址。

2. 完整代码

在之前的小节中我们多次的提到电脑开移动热点的问题,这里就不在赘述,烧录代码可参考:《ESP8266通信指南》13-Lua 简单入门(打印数据)-CSDN博客

wificonf={}
wificonf.ssid="ct-iot"
wificonf.pwd="ctiot666"
wifi.setmode(wifi.STATION)
wifi.sta.config(wificonf)
wifi.sta.autoconnect(1)
wifi.sta.connect()wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T)printip = 0
end)wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T)if printip == 0 thenprint("+IP-"..T.IP)endprintip = 1
end)

3. 代码详解

  1. 初始化WiFi配置字典
wificonf={}

这里创建了一个空的Lua表(也称为字典)wificonf来存储WiFi的SSID和密码。


2. 设置WiFi的SSID和密码

wificonf.ssid="ct-iot"  
wificonf.pwd="ctiot666"

这两行代码将WiFi的SSID设置为"ct-iot",密码设置为"ctiot666"。


3. 设置WiFi模式并连接

wifi.setmode(wifi.STATION)

设置WiFi模式为STA(Station),也就是客户端模式,它会连接到其他WiFi路由器。

wifi.sta.config(wificonf)

使用之前设置的wificonf字典来配置WiFi的SSID和密码。

wifi.sta.autoconnect(1)

设置自动连接WiFi。参数1表示启用自动连接。

wifi.sta.connect()

这行代码看起来有些冗余,因为当你设置autoconnect(1)后,WiFi应该会自动尝试连接。但在某些情况下,显式调用connect()可能有助于确保连接。


4. 注册WiFi事件处理程序

wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T)  printip = 0  
end)

当WiFi客户端断开连接时,这个函数将被调用。这里它设置了一个名为printip的变量(虽然这个变量没有在代码中明确定义,但我猜测它在代码的其他部分被定义或默认为0)为0。

wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T)  if printip == 0 then  print("+IP-"..T.IP)  end  printip = 1  
end)

当WiFi客户端成功获取IP地址时,这个函数将被调用。如果printip是0(表示我们之前尚未打印IP地址),它将打印IP地址,并将printip设置为1,以确保我们不会再次打印相同的IP地址。

4. 结语


在本小节中介绍了 ESP8266 使用 Lua 编程连接 WIFI,并打印 ESP8266 的 IP 地址。



柴头物联网出品

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

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

相关文章

谷歌明年6月关闭 Google Fit 运动记录API,要求开发者迁移至Android Health平台 | 最新快讯

5 月 6 日消息,谷歌近日发布官方新闻稿,宣布将在明年 6 月使用 Android Health 平台取代 Google Fit 运动记录 API,开发人员应当尽早启动迁移计划。 谷歌自 2022 年起逐渐扩大对 Android Health 平台的投资,旨在减少平台碎片化&am…

Java17 --- SpringCloud之Zipkin链路追踪

目录 一、下载zipkin及运行 二、在父工程中引入pom依赖 三、在子工程8001引入相关pom依赖 3.1、修改yml配置文件 3.2、测试代码 四、在子工程80引入相关pom依赖 4.1、修改yml配置文件 4.2、测试代码 五、测试结果 一、下载zipkin及运行 运行控制台访问地址&#xff1…

Linux学习笔记1---Windows上运行Linux

在正点原子的教程中学习linux需要安装虚拟机或者在电脑上安装一个Ubuntu系统,但个人觉得太麻烦了,现在linux之父加入了微软,因此在Windows上也可以运行linux 了。具体方法如下: 一、 在Windows上的设置 在window的搜索框内&#…

【Java】还不会数组?一文万字全搞定

前言:前面两章我们详细讲解了Java基本程序设计结构中的基本知识,,包括:一个简单的Java应用,注释,数据类型,变量与常量,运算符,字符串,输入输出,控…

写爬虫代码抓取Asterank中小行星数据

2024年5月4日 问题来源 解决方案 回顾2023年7月14日自己写的爬虫代码 import requests import re import pandas as pd texts[] def getData(page):#每页评论的网址urlhttps://item.jd.com/51963318622.html#comment#添加headers,伪装成浏览器headers{User-Agent:…

即插即用 | YOLOv8热力图可视化方法详解,揭秘AI如何「看」世界!【附完整源码】

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

vivado 低级别 SVF JTAG 命令、多链 SVF 操作

多链 SVF 操作 以下示例显示了如何在 SVF 链上处理操作。 每个链中连接有 2 个器件 : xcku11 和 xcku9 。配置存储器连接到链中的第 2 个器件 (xcku9) 。为访问此配置存储器 , SVF 会使用 HIR 、 HDR 、 TIR 和 TDR 命令来生成命令。为刷写此…

路由模块封装

目录 一、问题引入 二、步骤 一、问题引入 随着项目内容的不断扩大,路由也会越来越多,把所有的路由配置都堆在main.js中就不太合适了,所以需要将路由模块抽离出来。其好处是:拆分模块,利于维护。 二、步骤 将路由相…

小巧简单实用的Linux端口转发工具Rinetd

Linux下实现端口转发有很多种方法,尤其是在可以联网的情况下,更是容易。最近在资源受限的定制系统中,找到一个方便离线安装和使用的端口转发工具Rinetd,安装包仅几十K,而且有很多版本的Linux发行系统的支持。 1、安装…

Spring底层入门(九)

boot的执行流程分为构造SpringApplication对象、调用run方法两部分 1、Spring Boot 执行流程-构造 通常我们会在SpringBoot的主启动类中写以下的代码: 参数一是当前类的字节码,参数二是main的args参数。 public class StartApplication {public static…

解决jar包中没有主清单目录的问题

文章目录 解决jar包中没有主清单目录的问题问题描述环境描述方法一 | 阿里巴巴构造器的通用解决方案方式二 | 指定MANIFEST.MF路径 解决jar包中没有主清单目录的问题 问题描述 很简单可能很多人都遇到过,maven项目打成jar包后执行报错:jar包中没有主清单…

ai可以做思维导图吗?当然是可以的!

ai可以做思维导图吗?在快节奏的现代生活中,思维导图作为一种高效的信息组织和表达工具,越来越受到人们的青睐。随着人工智能(AI)技术的不断发展,AI思维导图软件也应运而生,它们不仅能够帮助用户…

Orange3数据可视化(小提琴图)

小提琴图 小提琴图和箱线图类似,用来显示数据分布和概率密度。结合了箱线图和密度图的特征,用来显示数据的分布形状。 输入 数据: 输入数据集 输出 选中的数据: 从图中选中的实例 数据: 增加了一列,显示数据点是否被选中 …

three.js 效果细节提升

1. three.js 效果细节提升 加载模型时,给模型设置接受阴影,反射阴影 gltfLoader.load("./model/court-transformed.glb", (gltf) > {gltf.scene.traverse(child > {if (child.isMesh) {child.castShadow true; // 设置阴影可以投射阴…

【Linux】yum与vim

文章目录 软件包管理器:yumLinux安装和卸载软件包Linux中的编辑器:vimvim下的底行模式vim下的正常模式vim下的替换模式vim下的视图模式vim下的多线程 软件包管理器:yum yum其实就是一个软件,也可以叫商店 和你手机上的应用商店或app store一…

【C++】详解STL容器之一的deque和适配器stack,queue

目录 deque的概述 deque空间的结构 deque的迭代器 deque的数据设计 deque的优缺点 适配器的概念 ​编辑 stack的概述 stack的模拟实现 queue的概述 queue的模拟实现 deque的概述 deque的设计参考了另外两大容器vector和list。可参考下面两篇文章 详解vector&#x…

Spring Boot 整合 socket 实现简单聊天

来看一下实现的界面效果 pom.xml的maven依赖 <!-- 引入 socket --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency><!-- 引入 Fastjson &#x…

bert-NER 转化成 onnx 模型

保存模型 加载模型 from transformers import AutoTokenizer, AutoModel, AutoConfigNER_MODEL_PATH ./save_model ner_tokenizer AutoTokenizer.from_pretrained(NER_MODEL_PATH) ner_config AutoConfig.from_pretrained(NER_MODEL_PATH) ner_model AutoModelForTokenCl…

【雅思写作】Vince9120雅思小作文笔记——P1 Intro(前言)

文章目录 链接P1 Intro&#xff08;前言&#xff09;字数限制题型综述&#xff08;problem types overview&#xff09;1. **柱状图&#xff08;Bar Chart&#xff09;** - 描述不同类别在某个或多个变量上的数据量比较。2. **线图&#xff08;Line Graph&#xff09;** - 展示…

冯喜运:5.10黄金反弹受阻,原油EIA库存激增引发市场情绪

【黄金消息面分析】&#xff1a;据最新市场数据显示&#xff0c;现货黄金在周四欧市早盘经历了显著下滑&#xff0c;价格一度跌破2310美元/盎司的关口&#xff0c;日内高点回落达10美元&#xff0c;截至发稿&#xff0c;黄金小幅反弹&#xff0c;交投于2312美元/盎司附近。此番…