Eğitimler
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.
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);
}
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!