English
English
中文
LoRa/FSK無線ブレークアウト基板
M5Stack に接続例
他の例としてM5Stackにつないでみます。
M5Stackは3V系なのでレベル変換が不要な分簡単につなぐことができます。
この例もあまり実用的ではありませんが、使い方の例として見て下さい。
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);
}
}
}
}
サイズ的に内蔵できそうです。やってみました。 M5Stack用のモジュールも作りました。