色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于微控制器的433MHz發射器和接收器模塊間的通信方案

454398 ? 來源:一板網 ? 作者:風箏 ? 2020-10-28 14:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在制作基于微控制器的項目時,有時會需要在兩個設備之間進行通信,要么是基于雙工/收發器的操作(兩個設備都可以同時發送和接收),要么是基于半雙工的操作,其中通信是一個單向的(正在接收的設備無法發送,以及正在發送數據的設備無法接收)。

有很多方式可以實現上述兩種通信模式中的任何一種,并且這些選擇通常取決于項目的需求,尤其是設備之間的距離和成本。對于兩個微控制器之間的短距離、低預算的通信方式,其中一種最優選使用的方式是使用433MHz RF發送器和接收器模塊的射頻通信。在本篇文章中,我們將介紹如何使用這些模塊在兩個Arduino開發板之間建立通信。

433 MHz發射器和接收器模塊

這些模塊因其低成本和易用性在創客DIY愛好者中非常受歡迎。它們用于兩個微控制器之間的所有短距離、半雙工的通信形式,其中一個微控制器用作發送器,另一個微控制器用作接收器。這些模塊是ASK(幅移鍵控)或OOK(開關鍵控)型RF模塊,這意味著它們在發送邏輯“零”時通常不消耗功率,因此消耗的功率非常低。這種低功耗使其在基于電池的實施中非常有用。下面列出了一些發射器和接收器模塊的規格。

433MHz發射器模塊的規格

√ 工作電壓:3V – 12V

√ 工作電流:最大小于40mA,最小9mA

√ 諧振模式:(SAW)

√ 調制模式:ASK

√ 工作頻率:433.92MHz

√ 發射功率:25mWF

√ 頻率誤差:+ 150kHz(max)

√ 通訊速率:小于10Kbps

√ 發射范圍:90m(在開放空間)

433MHz接收器模塊規格

√ 工作電壓:5.0VDC + 0.5V

√ 工作電流:≤5.5mAmax

√ 調制模式:OOK / ASK

√ 工作頻率:433.92MHz

√ 帶寬:2MHz

√ 靈敏度:超過–100dBm(50Ω)

為了演示使用這些模塊可以輕松地將無線功能添加到項目中,我們將制作一個帶有遠程數據顯示的氣象站。氣象站將主要由溫濕度傳感器和433 RF發射器模塊組成。它將測量環境的溫度和濕度,并將其通過RF發送器發送到ST7735 1.8寸彩色TFT顯示屏上的顯示單元(通過RF接收器模塊接收)。

所需的組件

● Arduino Uno開發板

● 433Mhz射頻套件

● DHT22溫濕度傳感器

● 1.8寸彩色TFT顯示屏

● 面包板

● 跳線

原理圖

該項目有兩個原理圖。第一個用于發送器,該發送器獲取環境的溫度和濕度,并將其發送到項目的接收器,后者在顯示屏上顯示數據。

發送器電路原理

發送器電路包括一個Arduino開發板、DHT22溫濕度傳感器以及433MHz RF發送器模塊。當Arduino與計算機斷開連接時,可以使用電池組為Arduino提供電源。如下圖所示連接組件。

接收器電路原理圖

接收器電路由433 MHz射頻接收器模塊、ST7735 1.8寸彩色TFT顯示屏和Arduino Uno開發板組成。如下圖所示連接組件。

完成所有連接后,我們現在可以為該項目編寫代碼。

代碼

就像我們必須搭建兩個設備一樣,我們將為該項目編寫兩個不同的代碼。其中一個代碼是控制發送器,另一種代碼是控制接收器。為了輕松編寫本文的代碼,我們將使用可輕松驅動項目各部分的庫。對于RF模塊,我們將使用virtual wire庫來發送和接收數據,而對于接收到的數據的顯示,我們將使用Adafruit GFX和Adafruit ST7735庫來輕松更新ST7735 LCD顯示屏。我們將使用Adafruit DHT傳感器庫輕松地從DHT22傳感器獲取溫度和濕度數據。

代碼背后的算法很簡單。對于發射器,從DHT22獲取溫度和濕度值,然后通過RF發射器發送到接收器。對于接收器,使用RF接收器模塊獲取由發送器發送的溫度和濕度值,然后在LCD上顯示。與往常一樣,我們將對這兩個項目的代碼進行簡要說明。

發射器的代碼

首先包含將在代碼中使用的庫。

//Written by Nick Koumaris

//info@educ8s.tv

#include 《VirtualWire.h》

#include “DHT.h”

之后,我們聲明將DHT連接到的Arduino的引腳,并指定要使用的DHT的類型。

#define DHTPIN 4

#define DHTTYPE DHT22

接下來,我們定義Arduino的引腳,該引腳將用作我們的數據傳輸引腳(連接到RF發送器模塊的數據引腳),然后創建將一個用于發送數據的結構體package。

const int led_pin = 13;

const int transmit_pin = 12;

struct package

{

float temperature ;

float humidity ;

};

接下來,我們定義一個package實例,并創建DHT類的實例以處理DHT傳感器。

typedef struct package Package;

Package data;

DHT dht(DHTPIN, DHTTYPE);

完成這些操作后,我們轉到void setup()函數,在其中設置TX引腳和其他參數以初始化RF模塊。

void setup()

{

// Initialise the IO and ISR

vw_set_tx_pin(transmit_pin);

vw_set_ptt_inverted(true); // Required for DR3100

vw_setup(500); // Bits per sec

pinMode(led_pin, OUTPUT);

}

接下來是void loop()函數,我們可以使用 readSensor()函數獲取溫度和濕度。獲取數據后,使用vw_send()函數發送數據。延遲2000毫秒,以在數據之間創建一段時間間隔,并確保發送前另一個已發送完成。

void loop()

{

digitalWrite(led_pin, HIGH); // Flash a light to show transmitting

readSensor();

vw_send((uint8_t *)&data, sizeof(data));

vw_wait_tx(); // Wait until the whole message is gone

digitalWrite(led_pin, LOW);

delay(2000);

}

接收器的代碼

首先包含將要使用的庫。

//Written by Nick Koumaris

//info@educ8s.tv

#include 《VirtualWire.h》

#include 《Adafruit_ST7735.h》

#include 《Adafruit_GFX.h》

接下來,我們聲明與LCD引腳相連的Arduino引腳。

#define TFT_CS 10

#define TFT_RST 8

#define TFT_DC 9

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

// Option 2: use any pins but a little slower

#define TFT_SCLK 13 // set these to be whatever pins you like!

#define TFT_MOSI 11 // set these to be whatever pins you like!

接下來,我們聲明RF接收器模塊的數據引腳所連接的Arduino引腳(receive_pin),并創建char型變量來保存溫度和濕度值。

const int receive_pin = 12;

char temperatureChar[10];

char humidityChar[10];

接下來,我們創建一個類似于發射器代碼中的結構體package。

struct package

{

float temperature = 0.0;

float humidity = 0.0;

};

完成此操作后,我們轉到void setup()函數,在該函數中我們初始化顯示屏,RF接收器模塊設置比特率并啟動接收器。

void setup()

{

tft.initR(INITR_BLACKTAB);

tft.fillScreen(ST7735_BLACK);

printUI();

delay(1000);

// Initialise the IO and ISR

vw_set_rx_pin(receive_pin);

vw_setup(500); // Bits per sec

vw_rx_start(); // Start the receiver PLL running

}

接下來,是void loop()函數。通過使用vw_have_message()函數檢查是否已收到消息。如果收到消息,我們將從中提取溫度和濕度數據,并將其顯示在LCD上。

void loop()

{

uint8_t buf[sizeof(data)];

uint8_t buflen = sizeof(data);

if (vw_have_message()) // Is there a packet for us?

{

vw_get_message(buf, &buflen);

memcpy(&data,&buf,buflen);

Serial.print(“ Package:”);

Serial.print(data.temperature);

String temperatureString = String(data.temperature,1);

temperatureString.toCharArray(temperatureChar,10);

tft.fillRect(10,20,80,30,ST7735_BLACK);

printText(temperatureChar, ST7735_WHITE,10,20,3);

String humidityString = String(data.humidity,1);

humidityString.toCharArray(humidityChar,10);

tft.fillRect(10,95,80,100,ST7735_BLACK);

printText(humidityChar, ST7735_WHITE,10,95,3);

Serial.print(“ ”);

Serial.println(data.humidity);

}

}

該代碼還包括一些用于以更用戶友好的方式顯示結果的函數。

void printText(char *text, uint16_t color, int x, int y,int textSize)

{

tft.setCursor(x, y);

tft.setTextColor(color);

tft.setTextSize(textSize);

tft.setTextWrap(true);

tft.print(text);

}

void printUI()

{

printText(“TEMPERATURE”, ST7735_GREEN,30,5,1); // Temperature Static Text

printText(“o”, ST7735_WHITE,90,13,2);

printText(“C”, ST7735_WHITE,105,20,3);

printText(“HUMIDITY”, ST7735_BLUE,30,80,1); // Temperature Static Text

printText(“%”, ST7735_WHITE,90,95,3);

}

效果演示

將相應的代碼上傳到每個Arduino開發板。 兩個Arduino開發板都可以使用電池組供電。 開機后幾分鐘,您應該會在LCD上看到溫度和濕度數據。

433MHz發射器和接收器模塊的范圍通常很小,但是通過焊接外部天線,它們的通訊范圍可以增大。
編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7960

    瀏覽量

    155504
  • 接收器
    +關注

    關注

    15

    文章

    2574

    瀏覽量

    74053
  • 發射器
    +關注

    關注

    6

    文章

    879

    瀏覽量

    54599
收藏 1人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Analog Devices Inc. AD9986 4T2R射頻發射器和觀察接收器數據手冊

    Analog Devices Inc. AD9986 4T2R直接射頻發射器和觀察接收器是一款高度集成的器件,采用16位、12GSPS最大采樣率射頻DAC內核和12位、6GSPS速率射頻ADC內核。AD9986提供四個發射器通道
    的頭像 發表于 06-30 14:34 ?181次閱讀
    Analog Devices Inc. AD9986 4T2R射頻<b class='flag-5'>發射器</b>和觀察<b class='flag-5'>接收器</b>數據手冊

    LE 發射器接收器測試返回錯誤結果是什么原因導致的?

    我有特定的代碼運行來啟動和停止一些無線電頻率測試。 目前只關注 BLE 發射器接收器測試。 然而,此處第 6 節 LE 測試結束時的文檔指出,當 le 發射器測試處于活動狀態時,接收
    發表于 06-30 08:08

    用芯嶺技術433接收發射芯片開發的串口模塊

    發送,并將接收到的射頻信號轉換回數據。433芯片通常具備良好的抗干擾能力和較長的通信距離。芯嶺技術的XL4456,XL520,XL710都是高性能,低功耗的315/433M無線芯片,X
    的頭像 發表于 06-04 11:45 ?219次閱讀
    用芯嶺技術<b class='flag-5'>433</b><b class='flag-5'>接收發射</b>芯片開發的串口<b class='flag-5'>模塊</b>

    用芯嶺技術XL433接收發射芯片開發的火災報警

    XL433/315接受發射芯片分別有以下幾個芯片: 一、發射芯片 XL4456 工作頻率:250–450MHz(兼容315/433MHz)1
    發表于 06-04 11:14

    ESD保護 RS-232發射器/接收器HIN208E數據手冊

    HIN202E、HIN206E、HIN207E、HIN208E、HIN211E、HIN213E、HIN232E 系列 RS-232 發射器 /接收器接口電路符合所有美國電子工業協會(EIA)高速
    的頭像 發表于 05-25 17:21 ?261次閱讀
    ESD保護 RS-232<b class='flag-5'>發射器</b>/<b class='flag-5'>接收器</b>HIN208E數據手冊

    HIN206E RS-232發射器/接收器數據手冊

    HIN202E、HIN206E、HIN207E、HIN208E、HIN211E、HIN213E、HIN232E 系列 RS-232 發射器 /接收器接口電路符合所有美國電子工業協會(EIA)高速
    的頭像 發表于 05-25 17:13 ?221次閱讀
    HIN206E RS-232<b class='flag-5'>發射器</b>/<b class='flag-5'>接收器</b>數據手冊

    HIN202E RS-232發射器/接收器數據手冊

    HIN202E、HIN206E、HIN207E、HIN208E、HIN211E、HIN213E、HIN232E 系列 RS-232 發射器 /接收器接口電路符合所有美國電子工業協會(EIA)高速
    的頭像 發表于 05-25 17:00 ?212次閱讀
    HIN202E RS-232<b class='flag-5'>發射器</b>/<b class='flag-5'>接收器</b>數據手冊

    帶0.1F外部電容的+5V供電RS-232發射器/接收器HIN202數據手冊

    HIN202、HIN206、HIN207、HIN208、HIN211、HIN213 系列 RS-232 發射器 / 接收器接口電路符合所有美國電子工業協會(EIA)RS-232E 和 V.28 標準
    的頭像 發表于 05-25 16:49 ?189次閱讀
    帶0.1F外部電容的+5V供電RS-232<b class='flag-5'>發射器</b>/<b class='flag-5'>接收器</b>HIN202數據手冊

    +5V供電的RS-232發射器/接收器HIN232數據手冊

    僅需單個 + 5V 電源供電,并集成板載電荷泵電壓轉換,可從 5V 電源生成 + 10V 和 - 10V電源。 *附件:+5V供電的RS-232發射器接收器HIN232數據手冊.pdf 該系列器件
    的頭像 發表于 05-25 16:29 ?290次閱讀
    +5V供電的RS-232<b class='flag-5'>發射器</b>/<b class='flag-5'>接收器</b>HIN232數據手冊

    紅外發射器是什么_紅外發射器怎么安裝

    紅外發射器是一種通過紅外線發射管在一定范圍內發射光線,從而達到控制信號作用的遙控設備。以下是對紅外發射器的詳細介紹:
    的頭像 發表于 01-28 13:46 ?2052次閱讀

    一文詳解:區分315MHz433MHz遙控模塊

    315MHz433MHz頻段屬于國家規定的開放頻段,允許小功率、短距離的無線電設備自由使用,無需特殊審批,因此其已被廣泛應用在無線遙控模塊之中,那么315MHz
    的頭像 發表于 01-06 15:22 ?3364次閱讀
    一文詳解:區分315<b class='flag-5'>MHz</b>和<b class='flag-5'>433MHz</b>遙控<b class='flag-5'>模塊</b>

    TMS320DM6467支持HDMI發射器/接收器

    電子發燒友網站提供《TMS320DM6467支持HDMI發射器/接收器.pdf》資料免費下載
    發表于 10-15 11:36 ?0次下載
    TMS320DM6467支持HDMI<b class='flag-5'>發射器</b>/<b class='flag-5'>接收器</b>

    無線充電接收器怎么使用

    無線充電接收器是一種利用電磁感應原理實現無線充電的設備,它能夠將無線充電發射器發出的電磁波轉換為電能,為手機、耳機、智能手表等設備提供充電。無線充電接收器的使用過程相對簡單,但要實現高效、安全的充電
    的頭像 發表于 09-02 09:20 ?1981次閱讀

    無線充電接收器對手機有損害嗎

    原理。在無線充電系統中,通常包括一個發射器(無線充電底座)和一個接收器(內置于手機或其他設備中)。發射器產生一個交變磁場,而接收器中的線圈感應這個磁場,從而產生電流,為設備充電。 無線
    的頭像 發表于 09-02 09:15 ?1624次閱讀

    適用于無線基礎設施的高速LVDS線路發射器/接收器SC5108

    適用于無線基礎設施的高速LVDS線路發射器/接收器SC5108
    的頭像 發表于 08-01 10:06 ?739次閱讀
    適用于無線基礎設施的高速LVDS線路<b class='flag-5'>發射器</b>/<b class='flag-5'>接收器</b>SC5108
    主站蜘蛛池模板: 国产AV亚洲国产AV麻豆 | 久久精品国产男包 | 野花香在线观看免费高清播放视频 | 精品国产成人系列 | 日韩精品a在线视频 | 2019久久这里只精品热在线观看 | 亚洲国产成人精品无码区APP | 日本另类xxxx | 日本无码欧美激情在线视频 | 色婷婷国产精品视频一区二区三区 | 港台三级大全 | nu77亚洲综合日韩精品 | 欧美另类videosbest| 无码乱人伦一区二区亚洲一 | 热久久2018亚洲欧美 | 亚洲国产综合久久久无码色伦 | 国产一区二区三区在线看片 | 97国产露脸精品国产麻豆 | 最近的中文字幕免费完整 | 国产区精品综合在线 | 月夜直播免费观看全集 | 国产精品99re6热在线播放 | 久久综合香蕉久久久久久久 | 99视频免费看 | 亚洲视频在线免费看 | 99影视久久电影网久久看影院 | 成人国产三级在线播放 | 果冻传媒mv国产陈若瑶主演 | 色姊姊真舒服 | 亚洲日本欧美国产在线视 | 男女久久久国产一区二区三区 | 4438全国免费观看 | 免费女人光着全身网站 | 欧美国产精品久久久乱码 | 老板吻我下身好爽到高潮 | 蜜芽无码亚洲资源网站 | 洗濯屋H纯肉动漫在线观看 羲义嫁密着中出交尾gvg794 | 中文字幕A片视频一区二区 中文字幕AV在线一二三区 | 黄色三级三级三级免费看 | 第一福利视频网站在线 | 琪琪电影午夜理论片YY6080 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品