首页 > 其他分享 >【六月摸鱼计划】飞碟开发计划偶遇的物联网问题

【六月摸鱼计划】飞碟开发计划偶遇的物联网问题

时间:2023-06-05 18:05:14浏览次数:52  
标签:开发计划 偶遇 button Modbus 摸鱼 GPIO gpio evt BUTTON

记录modbus的上位机

记录Modbus的上位机可以使用第三方工具或编程语言来实现。以下是使用Python编程实现记录Modbus数据的示例代码:```python import modbus_tk import modbus_tk.defines as cst from modbus_tk import modbus_tcp

创建Modbus TCP客户端

master = modbus_tcp.TcpMaster('192.168.1.1', 502) master.set_timeout(5.0)

定义要记录的寄存器地址和数量

start_address = 0 num_registers = 10

循环读取寄存器的值,并将其写入日志文件中

while True: try: # 读取寄存器的值 registers = master.execute(1, cst.READ_HOLDING_REGISTERS, start_address, num_registers)

# 将读取到的值写入日志文件中
    with open("modbus.log", "a") as log_file:
        log_file.write(str(registers) + "\n")

except Exception as e:
    print("Error:", e)
该代码将在每次循环中读取10个寄存器的值,并将其写入名为“modbus.log”的日志文件中。你可以根据需求修改代码并添加更多的功能,例如将数据保存到数据库或使用其他的记录方式。

那些modbus工具可以记录数据

有许多名为Modbus的数据记录器可在市场上找到,其中一些实用工具包括:1. ModScan - ModScan是一个Windows程序,可用于实时显示Modbus数据和记录数据,可将数据保存到文件或Excel文件中。

  1. Modbus Poll - Modbus Poll是一个Windows程序,可以记录Modbus数据并将其保存到多种文件格式中,包括.txt、.csv和.html。
  2. CAS Modbus Scanner - 这是一个强大而灵活的工具,可以记录Modbus数据并将其保存到多个文件格式中,包括Excel、Access和Text文件。
  3. Simply Modbus - Simply Modbus是一款用户友好的Windows程序,可用于实时监控和记录Modbus数据。

这里需要强调的是,每个数据记录器都有其特定的功能和优缺点,因此您应该根据自己的需求和实际情况选择最适合您的工具。

esp32c3按键代码

以下是ESP32-C3的按键代码示例,你可以根据自己的需求进行调整:``` #include <stdio.h> #include "driver/gpio.h"

#define BUTTON_GPIO 0 #define BUTTON_ACTIVE 0

void button_isr_handler(void* arg) { uint32_t gpio_num = (uint32_t) arg; if (gpio_num == BUTTON_GPIO) { printf("Button pressed\n"); } }

void app_main() { gpio_config_t io_conf; //disable interrupt io_conf.intr_type = GPIO_INTR_DISABLE; //set as input mode
io_conf.mode = GPIO_MODE_INPUT; //bit mask of the pins that you want to set io_conf.pin_bit_mask = (1ULL<<BUTTON_GPIO); //disable pull-down mode io_conf.pull_down_en = 0; //enable pull-up mode io_conf.pull_up_en = 1; //configure GPIO with the given settings gpio_config(&io_conf);

//install gpio isr service
gpio_install_isr_service(ESP_INTR_FLAG_LEVEL1);
//hook isr handler for specific gpio pin
gpio_isr_handler_add(BUTTON_GPIO, button_isr_handler, (void*) BUTTON_GPIO);

while(1) {
    //do nothing
}

}

这段代码的作用是使用ESP32-C3的GPIO0作为按键控制引脚,并在按钮按下时打印一条消息,你可以根据需要进行修改。

请注意,必须启用GPIO中断服务才能使用此代码。此外,代码中还设置了GPIO引脚的输入模式,并启用了内部上拉电阻。

esp32c3 freertos按键代码

下面是一个ESP32-C3 FreeRTOS的按键代码示例,该代码使用FreeRTOS的任务和队列功能来处理按键的状态和事件:```c #include <freertos/FreeRTOS.h> #include <freertos/task.h> #include <freertos/queue.h> #include <esp_system.h> #include <esp_intr_alloc.h> #include <esp_log.h> #include <driver/gpio.h>

static const char* TAG = "button";

#define BUTTON_PIN GPIO_NUM_0 #define BUTTON_ACTIVE_LEVEL GPIO_PIN_RESET

typedef struct { int button_gpio; int button_event; } button_event_t;

typedef enum { BUTTON_EVENT_PUSH = 0, BUTTON_EVENT_RELEASE, BUTTON_EVENT_MAX } button_event_id_t;

static xQueueHandle s_button_evt_queue = NULL;

static void IRAM_ATTR button_isr_handler(void* arg) { int button_level = gpio_get_level(BUTTON_PIN); button_event_t evt = { .button_gpio = BUTTON_PIN, .button_event = (button_level == BUTTON_ACTIVE_LEVEL) ? BUTTON_EVENT_PUSH : BUTTON_EVENT_RELEASE }; xQueueSendFromISR(s_button_evt_queue, &evt, NULL); }

static void button_task(void* arg) { button_event_t evt; while (1) { if (xQueueReceive(s_button_evt_queue, &evt, portMAX_DELAY)) { switch (evt.button_event) { case BUTTON_EVENT_PUSH: ESP_LOGI(TAG, "Button push on GPIO %d", evt.button_gpio); break; case BUTTON_EVENT_RELEASE: ESP_LOGI(TAG, "Button release on GPIO %d", evt.button_gpio); break; default: ESP_LOGE(TAG, "Unknown button event id: %d", evt.button_event); break; } } } vTaskDelete(NULL); }

void app_main() { gpio_pad_select_gpio(BUTTON_PIN); gpio_set_direction(BUTTON_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BUTTON_PIN, GPIO_PULLUP_ONLY);

// Create a queue to handle button events
s_button_evt_queue = xQueueCreate(10, sizeof(button_event_t));

// Install ISR service
gpio_install_isr_service(0);

// Attach the interrupt handler
gpio_isr_handler_add(BUTTON_PIN, button_isr_handler, NULL);

// Create a task to handle button events
xTaskCreate(button_task, "button_task", 2048, NULL, 10, NULL);

}

该代码将GPIO 0配置为输入并启用上拉电阻器,然后使用FreeRTOS的队列来处理按键事件。当按下或释放按钮时,通过中断处理程序将事件放入队列中,并随后在任务中处理该事件。在任务中,我们只是打印被按下或释放的按钮事件,并且通过在事件中包括按下或释放时执行回调函数的GPIO号来标识按钮。

闪光测速仪原理

闪光测速仪是一种利用快速闪烁光源和高速摄像机来进行非接触式的速度测量的设备,其原理是测量光斑在物体表面上的移动距离,并根据物体表面的特征和光斑移动的时间来计算出物体的速度。具体而言,闪光测速仪使用高亮度、高速度的闪光光源照射到待测物体表面,并通过高速摄像机记录光斑移动的轨迹和时间。由于光斑的两次闪光是在非常短的时间内完成的,因此在移动过程中仅能记录下两个瞬间的光斑位置,通过这两个位置的差值和时间差来计算出物体的速度。

闪光测速仪由于不需要接触被测物体,因此可以测量高速运动或者旋转中的物体的速度,并且能够测量较小的速度变化

如何产生2.5VAC

产生2.5VAC的方法会因具体应用而异,以下是一些常见的方法:1. 使用变压器,将高电压信号(如220VAC或110VAC)降压到2.5VAC。这种方法常用于电源或信号隔离应用中。

2. 使用振荡器(如晶振或LC振荡器),产生2.5VAC交流信号。这种方法常用于时钟、调制解调和信号发生器等应用中。

3. 使用功率放大器和信号发生器生成一个2.5VAC的正弦波信号。这种方法常用于驱动电流较大的负载(如马达)的应用中。

需要注意的是,产生2.5VAC需要满足具体的要求,如频率、电压、电流等等,具体实现方法需根据实际需求来选择。同时,为了确保电路的可靠性和稳定性,还需注意选型匹配和电路设计等细节问题。

标签:开发计划,偶遇,button,Modbus,摸鱼,GPIO,gpio,evt,BUTTON
From: https://blog.51cto.com/u_15784394/6418170

相关文章

  • 项目开发计划
    1.项目背景和目标本项目旨在开发一款医学文献检索及管理工具,以满足医学工作者方便快捷地获取、管理和搜索医学文献的需求。本项目的主要目标是实现以下功能:可批量导入医学文献,医学文献格式为PDF文件;输入需要检索的关键信息,精准查询到所有相关的医学文献,包括能够识别到医学文献......
  • [5月摸鱼计划] 浅谈DCDC电压变换(原理、结构、可用)
    DCDC转换器简介在电子产品中,我们常需要不同的直流电压来为电路提供工作,这时我们便会见到LDO和DC/DC的身影,但是严格意义上LDO也是一种DC/DC,在电源芯片选型中,LDO和DC/DC则是两种完全不同的芯片。与线性稳压器LDO相比较,效率高是DC/DC的显著优势,通常效率在70%以上,效率高的可达到95%以上......
  • [4月摸鱼计划] 浅谈 InfruWeb3黑客松赛事
    事情起因:https://marketing.csdn.net/p/6798543ad6fdaad547c6431dd7df955a之前没接触过区块链这块,这次随即报名NFT这块。下面谈我的学习过程:第一阶段资料搜索(简单看看就行)什么是NFT?NFT是“非同质化代币”的缩写,是一种基于区块链技术的数字资产。和比特币等传统加密货币不同的是,NFT......
  • 4月份摸鱼计划奖励已经收到了,感谢网站
    4月份参加了网站的摸鱼计划,连续发文21天,得到奖品卫衣一件。另外,很幸运的中了一次抽奖,获得一份凌美(LAMY)宝珠钢笔。礼物都不是很贵,但是可以感受到网站深深的情义,可以激励自己以后创作更多优秀的文章。特此感谢网站,祝网站越办越好!......
  • 手把手教你开展mofish库(摸鱼库)的打包发布
    今日鸡汤商女不知亡国恨,隔江犹唱后庭花。大家好,我是我是皮皮。一、前言前几天吴老板给我推荐了一个摸鱼库,竟然是Python库,给我惊了一下,感觉应缺斯汀。要知道之前他就已经写了一篇关于摸鱼的文章,感兴趣的小伙伴,可以前往:手把手教你使用Python打造一款摸鱼倒计界面。如今他把这个摸鱼......
  • 摸鱼用python代码收集每天大瓜内容信息,并发送到自己的邮箱
    本篇文章内容主要为如何用代码,把你想要的内容,以邮件的形式发送出去内容可以自己完善,还可以设置一个定时发送,或者开机启动自动运行代码代理注册与使用注册账号并登录生成api将自己电脑加入白名单http://api.tianqiip.com/white/add?key=xxx&brand=2&sign=xxx&ip=输入自己电脑的ip地......
  • 【摸鱼计划】4月份,快来任选7/21天发博文
    4月摸鱼计划系列活动来跟大家见面了!参加摸鱼计划,把工作学习中的bug处理、碎片知识,记录到博客里。留下你在技术之路的成长足迹的同时,还可以get实体礼品,更有明日之星、Top红人等博主荣誉!【活动时间】发文时间:2023年4月1日—2023年4月30日【活动报名】在本文评论区留言#3月摸鱼计划#,......
  • 传统开发计划和敏捷开发计划
            ......
  • 【摸鱼计划】3月份,快来任选7/21天发博文
    摸鱼计划系列活动又跟大家见面了。我们活动规则不变,福利升级!3月份,继续把工作学习中的bug处理、碎片知识,统统记录到博客里。留下自己在技术之路的成长足迹。【活动时间】发文......
  • 今天是2023年2月24日,周五下班前摸鱼中
    当前我在听一个台湾广播,主持人说他们马上要放4天假,一会说国语,一会说闽南语,好好玩。突然想起来,在我上初中的时候,我有一个随身听,是我们村一个小伙伴抵账给我的,当时他借了我1......