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>
- 在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");
}
- 在loop()里,创建一个字符串来保存输入的信息,并且如果邮箱里有有效信息,调用Mailbox.messageAvailable()函数来读取它。
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);
Serial.println(message);
}
- 程序里的邮箱通过延时每10秒钟检查一次。这也是Linux processor代替 Arduino processor的RAM来保存数据的好处。
Serial.println("Waiting 10 seconds before checking the Mailbox again");
}
// wait 10 seconds
delay(10000);
}
- 完整代码如下所示:
/*
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终端。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号