MailboxReadMessage

Bir Yún cihazı için bu örnek, Linux'tan AVR'ye metin mesajları göndermek için Bridge kitaplığının nasıl kullanılacağını gösterir. Tarayıcı üzerinden REST tarzı çağrıları kullanarak nasıl mesaj kuyruğu oluşturabileceğinizi gösterir.

Bu örneği çalıştırırken, bilgisayarınızın Yún cihazıyla aynı ağda olduğundan emin olun.
Çizimi tahtaya yükledikten sonra, Yún posta kutusuna mesaj eklemeye başlayabilirsiniz. Posta Kutusu her 10 saniyede bir kontrol edilecek ve mevcut mesajlar Seri Monitörde görüntülenecektir.
REST API'lerini kullanmak için parolayı girmeniz veya Web panelinden devre dışı bırakmanız gerekir. Aşağıdaki URL yapısına sahip bir tarayıcı kullanabilirsiniz:
http: //myArduinoYun.local/mailbox/hello

Gerekli Donanım

  • Yún kartı veya kalkan
  • bilgisayar ve Yún aynı kablosuz veya kablolu ağ üzerinde

Yazılım Gerekli

  • internet tarayıcısı

Devre

Bu örnek için devre yok.

Kod

Örnek kod, Linux tarafından AVR'ye mesaj göndermek için Yún cihazına REST isteklerinin nasıl yapıldığını gösterir. Mesajlar Linux tarafında dahili olarak bir mesaj kuyruğunda saklanır ve AVR tarafından yalnızca readMessage () yöntemi çağrıldığında okunur.

Köprü kitaplığını otomatik olarak içerdiğinden yalnızca Posta Kutusu kitaplığını eklemeniz gerekir:

#include <Mailbox.h>
[Kodu Al]

setup() , hata ayıklama amacıyla seri iletişimi başlatın ve Bridge başlarken pin 13 üzerindeki yerleşik LED'i yüksek konuma getirin. Bridge.begin() engelliyor ve tamamlanması yaklaşık 2 saniye sürüyor. Bridge başladıktan sonra LED'i kapatın. Mailbox.begin() , posta kutusunu OpenWrt -Yun ve Arduino işlemcide başlatır.

void setup ( ) {
pinMode ( 13 , ÇIKIŞ ) ;
digitalWrite ( 13 , DÜŞÜK ) ;
// Köprü ve Posta Kutusunu Başlat
Köprü. begin ( ) ;
Posta kutusu. begin ( ) ;
digitalWrite ( 13 , YÜKSEK ) ;

// Seri Başlat
Seri . başlar ( 9600 ) ;

// Seri Monitör bağlanana kadar bekleyin.
süre ( ! Seri ) ;

Seri . println ( "Posta Kutusu Okuma Mesajı \ n " ) ;
Seri . println ( "Posta Kutusu her 10 saniyede bir kontrol edilir. Gelen mesajlar aşağıda gösterilir. \ n " ) ;
}

loop() Mailbox.messageAvailable() , gelen iletinin kaydedileceği bir Dize oluşturacak ve Posta Kutusunda kullanılabilir bir ileti olup olmadığını okumak için Mailbox.messageAvailable() işlevini çağıracaksınız.

void loop ( ) {
Dize mesajı ;

// Posta Kutusunda bir mesaj varsa
eğer ( Posta Kutusu. messageAvailable ( ) )
{

Posta Kutusunda en az bir mesaj varsa, kuyruktaki tüm mesajları okumaya başlayın ve Seri Monitörde yazdırın.

// kuyrukta bulunan tüm mesajları oku
while ( Posta Kutusu. messageAvailable ( ) )
{
Posta kutusu. readMessage ( mesaj ) ;
Seri . println ( mesaj ) ;
}

Çizimdeki Posta Kutusu, delay() kullanılarak her 10 saniyede bir kontrol edilir. Bu, Arduino işlemcisinin RAM'ini karıştırmak yerine Linux işlemcide veri depolamanın avantajını göstermek için de yapılır.

Seri . println ( "Posta Kutusunu tekrar kontrol etmeden önce 10 saniye bekliyorum" ) ;
}

// 10 saniye bekle
gecikme ( 10000 ) ;
}
Tam kod aşağıdadır:

/ *
Posta Kutusundan Mesajları Oku

YunShield / Yún için bu örnek,
Posta Kutusu adı verilen ileti sırasını
Köprü kütüphanesi.
Mesajlar REST çağrıları aracılığıyla kuyruğa gönderilebilir.
İletiyi URL'ye "/ posta kutusu" anahtar kelimesinden sonra ekleyin.
Misal

"/ posta kutusu / Merhaba"

oluşturuldu 3 Şub 2014
ile Federico Vanzati ve Federico Fissore

Bu örnek kod kamu malıdır.

http: egitim.aspx e = MailboxReadMessage

* /


#include <Mailbox.h>

void setup ( ) {
pinMode ( 13 , ÇIKIŞ ) ;
digitalWrite ( 13 , DÜŞÜK ) ;
// Köprü ve Posta Kutusunu Başlat
Köprü. begin ( ) ;
Posta kutusu. begin ( ) ;
digitalWrite ( 13 , YÜKSEK ) ;

// Seri Başlat
SerialUSB. başlar ( 9600 ) ;

// Seri Monitör bağlanana kadar bekleyin.
süre ( ! SerialUSB ) ;

SerialUSB. println ( "Posta Kutusu Okuma Mesajı \ n " ) ;
SerialUSB. println ( "Posta Kutusu her 10 saniyede bir kontrol edilir. Gelen mesajlar aşağıda gösterilir. \ n " ) ;
}

void loop ( ) {
Dize mesajı ;

// Posta Kutusunda bir mesaj varsa
if ( Posta Kutusu. messageAvailable ( ) ) {
// kuyrukta bulunan tüm mesajları oku
while ( Posta Kutusu. messageAvailable ( ) ) {
Posta kutusu. readMessage ( mesaj ) ;
SerialUSB. println ( mesaj ) ;
}

SerialUSB. println ( "Posta Kutusunu tekrar kontrol etmeden önce 10 saniye bekliyorum" ) ;
}

// 10 saniye bekle
gecikme ( 10000 ) ;
}

See Also

  • Bridge Library- Köprü Kütüphanesine referansınız
  • Bridge- Analog ve dijital pinlere erişmek için basit REST tarzı çağrılar
  • Console Ascii Table- Konsola yazdırılan eksiksiz bir ASCII tablosu
  • Console Pixel- Konsoldan bir LED'i açma ve kapatma
  • Console Read- Console.read () işlevini kullanarak köprüden gelen verileri okuma
  • Data Logger- Üç analog sensörden bir SD karta veri kaydedin.
  • File Write- Dosya Yún dosya sistemine nasıl yazılır.
  • Http Client- İnternete bağlanan ve içeriği indiren temel bir HTTP istemcisi.
  • Http Client Console- Bağlanan, içeriği indiren ve WiFi ve Konsol kullanarak içeriği gösteren HTTP istemcisi.
  • Process- Bir Yún kullanarak linux süreçleri nasıl çalıştırılır.
  • Remote Due Blink- DUE panolarına uzaktan taslak yükleme.
  • Shell Commands- Bir Yún kullanarak linux kabuk komutları nasıl çalıştırılır.
  • Temperature Web Panel- Yún'ın yerleşik web sunucusu üzerinden bir analog girişten veri sunma.
  • Time check- Bridge üzerinden Linux'tan zamanı alır, sonra saatleri, dakikaları ve saniyeleri ayrıştırır.
  • WiFi Status- Wifi bağlantınızın durumu hakkında bilgi yazdırır.
  • Yún First Configuration- Seri Monitör ve USB bağlantı noktasını kullanarak Yún cihazınızı kolayca yapılandırın.
  • Serial Terminal- Yún'ın 32U4 işlemcisini, Yún'daki Linux tarafı için seri terminal olarak kullanın.