无线传输模块HC-12使用

  

  因为实验室的无人机需要使用一款无线传输模块进行遥控控制,我们讨论的中测试了HC-12,并对HC-12传输距离进行了简单测试。在此做下使用记录。

模块概述

   HC-12 无线串口通信模块是新一代的多通道嵌入式无线数传模块。无线工作频段为433.4—473.0MHz,可设 置多个频道,步进是 400KHz,总共 100 个。模块最大发射功率为 100mW(20dBm),5000bps 空中波特率 下接收灵敏度-116dBm,开阔地 1000 米的通信距离。 模块采用邮票孔封装方式,可贴片焊接,模块大小 27.4mm×13.2mm×4mm(包括天线帽,不包括弹簧天线), 很方便客户嵌入应用系统之内。模块上有 PCB 天线座 ANT1,用户可以通过同轴线,使用 433M 频段外接天线; 模块内也有天线焊接孔 ANT2,方便用户焊接弹簧天线。用户可以根据使用要求,选择其中一种天线。 模块内部含有 MCU,用户无需对模块另外编程,各种透传模式只管收发串口数据即可,使用方便。模块采用 多种串口透传模式,用户可以根据使用要求用 AT 指令进行选择。四种模式 FU1、FU2、FU3、FU4 的空闲状态 下平均工作电流分别为 3.6mA、80μA、16mA 和 16mA,最大工作电流为 100mA(满功率发射状态下)  

模块工作原理

注: 如上面图所示,HC-12 模块用于代替半双工通信时的物理连线。左边的设备向模块发送串口数据,模块的 RXD 端 口收到串口数据后,自动将数据以无线电波的方式发送到空中。右边的模块能自动接收到,并从 TXD 还原最初左 边设备所发的串口数据。从右到左也是一样的。模块间只能工作于半双工状态,不能同时收发数据

模块连接

模块可以与单片机连接,可以与电脑连接,这样两个模块就之间也可以进行通讯(单片机与电脑远程通讯)。

模块与电脑、单片机的连接示意图:

模块可与供电系统为3.3V 或者5V 的MCU连接,串口交叉连接即可(模块的 RX接 MCU的 TX、模块的 TX 接MCU的 RX) 注:如需串接电阻保护MCU,请在串口端串接不大于200Ω的电阻即可,建议不加电阻。

无线串口透传

HC-12 模块有四种串口透传模式,用 FU1、FU2、FU3 和 FU4。

出厂默认设置为 FU3、9600bps(8 位数据、无校验、1 位停止位) 、CH001(433.4MHz)。 使用时一般不限定一次连续往模块串口发送的字节数。但鉴于环境干扰等因素,一次连续发送大量数据时,有可能 会丢失一些字节。所以,上位机最好要有应答和重发等机制,避免信息丢失。

默认出厂设置:串口波特率为 9600bps、通信频道为 C001、串口透传模式为 FU3。

HC-12 模块出厂时串口透传模式默认为 FU3。此时,模块工作于全速状态下,空闲工作电流为 16mA 左右。 在此模式下,模块会根据串口波特率自动调节无线传输空中波特率,其对应关系如下表所示:

为了使通信距离尽量远,可以把串口波特率设为低波特率。如果是短时间传送大量数据,则把串口波特率设为 高波特率,但要牺牲通信距离。不同空中波特率条件下模块的接收灵敏度如下表所示:

在模块“SET”脚置低电平时,可以通过 AT 指令来设置串口透传模式(详见下面章节的介绍)。 FU1 模式为较省电模式,此时模块的空闲工作电流为 3.6mA 左右。此模式下模块同样可以设置如上面表格 所示的 8 种串口波特率,但空中波特率统一为 250000bps,通信距离较短。 FU2 模式为省电模式,此时模块的空闲工作电流为 80μA 左右。此模式下模块只支持 1200 bps、2400 bps 和 4800 bps 的串口波特率,空中波特率统一为 250000bps,通信距离较短。此模式下不能设置成其它串口波特 率。同时,在 FU1 和 FU3 模式下设置为 FU2 模式时,超过 4800 bps 的串口波特率一律会被自动降低为 4800 bps。FU2 模式下,只适用传输少量数据(每个数据包在 20 个字节以内),数据包发送时间间隔不能太短(最好 在 2秒以上) ,否则会造成数据丢失。 FU4 模式为超远距离通信模式,串口波特率固定为 1200bps,空中波特率为 500bps。从其它模式转到 FU4 后,串口波特率会自动转为 1200bps。该模式下,只适用传输少量数据(每个数据包在 60 个字节以内),数据包 发送时间间隔不能太短(最好在 2 秒以上),否则会造成数据丢失。

单个测试模块

测试步骤;

1.使用USB转串口,按接线图连接好模块并插在电脑上,因为我们需要测试模块与设置模式等,记住我们一定要将SET端置地(五根线)。

2.打开串口助手,设置串口,记住波特率默认9600,设置完打开串口即可。

3.输入指令AT(AT为测试通讯是否正常,模块好坏的指令),如果返回OK,模块工作正常。

4.输入指令AT+RX,可以查看现在的工作参数,工作在哪个透传模式、波特率,通讯频道、发射功率。

5.我们为了方便。需要设置模块的透传模式为FU3,波特率9600,通讯频道设置为CH001。(设置这些需要相应的指令)

6.按上面步骤操作第二个模块。

注意:SET置地是为了测试,如果你已经完成了测试,要使用它,去掉SET这根线,四根线即可工作。

两个模块之间通讯测试

模块一般两个或两个以上连接使用,以半双工的方式互相传送数据。同时,透传模式波特率无线通信频道 必须设置成一样。

我们在测试单个模块时的第四步,查看了模块的工作参数:透传模式、波特率、无线通信频道、发射功率。而透传模式波特率无线通信频道 必须设置成一样,如果你两个模块不一样,就不能通讯。

所以我们在第五步将工作参数设置为一样。

测试步骤:

如果你完成了上面的步骤,将两个模块都插在电脑上,打开两个串口,即可工作。

如果你想实现电脑与单片机之间的通讯,按接线图连接好模块(四根线),保证单片机串口初始化没有问题,即可实现通讯。

无线传输模块HC-12的更多相关文章

  1. 24L01-2.4G无线传输模块调节记录

    在调试24L01的时候,虽然能用到别人的程序,但仅仅是程序的初始化,并没有告诉我们如何去后续的操作,如何去再次发送一组数.最近调试24L01接近尾声,将逐一的地方总结下来,以便以后查阅,也供其他人借鉴 ...

  2. 使用MUART0-P-1-2设置无线PM2.5感测环境

    信息搜集–> 处理分析–> 动作执行,这是IoT环境中最基本的组成要素,传感器搜集环境信息后,透过指定的通讯协议传送到至控制中枢,经过处理分析后再将命令送交各device端执行.要实现这样 ...

  3. 基于能量收集的智能家居-2013国家级大学生创业实践项目申报_商业计划书_V0.2

    SmartHome项目商业计划 基于能量收集的 免电池无线智能家居系统    IA-SmartHome团队    2012.12     l  基于无线的智能家居解决方案,节省施工成本: l  基于能 ...

  4. Arduino单片机使用和开发问题记录

    1.将程序上传到板子时Arduino IDE提示“avrdude: stk500_getsync(): not in sync: resp=0x00” 网上查遇到这个问题的人比较多,有说驱动问题的,有 ...

  5. Arduino单片机使用和开发问题记录(转)

    源:Arduino单片机使用和开发问题记录 1.将程序上传到板子时Arduino IDE提示“avrdude: stk500_getsync(): not in sync: resp=0x00” 网上 ...

  6. 基于Android 的蓝牙A2DP 功能的实现

    摘 要:蓝牙(Bluetooth)技术是一种低成本的无线数据与数字通信的开放性全球规范. Android 是Google 于2007 年11 月5 日宣布的基于Linux平台开源手机操作系统名称,该平 ...

  7. 基于Linux的智能家居的设计(3)

    2  硬件设计 本课题的硬件设计包含主控制器.传输数据设计.数据採集设计.控制驱动设计.显示设计.门禁设计. 2.1  主控制器 依据方案三选择S3C6410主控芯片,S3C6410是由Samsung ...

  8. 物联网(莹石云)WIFI一键配置原理分析(zz)

    最近打算做一款自己的无线传输模块用来实现光伏电站的数据接入,希望可以尽量简化接入流程,其中wifi密码的配置就是一个比较麻烦的事情,想到最近使用萤石摄像头时,wifi密码配置似乎很简单,他们是怎么做到 ...

  9. SendMessage函数的常用消息及其应用大全

    来源:http://www.360doc.com/content/09/0814/10/19147_4907488.shtml,非常全面的解释. 文本框控件通常用于输入和编辑文字.它属于标准 Wind ...

随机推荐

  1. GLSL语法入门

    变量 GLSL的变量命名方式与C语言类似.变量的名称可以使用字母,数字以及下划线,但变量名不能以数字开头,还有变量名不能以gl_作为前缀,这个是GLSL保留的前缀,用于GLSL的内部变量.当然还有一些 ...

  2. LC 856. Score of Parentheses

    Given a balanced parentheses string S, compute the score of the string based on the following rule: ...

  3. Python:目录

    ylbtech-Python:目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://ylbtec ...

  4. 校验表单demo

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. tensorflow卷积神经网络与手写字识别

    1.知识点 """ 基础知识: 1.神经网络(neural networks)的基本组成包括输入层.隐藏层.输出层.而卷积神经网络的特点在于隐藏层分为卷积层和池化层(po ...

  6. java高级之Io流

    1.1,什么是io流? 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作 ...

  7. 美化Eclipse-背景

    为了美化Eclipse,请登录主题网站http://www.eclipsecolorthemes.org/ 下载EPF配置文件(截图如下),并导入eclispe即可. 导入方法: (1)从File菜单 ...

  8. IOS input框轻点无效修复方法

    FastClick.prototype.focus = function(targetElement) { targetElement.focus();//加入这一句话就OK了 };

  9. git介绍以及常用命令操作

    一.git与SVN的对比[面试] ①git是分布式的,SVN是集中式的(最核心) ②git是每个历史版本都存储完整的文件,便于恢复,SVN是存储差异文件,历史版本不可恢复(核心) ③git可离线完成大 ...

  10. windows下打开.ipynb文件

    windows下打开.ipynb文件1.首先要下载python,设置环境变量2.下载pip,设置环境变量3.打开命令行,进入到python的Scripts文件中,按顺序执行下面三个命令pip inst ...