English

中文

他の例としてM5Stackにつないでみます。

M5Stackは3V系なのでレベル変換が不要な分簡単につなぐことができます。

この例もあまり実用的ではありませんが、使い方の例として見て下さい。

LoRa/FSK無線ブレークアウト基板

 M5Stack に接続例

Arduino UNOと同様に温度センサの値を送信します。

温度センサはかなり前の何かのイベントで買ったGroveセンサ SEN23292Pです。

このセンサはサーミスタを使っていてM5StickCでサーミスタの電圧をAD変換します。

これをシリアル変換してブレークアウト基板で送信します。

配線図


#include <math.h>

#include <M5StickC.h>

int a;

float temperature;

int B=3975;                  //B value of the thermistor

float resistance;


#define ADCMAX (4096.0 * 5.0 / 3.3)


void setup(){

  M5.begin();

  M5.Lcd.setRotation(3);

  M5.Lcd.setCursor(20,20,6);

  Serial1.begin(115200, SERIAL_8N1, 0, 26);

}


void loop(){

  a=analogRead(33);

  resistance=(float)(ADCMAX-a)*10000/a; //get the resistance of the sensor;

  temperature=1/(log(resistance/10000)/B+1/298.15)-273.15;

//convert to temperature via datasheet ;

  Serial1.println(temperature);

  M5.Lcd.setCursor(20,20);

  M5.Lcd.println(temperature);

  delay(5000);

}

スケッチ

送信側

スケッチ

受信側

配線図

ブレークアウト基板が受信するとシリアルデータを出力し、M5Stackで表示をします。


#include <M5Stack.h>


void setup() {

  M5.begin();

  M5.Lcd.setTextSize(6);

  Serial2.begin(115200);

}


void loop() {

  if (Serial2.available()) {

    M5.Lcd.clear();

    delay(100);

    M5.Lcd.setCursor(20,20);

    while (Serial2.available()) {

      uint8_t ch = Serial2.read();

      if (ch >= ' '){

        M5.Lcd.write(ch);

      }

    }

  }

}

PDF

PDF

サイズ的に内蔵できそうです。やってみました。