首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C猫鼬中的特定时间打开2个LED

在C猫鼬中的特定时间打开2个LED
EN

Stack Overflow用户
提问于 2018-06-28 11:14:55
回答 2查看 836关注 0票数 0

所以我有一个espressif芯片连接到两个发光二极管上,猫鼬在上面运行。

我想从互联网/计算机上获得时间,并在特定的时间启动led。

例如:在10:00打开/关闭led 1连接到引脚2,在16:00打开/关闭led 2连接到C中的引脚3。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-28 12:05:27

步骤1:将wifi设置添加到您的mos.yml中,以便它可以连接到您的无线AP:

代码语言:javascript
复制
config_schema:
  - ["wifi.sta.enable", true]
  - ["wifi.sta.ssid", "MyAP"]
  - ["wifi.sta.pass", "Passwd"]

步骤2:将这些添加到您的mos.yml中。如果您无意在UART上进行rpc调用,请关闭rpc-uart

代码语言:javascript
复制
libs:
  - origin: https://github.com/mongoose-os-libs/sntp
  - origin: https://github.com/mongoose-os-libs/crontab
  - origin: https://github.com/mongoose-os-libs/rpc-service-cron
  - origin: https://github.com/mongoose-os-libs/rpc-service-config
  - origin: https://github.com/mongoose-os-libs/wifi
  - origin: https://github.com/mongoose-os-libs/rpc-uart

步骤3:为LED打开和关闭添加crontab处理程序:

代码语言:javascript
复制
enum mgos_app_init_result mgos_app_init(void) {
  /* Set LED GPIOs as outputs */
  mgos_gpio_set_mode(YOUR_LED_GPIO, MGOS_GPIO_MODE_OUTPUT);

  /* Register crontab handler - LED OFF */
  mgos_crontab_register_handler(mg_mk_str("ledoff"), ledoff, NULL);

  /* Register crontab handler - LED ON */
  mgos_crontab_register_handler(mg_mk_str("ledon"), ledon, NULL);

  return MGOS_APP_INIT_SUCCESS;
}

步骤4:添加回调:

代码语言:javascript
复制
void ledoff(struct mg_str action, struct mg_str payload, void *userdata) {
  mgos_gpio_write(YOUR_LED_GPIO, 0);
  (void) payload;
  (void) userdata;
  (void) action;
}

void ledon(struct mg_str action, struct mg_str payload, void *userdata) {
  mgos_gpio_write(YOUR_LED_GPIO, 1);
  (void) payload;
  (void) userdata;
  (void) action;
}

步骤5:来自Web或UART:

代码语言:javascript
复制
call Cron.Add '{"at":"0 0 10 00 * *", "action":"ledon"}'
call Cron.Add '{"at":"0 0 16 00 * *", "action":"ledoff"}'

请参阅https://github.com/mongoose-os-libs/cron作为mgos上cron表达式语法的参考。

票数 1
EN

Stack Overflow用户

发布于 2020-05-21 04:12:35

从解决方案中找不到:

步骤2a:在main.c中添加:

代码语言:javascript
复制
#include "mgos_crontab.h"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51081508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档