【毕业设计 - 教学】单片机常用模块:433无线数传通信

201 篇文章 119 订阅
187 篇文章 117 订阅


1 简介

Hi,大家好,这里是丹成学长,今天向大家介绍一个单片机开发常用模块:433无线数传模块

单片机常用模块:433无线数传模块

大家可用于 课程设计 或 毕业设计

2 433 模块介绍

2.1 什么是433M无线模块?

无线收发模块433MHz,采用高频射频技术,所以又称RF433射频小模块。它以全数字技术生产的单IC射频前端和ATMEL的AVR单片机组成,可实现高速数据信号传输的微型收发器,实现对无线传输数据的打包、检错和纠错处理。部件均采用工业级标准,工作稳定可靠,体积小,安装方便。用于安全报警,无线自动抄表,家庭和工业自动化,远端遥控,无线数传等广泛领域。

在这里插入图片描述

2.2 433M无线数传模块用途。

数据采集功能:采集各类仪器输出的脉冲、模拟或RS232/RS485串口信号。

储存功能:本机循环储存监控数据,不掉电。

通讯功能:采用433MHZ免费频段对外通讯,无需授权。

警报功能:监测到的数据越多,报警信息就越多。

外部供电功能:可对外提供直流电源,供仪表/变送器使用。

RemoteManagement功能:支持远程参数设置,程序升级。

2.3 应用领域

一、智能家居安全预警系统。

除了金钱,人们现在最看重的是什么呢?只是为了个人安全。年年发生的入室抢劫、偷窃,甚至有些女生对自己的人身伤害等等不在少数。在受害人不注意的情况下,这些犯罪团伙往往会得逞。而且智能家居安全报警系统能在最短的时间内再次给我们提醒。例如:在安保系统下,犯罪团伙在深夜入室行窃时,可先进行提醒。也可能是陌生人经常在门口进行徘徊提醒等。

二、远程控制。

每个人对遥控器都不陌生,大家日常接触的电视遥控器、空调遥控器、汽车钥匙等等都是需要使用无线模块的。

三、远程抄表。

在物联网高速发展的今天,以前挨家挨户、逐个去手工抄表的传统方式将被时代慢慢淘汰,远程抄表可以大大减少我们付出的人力、物力和时间,因此智能远程抄表将成为这一领域的发展趋势。采用LoRaTM扩频调制跳频技术,LoRaF30大功率无线433m无线模块的通信距离和接收灵敏度均远远超过其它FSK和GFSK方案,并且其多个传输信号占用同一信道,不受干扰,使得其具有超强的抗干扰能力,可广泛应用于远程工业控制、远程抄表等领域。

3 发射模块

在这里插入图片描述

  • 1、通讯方式:调幅AM
  • 2、工作频率:315MHz/433MHz
  • 3、频率稳定度:±75kHz
  • 4、发射功率:≤500mW
  • 5、静态电流:≤0.1μA
  • 6、发射电流:3~50mA
  • 7、工作电压:DC 3~12V
  • 8、发射头(采用2SC3357三极管)

4 接收模块

在这里插入图片描述
体积:30x13x8毫米

主要技术指标:

  • 1、通讯方式:调幅AM
  • 2、工作频率:315MHz/433MHz
  • 3、频率稳定度:±200kHz
  • 4、接收灵敏度:-106dBm
  • 5、静态电流:≤5mA
  • 6、工作电流:≤5mA
  • 7、工作电压:DC 5V
  • 8、输出方式:TTL电平

433 实例

这是用433做的远程智能遥控开关,手上拿的是单片机做的433发射器

在这里插入图片描述

5 部分实现代码

基于stm32的部分433驱动代码

#include "conf_433m.h"

uint8_t M_RecData[RecLen] = {0};
uint8_t *M_pIndex = M_RecData;
uint8_t *M_pWrite = M_RecData;
uint8_t *M_pRead = M_RecData;
uint8_t M_DataLen = 0;

void Wireless_433MConfiguration(void)
{
	 GPIO_InitTypeDef    GPIO;
    
    //Enable APB2 Bus
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    
    //Register IO 
    GPIO.GPIO_Pin   = GPIO_Pin_5;
    GPIO.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO.GPIO_Mode  = GPIO_Mode_Out_OD;
    GPIO_Init(GPIOA, &GPIO);
	
	GPIO.GPIO_Pin   = GPIO_Pin_0;
    GPIO.GPIO_Mode  = GPIO_Mode_IPU;
    GPIO_Init(GPIOA, &GPIO);
	
	M_Mode_Config;
}

void Wireless_433MInitalized(void)
{
	uint8_t Wireless_433_Conf[15] = {0};
	uint16_t Base_Freq = 430;
	uint8_t i = 0;
	uint16_t Checksum = 0;
	//F8 00 00 00 28 12 34 12 34 00 00 02 B6
	//0  1  2  3  4  5  6  7  8  9  10 11 12
	Wireless_433_Conf[0] = 0xF8;
	Wireless_433_Conf[1] = Buad_Default;
	Wireless_433_Conf[2] = Rate_Defualt;
	Wireless_433_Conf[3] = (uint8_t)(((434 - Base_Freq)*10) / 256);
	Wireless_433_Conf[4] = (uint8_t)(((434 - Base_Freq)*10) % 256);
	Wireless_433_Conf[5] = 0x11;
	Wireless_433_Conf[6] = 0x11;
	Wireless_433_Conf[7] = 0x22;
	Wireless_433_Conf[8] = 0x22;
	Wireless_433_Conf[9] = RF_Buad_Defualt;
	Wireless_433_Conf[10] = Serial_Mode_default;
	Wireless_433_Conf[11] = Frequency_Default;
	
	for (i = 1; i < 12; i ++)
	{
		Checksum += Wireless_433_Conf[i];
	}
	Wireless_433_Conf[12] = (uint8_t)(Checksum % 256);
	
	printf("Master Config Cmd: ");
	for (i = 0; i < 13; i ++)
	{
		printf("%02X ", Wireless_433_Conf[i]);
	}
	printf("\r\n");
	
	for (i = 0; i  < 13; i ++)
	{
		USART_Send(USART2, Wireless_433_Conf[i]);
	}
	
	while(M_DataLen == 0);
	
	printf("M_RecData: %s\r\n", M_RecData);
	if (M_DataLen == 2)
	{
		if (M_RecData[0] == 'O' && M_RecData[1] == 'K')
			printf("Config Master PASS!\r\n");
	}
	else if (M_DataLen == 5)
	{
		printf("Config Master Error!\r\n");
	}
	else
	{
		printf("DataLen = %d!\r\n", M_DataLen);
	}
	
	M_DataLen = 0;
	memset(M_RecData, 0, RecLen);
	M_Mode_Work;
}

6 最后

  • 19
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值