SigFoxEventTrigger

Bir MKR Fox 1200 cihazı için bu örnek, bir olay tetiklendiğinde yapılandırılmış bir adrese bir e-posta göndermek için kartın düşük güç özelliklerini ve SigFox'un arka uç yardımcı programlarını kullanmanızı sağlar.

Gerekli Donanım

  • MKRFox1200 kartı
  • breadboard
  • jumper telleri
  • 2 anlık basma düğmesi

Devre

Kod

Kurulumda setup() SigFox donanımı başlatılır ve 0 ve 1 pinleri uyandırma kesme kaynağı olarak bildirilir.

void setup() {
  if (!SigFox.begin()) {
    //something is really wrong, try rebooting
    reboot();
  }

  //Send module to standby until we need to send a message
  SigFox.end();

  // attach pin 0 and 1 to a switch and enable the interrupt on voltage falling event
  pinMode(0, INPUT_PULLUP);
  LowPower.attachInterruptWakeup(0, alarmEvent1, FALLING);

  pinMode(1, INPUT_PULLUP);
  LowPower.attachInterruptWakeup(1, alarmEvent2, FALLING);
}
[Kodu Al]

loop yalnızca bir uyandırma olayı meydana gelirse yürütülür. Bu durumda kart ATM'ye , kartın kimliğine ve kesme kaynak numarasını içeren arka uca bir mesaj gönderir. Bu şekilde mesajı ayrıştırabiliriz (arka uç tarafı) ve özel bir e-posta gönderebiliriz.

Kodun tamamı aşağıdaki gibidir:

/ *
SigFox Olay Tetikleyici eğitimi

Bu çizim bir MKRFox1200'ün kullanımını göstermektedir
bildirimleriyle pille çalışan bir alarm sensörü oluşturma

Birkaç sensör (normalde açık) 1 ve 2 pinleri ile GND arasında kablolama yapmalıyız.

Bu örnek kod kamu malıdır.
* /


#include <SigFox.h>
#include <ArduinoLowPower.h>

// Sürekli modu etkinleştirmek için hata ayıklamayı false olarak ayarla
// ve seri baskıları devre dışı bırak
int debug = true ;

uçucu int alarm_source = 0 ;

void setup ( ) {

if ( debug == true ) {

// Serial1 yerine Serial1 kullanıyoruz çünkü hazırda bekleme durumuna geçiyoruz
// ve USB bağlantı noktası uyandırma sırasında karışabilir. Hata ayıklama baskılarını okumak için,
// 13-14 (TX-RX) pinlerini 3.3V USB-seri dönüştürücüye bağlayın

Seri1 . başlar ( 115200 ) ;
while ( ! Seri1 ) { }
}

eğer ( ! SigFox. begin ( ) ) {
// bir şey gerçekten yanlış, yeniden başlatmayı deneyin
reboot ( ) ;
}

// Bir mesaj göndermemiz gerekene kadar modülü bekleme moduna gönder
SigFox. end ( ) ;

if ( debug == true ) {
// Test ediyorsak hata ayıklama baskılarını ve LED gösterimini etkinleştir
SigFox. debug ( ) ;
}

// pimi 0 ve 1'i bir anahtara takın ve voltaj düşmesi olayında kesmeyi etkinleştirin
pinMode (0, INPUT_PULLUP);
LowPower. attachInterruptWakeup (0, alarmEvent1, düşme);

pinMode (1, INPUT_PULLUP);
LowPower. attachInterruptWakeup (1, alarmEvent2, düşme);
}

void loop ( )
{
// Bir olay tanınana kadar uyku
LowPower. uyku ( ) ;

// buraya gelirsek, bir etkinliğin alındığı anlamına gelir

SigFox. begin ( ) ;

if ( debug == true ) {
Seri1 . println ( "Sensördeki alarm olayı" + Dize ( alarm_source ) ) ;
}
gecikme ( 100 ) ;

// 3 bayt (ALM) + 4 bayt (ID) + 1 bayt (kaynak) <12 bayt
String to_be_sent = "ALM" + SigFox. ID ( ) + Dize ( alarm_source ) ;

SigFox. beginPacket ( ) ;
SigFox. baskı ( to_be_sent ) ;
int ret = SigFox. endPacket ( ) ;

// modülü kapat, bekleme moduna geri dön
SigFox. end ( ) ;

if ( debug == true ) {
if ( ret > 0 ) {
Seri1 . println ( "İletim yok" ) ;
} başka {
Seri1 . println ( "İletim tamam" ) ;
}

Seri1 . println ( SigFox. durumu ( SIGFOX ) ) ;
Seri1 . println ( SigFox. durumu ( ATMEL ) ) ;

// Tek bir etkinliği test edersek sonsuza kadar döngü yap
(1) {} etmektedir;
}
}

void alarmEvent1 ( ) {
alarm_source = 1 ;
}

void alarmEvent2 ( ) {
alarm_kaynak = 2 ;
}

void reboot ( ) {
NVIC_SystemReset ( ) ;
(1) ise;
}

Arka uç yapılandırması

Arka ucu kontrol panelinize erişmeniz gereken bir e-posta gönderecek şekilde yapılandırmak için Cihaz Türü'nü tıklayın, listeden MKR Fox 1200'ü seçin ve düzenle'yi tıklayın.


Giriş yaptıktan sonra geri aramalara gitmeniz ve yeni tıklamanız gerekir (sağ üst köşede)



Artık e-posta parametrelerini resimde gösterildiği gibi düzenleyebilirsiniz


Özel yük yapılandırmasında şunları okuyabilirsiniz:

str :: char: 3 boardID :: karakter: 8 alarmID :: karakter: 1

Bu, alınan 12 baytta (soldan sağa) anlamına gelir:

  • str :: Char: 3

Str adlı bir değişkene 3 karakter atanır

  • boardID :: Char: 8

BoardID değişkenine 8 karakter atanır

  • alarmID :: Char: 1

AlarmID değişkenine 1 karakter atanır

Bu değerleri bu değişkenlere atadığınızdan, bunları artık posta gövdenizde kullanabilirsiniz ve Konu ve Mesaj alanında görebilirsiniz!


Bu geri aramayı yapılandırmak için:
Yazım alanı: DATA - UPLINK
Kanal: EMAIL
Özel yük yapılandırması: str :: char: 3 boardID :: char: 8 alarmID :: char: 1 (daha önce açıklandığı gibi)
Alıcı: Birden fazla istiyorsanız, e-posta adresinizi alıcının e-posta adresini yazın.
Subject: konu satırından hemen önce gösterildiği gibi özel bir veri değeri veya zaman, snr, istasyon, veri gibi standart bir değişken kullanabilirsiniz
Mesaj: Konu ile aynı, serbest metin ve bazı özel veya standart değişkenleri kullanabilirsiniz.
Şimdi geri aramanızı kaydetmek için Tamam'a tıklayın ve işiniz bitti!
Alarmınız bir dahaki sefer tetiklendiğinde bir e-posta alacaksınız!

See Also

First Configuration