2021年5月15日土曜日

DHT22+NRF24L01 温度ロガー…その8

NRF24L01+ Wireless Transceiver Module

今回からDHT22とNRF24L01+を使って無線実験を行います。
稚拙な日記を読んで下さる熱心な生徒様用に…カエルとパラボラアンテナのイラストが入ったネームタグを作ってみました。


1対1の通信であれば参考スケッチのコピペだけで動かす事が出来たのでした。

続く…

/*****************************************
2021/05/15
DHT22データ・Transmitter・送信
使用チャンネル:88ch
VCC  3.3V紫
GND  黒
SCK  13緑
MISO 12白 
MOSI 11青
CE   9黄
CSN  8橙
 *****************************************/
//NRF24L01ライブラリ読込
#include "DHT.h"
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
//DHTライブラリー読込 DHTピンは4番 灰
#define DHTPIN 4  
#define DHTTYPE DHT22 
DHT dht(DHTPIN, DHTTYPE);
RF24 myRadio (9, 8);
byte addresses[][6] = {"00001"};
const int led_pin = 13;
//構造体の定義
struct package
{
  float temperature ;
  float humidity ;
};
typedef struct package Package;
Package data;

//
void setup()
{
    Serial.begin(9600);
    pinMode(led_pin, OUTPUT);
    dht.begin();
    myRadio.begin();
    //RFチャンネル番号(0~127)を書き込む  
    myRadio.setChannel(88); 
    myRadio.setPALevel(RF24_PA_MAX);
    myRadio.setDataRate( RF24_250KBPS ) ; 
    myRadio.openWritingPipe(00001);
    delay(3000);
}
void loop()
{

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

 readSensor();

  Serial.print("Temp:");

  Serial.print(data.temperature);

  Serial.println("C");

  Serial.print("RH  :");

  Serial.print(data.humidity);

  Serial.println("%");

  myRadio.write(&data, sizeof(data)); 

  digitalWrite(led_pin, LOW);

  delay(3000);

}

void readSensor()

{

 data.humidity = dht.readHumidity();

 data.temperature = dht.readTemperature();

}