< >
Home » Arduino库教程 » Arduino库教程-Bridge-Mailbox Read Messages

Arduino库教程-Bridge-Mailbox Read Messages

Mailbox Read Message(邮箱读取信息)

  • 这个yun设备例子展示了怎样用Bridge库来从Linux发送文本邮件到AVR里。它示范了怎样用REST调用,通过浏览器来创建信息队列。

  • 当运行这个例子时,确保你的电脑和yun设备在同一个网络里。一旦你上传程序到开发板,你可以开始在yun邮箱里增加信息。每10秒钟检查一次邮箱,并且有效信息将会显示在串口监视器里。

  • 为了使用REST APIs,你需要插入密码和从web面板里禁用它。你可以通过下面URL结构使用一个浏览器:
    http://myArduinoYun.local/mailbox/hello

硬件要求

  • Yún 开发板 或者 shield
  • 电脑和yun设备在同一个有线或者无线的网络里。

软件要求

  • web浏览器

电路

  • 这个例子没有额外的电路
    请输入图片描述
    图由 Fritzing 软件绘制

样例代码

  • 这个例子代码展示了怎样使REST请求yun设备来从Linux端发送信息到AVR端。这些信息被保存到一个信息列表里,内置于Linux端,并且当调用readMessage()函数时,由AVR读取。

  • 你只需要包含Mailbox库,因为它自动包含Bridge库:

#include <Mailbox.h>

[Get Code]

  • 在setup()里,为了调试开始串口通讯,并且当Bridge开始时切换pin13的内置LED灯为高电平。Bridge.begin()是一个模块,应该用大约2秒钟来完成。一旦Bridge启动,关闭LED灯。 Mailbox.begin()在Arduino processor的OpenWrt-Yun上启动邮箱。
void setup() {
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
  // Initialize Bridge and Mailbox
  Bridge.begin();
  Mailbox.begin();
  digitalWrite(13, HIGH);

  // Initialize Serial
  Serial.begin(9600);

  // Wait until a Serial Monitor is connected.
  while (!Serial);

  Serial.println("Mailbox Read Message\n");
  Serial.println("The Mailbox is checked every 10 seconds. The incoming messages will be shown below.\n");
}

[Get Code]

  • 在loop()里,创建一个字符串来保存输入的信息,并且如果邮箱里有有效信息,调用Mailbox.messageAvailable()函数来读取它。
void loop() {
  String message;

  // if there is a message in the Mailbox
  if (Mailbox.messageAvailable())
  {

[Get Code]

  • 如果邮箱里有至少一个信息,开始读取队列里的所有信息,并且打印到串口监视器。
// read all the messages present in the queue
    while (Mailbox.messageAvailable())
    {
      Mailbox.readMessage(message);
      Serial.println(message);
    }

[Get Code]

  • 程序里的邮箱通过延时每10秒钟检查一次。这也是Linux processor代替 Arduino processor的RAM来保存数据的好处。
Serial.println("Waiting 10 seconds before checking the Mailbox again");
  }

  // wait 10 seconds
  delay(10000);
}

[Get Code]

  • 完整代码如下所示:
/*
  Read Messages from the Mailbox

 This example for the Yún101/YunShield/Yún shows how to
 read the messages queue, called Mailbox, using the
 Bridge library.
 The messages can be sent to the queue through REST calls.
 Appen the message in the URL after the keyword "/mailbox".
 Example

 "/mailbox/hello"

 created 3 Feb 2014
 by Federico Vanzati & Federico Fissore

 This example code is in the public domain.

 http://www.arduino.cc/en/Tutorial/MailboxReadMessage

 */

#include <Mailbox.h>

void setup() {
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
  // Initialize Bridge and Mailbox
  Bridge.begin();
  Mailbox.begin();
  digitalWrite(13, HIGH);

  // Initialize Serial
  SerialUSB.begin(9600);

  // Wait until a Serial Monitor is connected.
  while (!SerialUSB);

  SerialUSB.println("Mailbox Read Message\n");
  SerialUSB.println("The Mailbox is checked every 10 seconds. The incoming messages will be shown below.\n");
}

void loop() {
  String message;

  // if there is a message in the Mailbox
  if (Mailbox.messageAvailable()) {
    // read all the messages present in the queue
    while (Mailbox.messageAvailable()) {
      Mailbox.readMessage(message);
      SerialUSB.println(message);
    }

    SerialUSB.println("Waiting 10 seconds before checking the Mailbox again");
  }

  // wait 10 seconds
  delay(10000);
}

[Get Code]
更多

  • Bridge: 从网页浏览器进入开发板的引脚。
  • Console ASCII Table: 示范了怎样打印多种格式到控制台。
  • Console Pixel: 通过控制台控制一个LED灯。
  • Console Read: 从控制台那里分析信息,然后重复发送返回。
  • Datalogger: 在SD卡上保存传感器信息。
  • File Write Script: 示范怎样在Process上写入和执行外壳脚本。
  • HTTP Client: 建造一个简单的客户端,可以下载网页并且打印到串口监视器。
  • HTTP Client Console: 建造一个简单的客户端,可以下载网页并且用控制台通过WIFI打印到串口监视器。
  • Mailbox Read Messages: 用REST API通过一个网页发送文本信息到。
  • Process: 示范怎么用Process运行 Linux 命令。
  • Remote Due Blink: 示范怎么远程上传程序到DUE开发板上。
  • Shell Commands: 用Process 来运行 shell 命令。
  • SpacebrewYun: 在Arduino IDE软件的例子上看更多关于 Spacebrew 文档信息。
  • Temboo: 在Arduino IDE软件的例子上看更多关于 Temboo 文档信息。
  • Temperature Web Panel: 当浏览者要求时,粘贴传感数据到网页上。
  • Time Check: 从网络的时间服务器获得时间,并且打印到串口监视器。
  • WiFi Status: 运行一个预配置的脚本,报告返回当前wifi网络的强度。
  • Yun First Config: 用串口监视器不费力地连接你的云产品到wifi网络,并且在上面回答一些简单的问题。
  • Yun Serial Terminal: 通过串口监视器进入Linux终端。

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: arduino库教程, arduino mailbox read messages