通信工程综合实训
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成绩评定表
课程设计任务书
目录
1 微博机器人 (2)
1.1 编写代码 (3)
1.2 代码回顾 (6)
2 交通灯+手控延时 (11)
2.1 功能 (12)
2.2 电路原理 (12)
2.3 代码清单 (13)
2.4 测试结果 (16)
3 卫星天线及接收机调试 (16)
1微博机器人
在这个项卡具中还是需要使用两个温度传感器的电路。这次,你要有规律地在微博上更新两个传感器的状态。用发送微博的办法使你可以了解已经连接到Arduion上的和、任何传感器的状态。
Twitter是一条微博服务器,允许你发送长度在140个字符以内的微博或短消息。任何人只要进行下搜索,或那些已选择了关注你的微博的人,都可以看到你发布的微博的内容。微博是非常流行的网络应用,可以从任何网络浏览器或许多可用微博客户机中浏览微博内容,甚至电话终端也可以发送微博。这使得微博成为发送简单消息的理想选择。你也可以通过移动终端查看微博内容。
你需要连到注册一个新用户。我推荐创建一个只被你的Arduino使用的账号。
因为2010年8月31日以后,Twitter改变了它的第三方程序入口注册策略,使用了一种叫做OAuth的认证方法,使得直接从Arduino发送微博非常困难。在这个改变之前,向Twitter发送微博是一个简单的过程,现在只能通过第三方实现。换句话说,你发布微博到一个网站或代理服务器,代理服务器使使用OAuth协议代替你发布微博,Arduino 当前的微博库主使用这种方法。
如果你已有账号,输入下的代码。
输入代码
在你上传代码之前,需要注册一条微博账号。你使用这个库已比由NeaCat完成,可以使用它的网址作为代理服务器发送微博。这意味你必须首先获得一个口令,它是一个你自己的要进入微博网站的用户名和口令的加密版本。要得到这个版本可以去网址 ,并单击”stepq”链接口令,复制并粘贴结果到口令代码段。
注意,因为你使用代理服务器而且必须给出你的微博用户名和口令来获得OAuth 令牌,所以推荐创建一个新的微博账号保持它为匿名。我相信你用自己的账号使用库也是安全的但是相比较而言匿名更安全。
之后,单击”step2”链连,获得两套相关的库代码。安装这些库文件夹到之前你下载
和安装的0018版本的Arduino IDE内。使用这些库之前需要重启IDE。Twitter库也有一些例子可以试一下。
1.1 编写代码
// 项目–微博机器人
#include
#include
#include
#include
#include
#include
// Data wire is plugged into pin 3 on the Arduino
#define ONE_WIRE_BUS 3
#define TEMPERATURE_PRECISION 12
float itempC, itempF, etempC, etempF;
boolean firstTweet = true;
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas
temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
// arrays to hold device addresses
DeviceAddress insideThermometer = { 0x10, 0x7A, 0x3B, 0xA9, 0x01, 0x08, 0x00, 0xBF };
DeviceAddress outsideThermometer = { 0x10, 0xCD, 0x39, 0xA9, 0x01, 0x08, 0x00, 0xBE};
byte mac[] = { 0x64, 0xB9, 0xE8, 0xC3, 0xC7, 0xE2 };
// Your Token to tweet (get it from /)
Twitter twitter("608048201-CxY1yQi8ezhvjz60ZVfPHVdzIHbMOD1h2gvoaAIx"); unsigned long interval = 600000; // 10 minutes
unsigned long lastTime; // time since last tweet
// Message to post
char message[140], serialString[60];
// function to get the temperature for a device
void getTemperatures()
{
itempC = sensors.getTempC(insideThermometer);
itempF = DallasTemperature::toFahrenheit(itempC);
etempC = sensors.getTempC(outsideThermometer);
etempF = DallasTemperature::toFahrenheit(etempC);
}
void tweet(char msg[]) {
Serial.println("connecting ...");
if (twitter.post(msg)) {
int status = twitter.wait();
if (status == 200) {
Serial.println("OK. Tweet sent.");
Serial.println();
lastTime = millis();
firstTweet = false;
} else {
Serial.print("failed : code ");
Serial.println(status);
}
} else {
Serial.println("connection failed.");
}
}