《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,一经查实,立即删除!

相关文章

Python中对象数据的持久化操作

含义: 对象数据的持久化操作指的是将Python程序中的对象保存到某种形式的持久化存储介质(如文件、数据库)中,以便在程序重新运行或在其他程序中使用时能够重新加载这些对象。持久化操作可以确保数据在程序关闭后不会丢失&#xff…

谷歌明年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应用,注释,数据类型,变量与常量,运算符,字符串,输入输出,控…

代码随想录算法训练营第二十三天|617.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

617.二叉搜索树的最小绝对差 文档讲解:代码随想录 题目链接:. - 力扣(LeetCode) 遇到二叉搜索树,就要知道这棵树在中序遍历的情况下是一个升序的遍历。 这道题目的难点就是如何使用双指针遍历二叉树,一个指向中序遍历…

三条命令快速配置Hugging Face

大家好啊,我是董董灿。 本文给出一个配置Hugging Face的方法,让你在国内可快速从Hugging Face上下在模型和各种文件。 1. 什么是 Hugging Face Hugging Face 本身是一家科技公司,专注于自然语言处理(NLP)和机器学习…

写爬虫代码抓取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:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

常见的前端框架

常用的前端框架有以下几种: 模型 React:由Facebook开发的一款前端框架,采用虚拟DOM的概念,可高效地更新页面。Vue.js:一款轻量级的前端框架,易学易用,支持组件化开发和双向数据绑定。AngularJ…

接口框架项目实战-pytest(四)请求封装接口关联

把所有的请求方法集中到一个地方 目的:利于后期维护和加入日志 异常处理 等 目的:框架封装好之后,功能测试不需要写代码,也能执行自动化测试 config.yml base:base_php_url: http://47.107.116.139base_wx_url: https://api.weix…

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包中没有主清单…

揭秘:深度学习与自然语言处理的本质差异

在人工智能的广阔天地中,深度学习与自然语言处理犹如两颗耀眼的明星,各自绽放着光芒。尽管它们时常在科技文章中齐头并进,但它们的核心区别与联系常常令人迷惑。如果你希望一次性搞懂这两个人工智能领域的差异和联系,那么本文将是…

2024OD机试卷-数组连续和 (java\python\c++)

题目:数组连续和 题目描述 给定一个含有N个正整数的数组, 求出有多少个连续区间(包括单个正整数), 它们的和大于等于x。 输入描述 第一行两个整数N x(0 < N <= 100000, 0 <= x <= 10000000) 第二行有N个正整数(每个正整数小于等于100)。 输出描述 输出一…

Spring Security 入门 2

1.项目实战 就以RuoYi-Vue 为例吧&#xff0c;主要以下几点原因&#xff1a; 基于 Spring Security 实现。 基于 RBAC 权限模型&#xff0c;并且支持动态的权限配置。 基于 Redis 服务&#xff0c;实现登录用户的信息缓存。 前后端分离。同时前端采用 Vue &#xff0c;相对来…

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

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