找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1503|回復: 0
收起左側(cè)

Arduino單片機短距離無線溫度實時傳輸代碼

[復制鏈接]
ID:1083792 發(fā)表于 2023-6-23 01:52 | 顯示全部樓層 |閱讀模式
基本元器件:LCD1602顯示(IIC驅(qū)動)、DS18B20溫度傳感器、NRF24L01、Arduino-UNO板。

有LCD1602顯示的接收端主機代碼:
#include <OneWire.h>
#include <DallasTemperature.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define CE_PIN 9
#define CSN_PIN 10
#define CHANNEL 108
// DS18B20溫度模塊連接的引腳
#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

RF24 radio(CE_PIN, CSN_PIN);
const byte address[6] = "00001";
// I2C顯示屏連接的地址
LiquidCrystal_I2C lcd(0x27,16,2);

void setup() {
  Serial.begin(9600);
  sensors.begin();
  radio.begin();
  radio.setChannel(CHANNEL);
  radio.openReadingPipe(0, address);
  radio.startListening();
  lcd.init();
  lcd.backlight();
  }

void loop() {
  if(radio.available()) {
    float indoorTemp;
    radio.read(&indoorTemp, sizeof(indoorTemp));
    Serial.print("Indoor:");
    Serial.print(indoorTemp);
    Serial.print("℃");
    sensors.requestTemperatures();
    float outdoorTemp = sensors.getTempCByIndex(0);
    lcd.setCursor(0, 0);
    lcd.print("Indoor:");
    lcd.print(outdoorTemp);
    lcd.print("C");
    lcd.setCursor(0, 1);
    lcd.print("Outdoor:");
    lcd.print(indoorTemp);
    lcd.print("C");
    }
    delay(100);
    }

發(fā)射外界溫度信息的從機代碼:
#include <OneWire.h>
#include <DallasTemperature.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 9
#define CSN_PIN 10
#define CHANNEL 108// DS18B20溫度模塊連接的引腳
#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

RF24 radio(CE_PIN, CSN_PIN);
const byte address[6] = "00001";

void setup() {
  Serial.begin(9600);
  sensors.begin();
  radio.begin();
  radio.setChannel(CHANNEL);
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MIN); }

void loop() {
  sensors.requestTemperatures();
  float outdoorTemp = sensors.getTempCByIndex(0);
  Serial.print("Outdoor:");
  Serial.print(outdoorTemp);
  Serial.print("℃");
  radio.write(&outdoorTemp, sizeof(outdoorTemp));
  delay(1000); }
屏幕截圖(72).jpg
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表