read()



Açıklama

Gelen LoRaWAN verilerini okur. read (), Stream yardımcı program sınıfından miras alır.

Sözdizimi

modem.read ()

Parametreler

Yok

İadeler

gelen LoRaWAN verilerinin ilk baytı (veya veri yoksa -1) - int

Misal

/ *
Lora Gönderme ve Alma
Bu çizim, MKR WAN 1300/1310 LoRa modülü ile nasıl veri gönderileceğini ve alınacağını göstermektedir.
Bu örnek kod kamu malıdır.
* /


#include <MKRWAN.h>

LoRaModem modem ;

// Murata çipini modül olarak kullanıyorsanız rahatsızlık
// LoRaModem modem (Seri1);

#include "arduino_secrets.h"
// Lütfen hassas verilerinizi Gizli sekmesine veya arduino_secrets.h girin
Dize appEui = SECRET_APP_EUI ;
String appKey = SECRET_APP_KEY ;

void setup ( ) {
// bir kez çalıştırmak için kurulum kodunuzu buraya yerleştirin:
Seri . başlar ( 115200 ) ;
süre ( ! Seri ) ;
// bunu bölgesel bandınızla değiştirin (ör. US915, AS923, ...)
eğer ( ! modem. başlar ( EU868 ) ) {
Seri . println ( "Modül başlatılamadı" ) ;
ise (1) {}
} ;
Seri . print ( "Modül sürümünüz:" ) ;
Seri . println ( modem. sürüm ( ) ) ;
Seri . print ( "Cihazınızın EUI'si:" ) ;
Seri . println ( modem. cihazıEUI ( ) ) ;

int bağlı = modem. joinOTAA ( appEui , appKey ) ;
if ( ! bağlı ) {
Seri . println ( "Bir şeyler ters gitti; kapalı mısın? Bir pencerenin yanına git ve tekrar dene" ) ;
ise (1) {}
}

// Yoklama aralığını 60 saniyeye ayarlayın.
modem. minPollInterval ( 60 ) ;
// NOT: bağımsız olarak bu ayar ile modem
// her 2 dakikada bir birden fazla mesaj göndermeye izin vermeyin,
// bu yazılım tarafından uygulanır ve değiştirilemez.
}

void loop ( ) {
Seri . println ( ) ;
Seri . println ( "Ağa göndermek için bir mesaj girin" ) ;
Seri . println ( "(satır sonu 'NL' öğesinin etkin olduğundan emin olun)" ) ;

while ( ! Serial . available ( ) ) ;
Dize msg = Seri . readStringUntil ( ' \ n ' ) ;

Seri . println ( ) ;
Seri . print ( "Gönderiliyor:" + msg + "-" ) ;
for ( unsigned int i = 0 ; i < msg. uzunluk ( ) ; i ++ ) {
Seri . baskı ( msg [ i ] >> 4 , HEX ) ;
Seri . baskı ( msg [ i ] & 0xF , HEX ) ;
Seri . yazdır ( "" ) ;
}
Seri . println ( ) ;

int err ;
modem. beginPacket ( ) ;
modem. yazdırma ( msj ) ;
err = modem. endPacket ( gerçek ) ;
if ( err > 0 ) {
Seri . println ( "Mesaj doğru gönderildi!" ) ;
} başka {
Seri . println ( "Mesaj gönderme hatası :(" ) ;
Seri . println ( "(sinyal gücüne bağlı olarak dakika başına sınırlı miktarda mesaj gönderebilirsiniz" ) ;
Seri . println ( "her birkaç saniyede bir mesajdan dakikada 1 mesaja kadar değişebilir)" ) ;
}
gecikme ( 1000 ) ;
if ( ! modem. available ( ) ) {
Seri . println ( "Şu anda bir downlink mesajı alınmadı." ) ;
dönüş ;
}
char rcv [ 64 ] ;
int i = 0 ;
while ( modem. available ( ) ) {
rcv [ i ++ ] = ( karakter ) modem. read ( ) ;
}
Seri . print ( "Alınan:" ) ;
for ( unsigned int j = 0 ; j < i ; j ++ ) {
Seri . baskı ( rcv [ j ] >> 4 , HEX ) ;
Seri . baskı (RCV [j] 0xf, HEX);
Seri . yazdır ( "" ) ;
}
Seri . println ( ) ;
}

Ayrıca bakınız