红外测温枪,超进化 -- 智能温度传感器 基于 arduino 的智能测温模块


前言

之前用 arduino(arduino 开发制导) 做了一个傻了吧唧的 红外测温枪,后来又照着 Spirit 1 官方文档成功做出来一个能让设备和 Spirit 1 通讯的 调试用 demo,虽然 BUG 有亿点点多,但是!好歹能用了!
( ੭ ˙ᗜ˙ )੭牛逼!!!,通讯解决了,服务器有了,那不得开始 搞事情!!!٩(๑>◡<๑)۶ 开始利用 Spirit 1 做一个能通过手机控制和查看的智能红外测温模块。

硬件选择

硬件与之前的 红外测温枪 完全一致,安信可 ESP32S 开发板+ GY906 (MLX90614ESF ) 红外测温传感器。详细介绍和引脚图可以看之前红外测温枪的文档。
在这里插入图片描述

而 Spirit 1 的使用和介绍可以看我之前的 搭载着EdgerOS 的 Spirit 1 开箱超便宜的个人智能设备服务器!-- 边缘计算机 Spirit 1 初体验,也是淘宝就能搜到。

代码讲解

我自己移植了一个他们的 sddc 库,在 Spirit 1 官方的 demo 的基础上对 arduino 做了适配,接入了红外测温枪流程。
在这里插入图片描述

通过 SDDC 协议接入 Spirit 1 部分

在 setup 函数中初始化 SDDC 协议,然后在 loop 函数运行 SDDC 协议主循环,

void setup() {
   
  byte mac[6];
  char *data;
  int ret;
  
  // 初始化打印串口
  Serial.begin(115200);
  Serial.setDebugOutput(true);
  Serial.println();
  
  // 启动红外模块
  mlx.begin();
  
  // 清除一下按键状态机的状态
  button.reset();
  
  // 创建按键扫描线程,长按 IO0 按键,松开后ESP32 将会进入 SmartConfig 模式
  sddc_printf("长按按键进入 Smartconfig...\n");
  button.attachLongPressStop(esp_io0_key_task);
  xTaskCreate(esp_tick_task, "button_tick", ESP_KEY_TASK_STACK_SIZE, NULL, ESP_KEY_TASK_PRIO, NULL);
  
  // 启动 WiFi 并且连接网络
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) 
  {
   
    delay(500);
    Serial.print(".");
  }

  // 获取并打印 IP 地址
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.print("'ip :");
  Serial.print(WiFi.localIP());
  Serial.println("' to connect");   
  
  // 创建 SDDC 协议对象
  g_sddc = sddc_create(SDDC_CFG_PORT);
  
  // 设置事件响应函数
  sddc_set_on_message(g_sddc, iot_pi_on_message);                              // 设置接收消息请求时的回调函数
  sddc_set_on_message_ack(g_sddc, iot_pi_on_message_ack);                      // 设置接收消息确认时的回调函数
  sddc_set_on_message_lost(g_sddc, iot_pi_on_message_lost);                    // 设置丢失消息时的回调函数
  sddc_set_on_invite(g_sddc, iot_pi_on_invite);                                // 设置接受邀请请求时的回调函数
  sddc_set_on_invite_end(g_sddc, iot_pi_on_invite_end
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值