【NodeMCU】NodeMCU编程手记.part1

本文介绍了使用nodeMCU通过lua编程实现在群晖设备上实现定时开关机的功能,包括定时关机后的确认、电源管理以及利用NTP同步时间。作者还提到了编程过程中的问题和解决方法,如WiFi连接和LuaLoader的使用问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nodeMCU实现群晖定时开关机

之前某一篇文章写到,黑群要实现定时开关机,必须借助外部干预,因此购置了一个nodeMCU继电器实现定时开关机。

硬件电路暂且不表,本次主要通过在nodeMCU编程实现。

设计思路

用一块老旧的主板,组了一个黑群系统,为了省电和提高硬盘寿命,特别是风扇,夜晚静悄悄,只有风扇在吵闹闹,因此想实现定时开关机。
白群晖有定时开关机的功能,在页面中简单设置即可实现。

黑群的定时关机没问题,和白群一样,在页面中设置定时关机,系统会起个定时任务,到时间会执行shutdown命令。但是如果要实现定时开机,只要主板支持Restore On AC Power On(应该99.9999%的主板都支持),也就是来电就自动开机,通过外部电源的定时上电,也可以实现定时开机。
另外,因为本黑群用的是DC电源,硬盘供电是直接DC供电的,因此只要电源有电,硬盘电机就一直有电会转,也会影响硬盘的寿命,系统关机后一定要关掉DC电源,才能真正节电提升硬盘寿命。

基于nodeMCU的定时开关机
主要思路是:

  1. 定时关机,nodeMCU在检测到系统关机(ping不通)后,连续检测几分钟,确认没有再开机,就切断电源
  2. 定时开机,即在特定时刻,打开电源,自动开机

上一篇博文已经把固件下载到nodeMCU了,这次只是写程序了
nodeMCU这个固件很牛,是国外一堆大牛在编写的一个嵌入式小系统,屏蔽了底层的操作,只需要注入lua脚本语言即可实现复杂的功能,真是懒人的福音
应用程序的入口是init.lua,只需要把要实现的功能写入到init.lua文件里,下载到nodeMCU,即可。
主程序流程:

  1. 连接WiFi
  2. 获取NTP时间

说到调试,这个LuaLoader真是个垃圾,串口速率动不动就变成了9600(而nodeMCU通讯正常的速率是115200),UpLoader代码巨慢,还好可以用ESPlorer,只是用Java编写的,需要安装JDK。

WiFi连接的代码很简单

wifi.setmode(wifi.STATION)
wifi.sta.config({ssid="your ssid",pwd="your password"})
wifi.sta.connect()

由于编译时忘记选了SNTP,不能连接ntp获取时间,就先这样吧,明天再编译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值