Eğitimler
SigFoxFirstConfiguration
Bir MKRFox1200 cihazı için bu örnek, SigFox'un arka ucunu anakartınız için ayarlamanıza izin verir.
Gerekli Donanım
- MKRFox1200 kartı
Devre
Bu örnek için devre yok.
Kod
setup()
Seri başlatılır. Bu, ilk SigFox mesajınızı eklemenizi ve SigFox'un arka ucunu yapılandırmanız için gereken bilgileri almanızı sağlar. MKRFox1200 , Seri monitörün açılmasıyla ilişkili bir otomatik sıfırlama işlevine sahip olmadığından, bir Seri süre mevcuttur. Ayrıca SigFox modülünün mevcut olup olmadığını ve kullanılabileceğini de kontrol ediyoruz.
Serial.begin(9600);
while(!Serial) {};
if (!SigFox.begin()) {
Serial.println("Shield error or not present!");
return;
}
Bundan sonra, kartınızı kaydetmek için kullanmanız gereken kimliğimizi ve PAC'ımızı okuyabiliriz.
Dize Kimliği = SigFox. ID ( ) ;
String PAC = SigFox. PAC ( ) ;
// Ekran modülü bilgileri
Seri . println ( "MKRFox1200 Sigfox ilk yapılandırması" ) ;
Seri . println ( "SigFox FW sürümü" + sürüm ) ;
Seri . println ( "ID =" + ID ) ;
Seri . println ( "PAC =" + PAC ) ;
Seri . println ( "" ) ;
Seri . baskı ( "Modül sıcaklığı:" ) ;
Seri . println ( SigFox. temperatureInternal ( ) ) ;
Seri . println ( " Tahtanızı https://backend.sigfox.com/activate adresine verilen kimlik ve PAC ile kaydedin" ) ;
gecikme ( 100 ) ;
// Modülü en derin uyku moduna gönderin
SigFox. end ( ) ;
Tahtanızı kaydedin
Tahtanızı kaydetmek için SigFox arka ucuna gitmeniz gerekir. Bu, sahip olduğunuz her MKR FOX 1200 için bir kez gerekli olan tek seferlik bir kayıt işlemidir.
Kullanıcının şu anda ikamet ettiği veya kullandığı ülkeyi seçin
Bundan sonra, çizimi İLK YAPILANDIRMA'yı yükledikten sonra seri monitörde gösterilen kimliğinizi ve PAC numaranızı girin.
Artık sigfox arka ucundan gelen ve giden mesajları kontrol edebilirsiniz.
Sigfox portalı ana sayfasına ulaşmak için kimlik bilgilerinizi girin.
Şimdi Downlink modumuzun Geri Arama yerine Doğrudan olarak ayarlandığından emin olmalıyız
Aygıt türünü ve ardından Canlı Tut'u ve Düzenle'yi tıklayın
Bu nedenle, iletileri ileri geri almak için Aşağı Bağlantı modunu Doğrudan olarak ayarlayın
Şimdi ana Sigfox portal sayfasına geri dönebilir ve sol üstteki Cihaz'ı tıklayabilir, ardından aşağıdaki resimde gösterildiği gibi kimliği tıklayabilirsiniz
Sol menü çubuğundan mesajlar öğesini seçin.
Bu sayfada mesajları görebilirsiniz. Düzgün gönderilirse, yeşil çağrıyı geri görebilirsiniz, aksi takdirde geri aramayı kırmızı bir ok olarak görebilirsiniz
Geri arama yapılandırması düzgün yapıldığında, ilk mesajınızı gönderebilirsiniz! Mesajınız doğru bir şekilde iletilirse, sunucudan aşağıdakine benzer bir yanıt alırsınız:
Aksi takdirde seri monitörde bir hata mesajı yazdırılır
loop()
talimatlarımız yoktur, çünkü daha fazla bir şey yapmamız gerekmez.
Tam kod
SigFox İlk Yapılandırma
Bu çizim MKRFox1200 SigFox modülünün kullanımını göstermektedir.
Kart düşük güç düşünülerek tasarlandığından, doğrudan ArduinoLowPower kütüphanesine bağlıdır
Bu örnek kod kamu malıdır.
* /
#include <SigFox.h>
#include <ArduinoLowPower.h>
void setup ( ) {
Seri . başlar ( 9600 ) ;
while ( ! Seri ) { } ;
// Özel bir kartla çalışıyorsanız bu satırı açıp yorum başlayacaktır ()
// if (! SigFox.begin (SPI1, 30, 31, 33, 28, LED_BUILTIN)) {
eğer ( ! SigFox. begin ( ) ) {
Seri . println ( "Kalkan hatası veya yok!" ) ;
dönüş ;
}
// Hata ayıklama ledini etkinleştir ve otomatik derin uyku özelliğini devre dışı bırak
// Projenizi gönderirken bu satırı yorumlayın :)
SigFox. debug ( ) ;
Dize sürümü = SigFox. SigVersion ( ) ;
Dize Kimliği = SigFox. ID ( ) ;
String PAC = SigFox. PAC ( ) ;
// Ekran modülü bilgileri
Seri . println ( "MKRFox1200 Sigfox ilk yapılandırması" ) ;
Seri . println ( "SigFox FW sürümü" + sürüm ) ;
Seri . println ( "ID =" + ID ) ;
Seri . println ( "PAC =" + PAC ) ;
Seri . println ( "" ) ;
Seri . baskı ( "Modül sıcaklığı:" ) ;
Seri . println ( SigFox. internalTemperature ( ) ) ;
Seri . println ( " Tahtanızı https://buy.sigfox.com/activate adresine verilen kimlik ve PAC ile kaydedin" ) ;
Seri . println ( "/! \ Görüntülenen PAC fabrika değeridir. Kayıt için yalnızca bir kez kullanılabilen bir atma değeridir." )
Seri . println ( "Bu cihaz önceden kaydedilmişse, güncellenmiş PAC değerini https://backend.sigfox.com/device/list adresinden alabilirsiniz" ) ;
Seri . println ( "Diğer geliştiricilerle alışveriş yapmak, yardım almak ve yeni fikirler bulmak için Sigfox Builders Slack topluluğuna katılın! https://builders.iotagency.sigfox.com/" ) ;
gecikme ( 100 ) ;
// Modülü en derin uyku moduna gönderin
SigFox. end ( ) ;
Seri . println ( "Gönderilecek mesajı yazın" ) ;
while ( ! Serial . available ( ) ) ;
Dize mesajı ;
while ( Seri . kullanılabilir ( ) ) {
mesaj + = ( karakter ) Seri . read ( ) ;
}
// Her SigFox paketi 12 baytı aşamaz
// Dize daha uzunsa, yalnızca ilk 12 bayt gönderilir
if ( mesaj. uzunluk ( ) > 12 ) {
Seri . println ( "Mesaj çok uzun, yalnızca ilk 12 bayt gönderilecek" ) ;
}
Seri . println ( "Gönderiliyor" + mesajı ) ;
// EOL'yi kaldır
İleti. trim ( ) ;
// Gönderilebilecek mesaj örneği
// sendString (mesaj);
Seri . println ( "Yanıtın alınması 50 saniye kadar sürer" ) ;
Seri . println ( "İşlem devam ederken LED yanıp söner" ) ;
// Gönderme ve okuma yanıtı örneği
sendStringAndGetResponse ( mesaj ) ;
}
void loop ( )
{
}
void sendString ( String str ) {
// Modülü başlat
SigFox. begin ( ) ;
// İlk yapılandırmadan sonra en az 30mS bekleyin (100mS önce)
gecikme ( 100 ) ;
// Bekleyen tüm kesintileri temizler
SigFox. durum ( ) ;
gecikme ( 1 ) ;
SigFox. beginPacket ( ) ;
SigFox. baskı ( str ) ;
int ret = SigFox. endPacket ( ) ; // SIGFOX ağına arabellek gönder
if ( ret > 0 ) {
Seri . println ( "İletim yok" ) ;
} başka {
Seri . println ( "İletim tamam" ) ;
}
Seri . println ( SigFox. durumu ( SIGFOX ) ) ;
Seri . println ( SigFox. durumu ( ATMEL ) ) ;
SigFox. end ( ) ;
}
void sendStringAndGetResponse ( String str ) {
// Modülü başlat
SigFox. begin ( ) ;
// İlk yapılandırmadan sonra en az 30mS bekleyin (100mS önce)
gecikme ( 100 ) ;
// Bekleyen tüm kesintileri temizler
SigFox. durum ( ) ;
gecikme ( 1 ) ;
SigFox. beginPacket ( ) ;
SigFox. baskı ( str ) ;
int ret = SigFox. endPacket ( gerçek ) ; // SIGFOX ağına arabellek gönder ve yanıt bekle
if ( ret > 0 ) {
Seri . println ( "İletim yok" ) ;
} başka {
Seri . println ( "İletim tamam" ) ;
}
Seri . println ( SigFox. durumu ( SIGFOX ) ) ;
Seri . println ( SigFox. durumu ( ATMEL ) ) ;
if ( SigFox. parsePacket ( ) ) {
Seri . println ( "Sunucudan yanıt:" ) ;
ise (SigFox. mevcuttur ()) {
Seri . yazdır ( "0x" ) ;
Seri . println ( SigFox. read ( ) , HEX ) ;
}
} başka {
Seri . println ( "Sunucudan yanıt alınamadı " ) ;
Seri . println ( "Bölgenizdeki SigFox kapsamını kontrol edin" ) ;
Seri . println ( "İç mekandaysanız, 20dB kapsama alanını kontrol edin veya bir pencerenin yanına gidin" ) ;
}
Seri . println ( ) ;
SigFox. end ( ) ;
}