无线传输模块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. glance-----常用命令

    #查看镜像 openstack image list glance image-list #镜像导出 openstack image save <image_id> --file < ...

  2. JNI知识扩展

    JNI(Java Native Interface,JAVA原生接口) 使用JNI可以使Java代码和其他语言写的代码(如C/C++代码)进行交互. 问:为什么要进行交互? |- 首先,Java语言提 ...

  3. 使用SlidingDrawer(滑动式抽屉)实现抽屉效果

    SlidingDrawer隐藏屏外的内容,并允许用户通过handle以显示隐藏内容.它可以垂直或水平滑动,它有俩个View组成,其一是可以拖动的handle,其二是隐藏内容的View.它里面的控件必须 ...

  4. AWS EC2 外网不能访问的坑

    概述 今天我在 AWS EC2 上配置并启动了 nginx,但是通过外网不能访问,查了一下资料终于解决了,记录下来供以后开发时参考,相信对其它人也有用. 外网访问不了的原因 外网访问不了的原因不外乎有 ...

  5. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_3 响应之返回值是void类型

    定义先的标签 返回void 测试默认的跳转 虽然是404但是方法执行了. 默认请求了 testVoid.jsp这个页面.请求路径叫什么 就访问哪个jsp页面. 使用request请求转发 抛出的异常 ...

  6. IntelliJ IDEA 设置检查 serialVersionUID

    IntelliJ IDEA 设置检查 serialVersionUID 背景介绍 我们在使用IntelliJ IDEA创建Java类的时候,有时候需要实现序列化接口 implements Serial ...

  7. gl-transitions 【68个转场效果图】

    angular.glsl Bounce.glsl BowTieHorizontal.glsl BowTieVertical.glsl burn.glsl ButterflyWaveScrawler.g ...

  8. 只含有一个Excel模板的工程发布问题

    遇到这样一个问题,某个项目不是dynamic web project,也不是java工程,里面只有一个Excel模板,这样的话,不能打成war包和jar包,不能通过eclipse发布至Tomcat,但 ...

  9. 整合Django的信息显示框架messages framework

    ##主要用在view.login函数,不管登录是否成功,都会设置message变量,然后在login.html显示 from django.contrib import messages#需要导的包 ...

  10. Qt qss 动态属性-不同条件不同显示

    一. 1.为了用户界面外观的动态变化,属性选择器可以与动态属性组合使用. 2.当一个属性值变化时,所引用的样式不会自动更新.相反地,必须手动触发更新才会生效.unpolish()用于清理之前的样式,而 ...