欢迎光临~ 开云体育登录入口

如何利用STM32实现酒精测试仪的设计

时间: 2024-04-08 12:02:06 |   作者: 酒精测试仪

如何利用STM32实现酒精测试仪的设计

  • 功率:
  • 蓝牙版本:
  • 电池容量:
  • 工作时间:
  • 产品描述:
  • 在线订购

  该项目的诞生是因为观察到在大多数汽车共享服务中,人们即使喝醉了也可以开车,因为没有检查他们的状况。事实上,要驾驶汽车,您只需使用移动应用程序打开它并拿到里面的钥匙。未解决这个问题,我创建了一个基于云的物联网呼气测醉器,连接到一个包含汽车钥匙的盒子;如果测试返回负值,则该框将打开,否则将保持关闭状态。以下是更详细的分析:IoT设备架构、云层和 IoT 设备的RIOT-OS代码。

  使用的传感器是超声波传感器和MQ-3酒精传感器;使用的执行器是伺服电机、三个LED(迷你交通灯)、一个按钮和一个蜂鸣器。

  它用于允许酒精传感器计算正确的测量值。事实上,它位于 MQ 3 传感器附近,只有当传感器与人的距离小于 5 厘米时,MQ 3 模块才会在人呼气时开始测量人的血液酒精水平。通过发送触发信号和接收回波信号来估计距离;计算出的时间(以我们为单位)除以 58 是超声波传感器前方物体的距离(以厘米为单位)。可测量2-400厘米范围内的距离,测距精度可达3毫米。一旦通过移动应用程序打开汽车(通过为系统供电),超声波传感器就会进行定期感应(每 5 秒执行一次新的测量)。当装有钥匙的盒子被打开时,传感器停止采取措施。

  它测量空气中酒精的浓度。其检验测试范围从 0.04 到 4 mg/l 酒精。它是一种金属氧化物半导体,通过改变电阻来检测周围是不是真的存在酒精蒸汽。事实上,当酒精浓度变高时,传感器的电导率也会上升。电导率的这种变化被转换为指示酒精含量的输出值。特别是,当返回的值减去 100 大于 450 时,酒精含量被认为太高,并且框键将保持关闭状态。该传感器具有模拟输出和数字输出,但对于本项目,使用的是模拟输出。MQ 3 传感器仅在超声波传感器计算的距离小于 5 cm 时做测量,因此能计算出正确的测量值。

  伺服电机用于打开或关闭装有汽车钥匙的盒子。如果酒精传感器返回的值小于或等于 450,则该框将打开,以便取走钥匙。如果测量值大于 450,框键将保持关闭状态。

  它具有三个 LED:红色、黄色和绿色。它们用于为超声波传感器测量的距离提供反馈。距离大于 15 厘米时红色 LED 亮;距离在5厘米至15厘米之间时黄色灯亮;当距离小于 5 厘米时,绿色会亮起。当绿色 LED 亮起时,表示该人距离传感器足够近,能够直接进行酒精测试,因此 MQ 3 传感器被激活并可以测量酒精水平。

  它用于关闭框键。按下时,伺服电机被激活,框键将关闭。为了将按钮连接到电路板,它使用了一个 10K 欧姆的电阻器。

  它用于在呼气测醉器返回的值超出限制时提供反馈。当 MQ 3 传感器测量的值大于 450 时,蜂鸣器开启 1 秒。为了将蜂鸣器连接到电路板上,它使用了一个 1 欧姆的电阻器。

  云级别完全使用 AWS ECO开发。在下图中,有一个架构说明了所使用的 AWS 服务如何在总系统中连接。

  物联网设备层和云端通过基于发布/订阅机制的通信协议交换消息。董事会使用 MQTT-SN 协议将酒精传感器采取的措施发送到 Mosquitto 代理。这些消息在“alcool_level”主题下发布。此外,该板订阅了主题“topic_in”以接收从外部发送的消息,这些消息用于关闭或打开包含密钥的框。Mosquitto 使用 MQTT 通过透明桥与 AWS ECO交换消息,这是一个Python脚本,用作 Mosquitto 和 AWS IoT Core 之间的桥梁。实际上,它将“alcool_level”的消息从板发布到 IoT Core,并将 IoT Core 在主题“topic_in”下发布的输入消息作为输入消息,这些消息被定向到板。然后,通过设置适当的规则,从板传到 IoT Core 的消息直接存储到 DynamoDB。然后通过调用 REST API 将它们显示在 Web 仪表板上,这会触发从数据库中获取数据的 lambda 函数(“get_data_from_db.py”)。从 Web 仪表板,可以通过在主题“topic_in”下公布消息“关闭”或消息“打开”来关闭或打开框键。消息通过调用使用另一个 lambda 函数(“publish_to_iotcore.py”)执行此操作的 REST API 发布到 IoT Core。

  两个图表用于显示:过去 7 天内一天内打开盒子钥匙的次数(MQ-3 传感器测量的值小于或等于 450)和酒精测试返回阳性的次数过去 7 天内一天的价值;

  关于过去 7 天计算的测试的一些统计数据:测试结果为阳性的最大时间段(8-12、12-17、17-20、20-24 和 00-8 之间的值);装有钥匙的盒子被打开的次数;呼气测醉器检测到超过限值的次数;阳性测试占总测试的百分比。

  如果全局变量box_keys等于 0,则意味着包含键的框已关闭,因此我们大家可以继续进行测量。函数distance_ultrasonic返回从超声波传感器计算的距离(以厘米为单位)。

  如果距离小于 5 厘米:通过set_led(verde)函数打开迷你交通灯的绿色 LED ,用户能够继续进行酒精测试。函数check_alcool管理与测试相关的所有部分(更多细节在下面解释)。

  如果距离在 5 厘米到 15 厘米之间,黄色 LED 灯亮,表示计算测试的距离差不多,但用户必须更靠近

  如果距离大于 15 厘米,红色 LED 会亮起,表示距离太远,用户必须更靠近传感器才能进行酒精测试。

  如果全局变量box_keys不等于 0,则表示包含键的框已打开,因此我们进入“else”块。在其值等于 1 之前,每 0.5 秒读取一次连接到按钮的引脚。如果它返回一个大于零的值(当它被按下时它返回值 256),通过用伺服电机锁定它来关闭盒子,并且变量box_keys设置为 0 以允许进入前面的“if”块下一轮 while 循环。

  如果box_keys等于 0,则超声波传感器将每 5 秒感应一次,这是由于在 main while 中的“if-else”块之外设置的计时器。

  sensor_init函数:在 main 函数开始时使用,用于初始化传感器和执行器的所有 GPIO 引脚,以及伺服电机。

  用于引脚和伺服变量的所有变量都是全局的,因此它们是在函数之外定义的(您可以在项目的 GitHub 存储库中的代码中找到有关它们的更多信息)。对于 MQ 3 传感器,它被初始化为板接收值的模拟线路。用于初始化伺服电机的常量DEV、CHANNEL、SERVO_MIN、SERVO_MAX在函数外部定义。

  check_alcool功能:它检查用户呼吸中的酒精含量并据此采取行动。

  函数read_mq3返回 MQ 3 传感器计算的值,如果大于 450 表示超过法定限制,因此无法驾驶汽车。包含按键的盒子将保持关闭状态,并激活蜂鸣器 1 秒钟(蜂鸣器用于向用户更好的提供酒精测试阳性结果的反馈)。如果传感器返回的值小于或等于 450,则打开盒子(通过伺服电机解锁盒子)并将全局变量box_keys设置为 1。在这两种情况下,由Breathalyzer 与主题“alcool_level”下的函数pub一起发布(这是常量TOPIC_OUT1的值)。

  如果传感器测量的值大于 100,则返回减去 100 的值,否则返回 0。

  它向传感器发送一个脉冲并等待 100 毫秒以读取全局变量echo_time 的值。如果该值大于 0,则将其除以 58 以计算传感器前方物体的距离(以厘米为单位)。

  当检测到回显引脚上的变化时,该功能被激活。它测量从发送超声波脉冲到接收回超声波脉冲的时间差。它将值存储在全局变量echo_time中, distance_ultrasonic函数使用该变量来计算传感器前方物体的距离(以厘米为单位)。echo_time_stop也是一个全局变量。

  set_led函数:用于根据传递给函数的参数设置迷你红绿灯的正确 LED。

  如果str为“verde”,则绿色 LED 亮起,其他 LED 熄灭。如果str为“giallo”,则黄色的打开,其他的关闭。如果str是“rosso”,则红色的打开,其他的关闭。

  当在订阅的主题(在本例中为主题“topic_in”)下接收到消息时,函数on_pub对其进行管理:

  如果收到的消息是“打开”,则通过伺服电机解锁包含钥匙的盒子,并将全局变量box_keys设置为 1。如果消息是“关闭”,则使用伺服电机锁定盒子,并且全局变量box_keys设置为 0。函数的第一部分用于通过在终端上打印收到的消息及其相关主题来获取反馈。

  printf(Published %i bytes to topic %s [%i]n, (int)strlen(msg), t.name, t.id);

  近日,杭州 士兰微 电子股份有限公司(以下简称“ 士兰微 ”)发布了2017年年度业绩预增公告,公告显示,公司业绩预计增加6,712.40万元到8,630.23万元,同比增加70%到90%。下面就随网络通信小编共同来了解一下相关联的内容吧。 据了解, 士兰微 走的是“设计制造一体化”的道路,尤其以IDM(设计与制造一体)模式开发高压高功率的特殊集成电路、半导体功率器件与模块、MEMS 传感器 等为特色。 据士兰微透露,近年来,公司开始重点布局MEMS 传感器 。2016年底拟发行募集资金用于“年产能8.9亿只MEMS 传感器 扩产项目”,2017年底募集资金7亿多已经到位,将大多数都用在新增年产15.9万片MEMS 传感器

  STM32的每个ADC模块通过内部的模拟多路开关,可以切换到不同的输入通道并进行转换。STM32特别地加入了多种成组转换的模式,可以由程序设置好之后,对多个模拟通道自动地进行逐个地采样转换。 有2种划分转换组的方式:规则通道组和注入通道组。通常规则通道组中能安排最多16个通道,而注入通道组能安排最多4个通道。 在执行规则通道组扫描转换时,如有例外处理则可启用注入通道组的转换。 一个不太恰当的比喻是:规则通道组的转换好比是程序的正常执行,而注入通道组的转换则好比是程序正常执行之外的一个中断处理程序。 再举一个不一定使用的例子: 假如你在家里的院子内放了5个温度探头,室内放了3个温度探头;你需要时刻监视室外温

  微软研究员最近宣布,自己正在开发一种全新电场传感器,允许用户在没有触碰的情况下操控手机。这种技术尚未命名,不过微软已经给它下了诸多定义:低成本、透明、3D、交互等等。通过这种先进的技术,当用户的手悬浮在电子设备屏幕上时,就可以感应出来。而这将比三星Galaxy系列手机所使用的“悬浮窗”功能更先进,也更人性化。     微软研究院表示:“我们采用轻薄、透明以及低成本材料设计出了一个电场传感,可以追踪3D的手指和手部动画,也能够捕捉移动电子设备之外的悬空手势操作。我们简单的电子驱动器是基于一种现成的芯片,并不是特别需要构建自定义的模拟电子。我们描述我们的透明电极阵列的设计,利用一个机器学习算法对信号接收器的3D位置做映射。我们展示了对非

  内存池被分割n个内存块,内存表为n的数组,标记内存表(内存块的使用状态) 内存分配-- 计算需要m个没存块-- 寻找空间内连续的内存区域,标记内存表,返回偏移地址-- 计算出返回地址 内存释放-- 输入地址-base地址/块size ,得到偏移 - 查内存表知道内存块的大小K- 从偏移位置起 K个内存表被清零。 /** ****************************************************************************** * 文件名程: bsp_malloc.c * 作 者: 硬石嵌入式开发团队 * 版 本: V1.0 * 编写日期: 2015

  TFTLCD TFT液晶屏常用的通信模式主要有6800模式和8080模式,对于TFT彩屏通常都使用8080并口(简称80并口)模式 8080模式的读写时序其实跟LCD1602或者LCD12864的读写时序是差不多的。8080接口有5条基本的控制线和多条 数据线 , 数据线 的数量主要看液晶屏使用的是几位模式,有8根、9根、16根、18根四种类型 FSMC FSMC模块能够与同步或异步存储器和16位PC存储器卡接口 将AHB传输信号转换到适当的外部设备协议 满足访问外部设备的时序要求 所有的外部存储器共享控制器输出的地址、数据和控制信号,每个外部设备能够最终靠一个唯一的片选信号加以区分。 FSMC在任一时

  FSMC-TFTLCD显示 /

  大体看了下,标准库移植起来没有HAL库方便。 用HAL库移植起来不需要改动,怪不得ST推HAL库 好像标准库后面的芯片就不支持了 怪不得华清现在讲课,STM32的课还有freertos的课都是用的STM32CUBE 怪不得这里说没有可移植性,我最开始看到这句的时候很吃惊,标准库怎么没有可移植性了。

  标准库和HAL库的区别 /

  一款最低功率的芯片在工作时功耗减少了1 0倍,而在休眠模式下,功耗减少了3万倍,其在美国密西根大学的开发者如是说。科学家们在檀香山IEEE的VLSI(超大规模集成电路)技术研讨大会上指出,这个被称作Phoenix的处理器专为医疗植入物而设计,但也可用于超长寿命的环境监视测定和军事侦察。 美国密西根大学电气工程教授David Blaauw说:“我们芯片和电池加在一起,比现今使用的用于医疗植入的技术产品减少了约1000倍。”与Blaauw共同开展这个工作的有电气工程教授Dennis Sylvester以及博士生Scott Hanson和Mingoo Seok。 如果Phoenix芯片由一个普通的手表电池供电,在休眠模式下可

  本文以智能建筑为应用背景,介绍一种通用性很强的便携式多参数环境监测仪。它以MSP430F437超低功耗单片机为核心,配置新式的微型低功耗传感器,实现了建筑物内温度、湿度、光照度、有害化学气体浓度等参数的采集处理、存储、通信等功能。文中详细阐明了传感器的选取、硬件结构、软件流程等有关技术,并指出该仪器的特点和优势。 1 传感器的选取 传感器是决定监测仪精度的关键元件。传感器的选择主要是根据工作环境、测量精度、线性度、互换性、灵敏度、响应速度、稳定性、功耗、体积大小以及易于与MCU接口等。本监测仪选用的各类传感器分别为:集成温度传感器TMP35、集成湿度传感器HM1500、热线型半导体气敏传感器MR511以及集成光照度传感器TSL253

  图像处理、分析与机器视觉 (3th) (Milan Sonka、艾海舟)

  使用STM32 Nucleo撬开针对物联网的ARM mbed IDE之门

  【下载】LAT1396 STM32CubeIDE实用技巧之STM32H7双核调试的配置

  【下载】LAT1343 STM32H5 USBD Classic驱动 CDC移植

  【下载】LAT1392 LTDC RGB接口 LCD的TouchGFX工程的移植步骤

  【直播】4月11日,STM32Trust如何帮助新产品设计提升信息安全保护能力

  【线日,基于Buildroot制作STM32MP13启动镜像-深圳/厦门/西安/郑州/苏州

  【新品】STM32U0新一代超低功耗入门级MCU,助力终端产品省电,安全,BOM成本低

  【新品】 STM32H7R/S基于Cortex-M7,运行频率高达600 MHz,板载闪存型MCU 拥有高速的外部存储

  【新品】STM32WBA54/55 支持BLE5.4、IEEE 802.15.4通信协议、Zigbee®、Thread和Matter协议

  【新品】STM32MP2 最高配备双核Arm® Cortex®-A35和Cortex®-M33的STM32MP2系列微处理器

  【新品】STM32H5-Arm® Cortex®-M33 内核,主频高达250MHz,提升性能与信息安全性

  1、动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器 ...

  1、电容帮助晶振起振。2、发光二极管LED(Light Emitting Diode),液晶LCD(Liquid Crystal Display)。3、数码管原理:4、中断系统: ...

  人工智能 (AI)、机器学习 (ML) 和物联网 (IoT) 网络边缘的其他计算密集型工作负载的兴起给微控制器 (MCU) 带来了额外的处理负载。 ...

  【51单片机】矩阵键盘逐行扫描法仿真实验+超详细Proteus仿真和Keil操作步骤

  一、环境我用的是Keil5做编译工具,用proteus仿线不知道有无另外的好用的能生成 hex文件的软件(要单片机运行是需要生成 hex文 ...

  【51单片机】矩阵键盘线反转法实验仿线单片机】〈C语言+Keil5+Proteus仿真〉矩阵键盘逐行扫描法-20210414中,提到了矩阵键盘的线反转法,但是在仿真上出现了一 ...

  英飞凌将亮相2024国际嵌入式展,集中展示面向绿色未来的创新半导体和微控制器解决方案

  UiPath应用案例分析:从自动化走向智能化,数字员工帮助华润啤酒降低风险、提高效率

  三星电子获内存专利诉讼有利判决,无需向 Netlist 支付 3.03 亿美元赔偿

  【已结束】有奖直播【TI 全新CC2340无线 MCU,助力低功耗蓝牙应用】

  跟 TI工程师 立下你的金猪Flag!立Flag & 分享赢双重好礼!

  站点相关:综合资讯51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程