资源 使用安卓和 Arduino 的简单蓝牙灯控制器
需要的元件 Arduino UNO 蓝牙模块 继电器 电阻1kΩ 电阻器560Ω Arduino IDE 关于此项目 仅使用智能手机控制家周围的任何设备是非常有趣的。该项目包括使用 Arduino,一个廉价的蓝牙模块和一个继电器来控制,例如,通过蓝牙将其连接到智能手机。此项目旨在简单使用最少的资源和代码,但仍包括整个过程的重要演示和说明。 上传的Arduino代码通常分为 4 个阶段。 5.1. 初始化 52. 设置 5.3. 循环 5.4. 流程命令 需要注意的是,上述所有代码都在 Arduino 的观点中,这意味着所有"读取"操作都是 arduino 从其他源接收数据的操作,而写入操作也是 arduino 向其他源发送消息的操作。系统中的使用顺序将是这样: a.用户单击智能手机中的按钮,执行蓝牙命令。 B。蓝牙模块接收并将该命令发送到 Arduino。 c. Arduino 将处理该命令,并将信号发送到继电器以将其打开或关闭。 d. Arduino 然后向蓝牙模块发送成功的消息,其中蓝牙模块将此消息发送回智能手机。 5.1.初始化 在最初几行代码中,首先包括软件系统库,该库将允许与蓝牙模块进行通信。还允许使用不同的引脚作为接收器和发射器引脚比那些预定义的 Arduino (引脚 0 + RX 和引脚 1 + TX) 。相反, 我们将使用引脚 2 为 Arduino 的 Rx 和引脚 3 为 Arduino 的 TX 。然后,我们创建常量来标识每个组件的引脚,在这种情况下,将控制 RELAY 的 Arduino 引脚为 10 号,控制 Arduino 的内置 LIGHT 的引脚为 13 号。然后,称为类型"char"的"数据"的数据结构充当来自蓝牙模块的传入消息的缓冲区,以及一些数据结构的辅助变量,将在Loop 部分中解释。 5.2. 设置 预定义的方法"setup",将是在我们实际预期程序开始运行之前执行的第一个方法。它基本上允许在主程序执行之前配置一些 Arduino 的引脚和其他内容。因此,中继引脚将是一个输出引脚,因为希望发送一个信号,以关闭或打开继电器。光销也一样。此外,可以选择是否要启动程序,然后使用"数字写入"立即开始发送信号。在中继的情况下,确实开始发送信号更好,因为继电器的工作方式有点违背直觉,因为继电器的工作方式是,当一个信号被去继电器检测到时,它会自行关闭,否则会重新打开。 5.3. 循环 循环是一种方法,正如名称建议的那样,它是迭代调用,以便重复处理传递给它的任何信息。话虽如此,首先检查是否有来自蓝牙模块的传入消息,如果有,然后进入一个循环,以便继续按字节读取这些消息(每次迭代都读取类型"char")。关于代码延迟行(10),说实话,我并不完全确定为什么代码只与该延迟(10)一起使用。当我尝试没有那行代码时,消息没有正确接收到称为"数据"(我们的缓冲区)的字符数组中,而收到的只是缓冲区中的一堆垃圾。因为接收和传输的组件有不同的处理速度,在这种情况下,这是Arduino和蓝牙模块。在一些 Arduino 代码在网络上是服装看到一些这些延迟行的代码,可能其中一些可能用于此事。在此延迟之后,假设已经读取了消息的第一个字节 (char),然后将其添加到缓冲区,并递增名为"index"的计数器,以沿数组/缓冲区的维度迭代和增量添加更多字节。读取消息后,我们退出 while 循环并说"是",有一条消息要处理(通过将标志设置为 true)。并添加一个"|0"以指示缓冲区的结束。在循环方法的末尾,只需检查是否有消息要处理,如果有,则调用 processCommand 方法,然后通过将数组的第一个索引({0})设置为 null ({0})将计数器 ('index') 设置为 0 来清除/重置缓冲区。这样,缓冲区就可以接收更多的传入消息。 5.4. 流程命令 ProcessCommand 方法将是决定对之前在循环代码部分收到的蓝牙消息进行操作的方法。对于这个项目,可以发送简单的命令发送从智能手机发送到Arduino通过蓝牙。要打开中继,在 Android 应用程序上构建的简单消息将发送以下字符串为字节:"RY"(中继是),如果希望打开中继或"RN"(中继否),如果希望关闭中继。如前所述,还包括一个"附加",在那可以控制 Arduino 的内置 LED (引脚号 13),所以命令是 "LY" 和 "LN", 但不必使用这个。要打开继电器,需要从 Arduino 发送低信号,反之亦然。Arduino 还将向蓝牙模块发送状态消息,例如"中继:ON",该模块将发送给用户。 最后 所有需要的文件在下载区均可找到。 via:https://create.arduino.cc/projecthub/azoreanduino/simple-bluetooth-lamp-controller-using-android-and-arduino-aa2253?ref=platform&ref_id=424_trending___&offset=329