内容介绍
内容介绍
一.项目介绍
1.硬件Wio terminal:
Wio Terminal的主控采用SAMD51,主频120MHz (200MHz Max.),另有4MB 外部闪存和 192KB RAM。配有一个2.4英寸 LCD, 板载IMU(LIS3DHTR),麦克风,蜂鸣器,microSD卡槽,光传感器和940nm红外发射器。还有两个Grove接口和兼容Raspberry pi的40个GPIO引脚,用于支持更多附加组件。
2.开发环境Arduino IDE:
二.任务完成思路和实现过程
为了完成项目二, 制作一个自动联网的天气预报仪,在设计界面显示温湿度、天气情况、空气质量以及未来三天内的天气变化。。
整体的思路为:
- 连接wifi, 接入互联网
- 使用心知天气的API, 获得天气信息
- 绘制好UI, 保存为BMP图片, 将图片显示在背景上
- 将解析好的信息显示在UI上面, 实现UI效果
三.代码解释:
引用库
#include "rpcWiFi.h"
#include <WiFiClientSecure.h>
#include <ArduinoJson.h>
#include"Free_Fonts.h"
#include"TFT_eSPI.h"
#include"WeatherIcon.h"
连接wifi
const char *ssid = "yourssid";
const char *password = "yourpasswd";
const char *host = "example.com";
const char *url = "/index.html";
void setup()
{
Serial.begin(115200);
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
连接API
client.setCACert(test_root_ca);
//client.setCertificate(test_client_key); // for client verification
//client.setPrivateKey(test_client_cert); // for client verification
Serial.println("\nStarting connection to server...");
if (!client.connect(server, 443)) {
Serial.println("Connection failed!");
} else {
Serial.println("Connected to server!");
// Make a HTTP request:
client.println("GET https://api.seniverse.com/v3/weather/now.json?key=xxx-xx&location=xxx&language=en&unit=c HTTP/1.1");
client.println("Host: api.seniverse.com");
client.println("Cache-Control: no-cache");
client.println();
while (client.connected()) {
String line = client.readStringUntil('\n');
if (line == "\r") {
Serial.println("headers received");
break;
}
}
// if there are incoming bytes available
// from the server, read them and print them:
while (client.available()) {
char c = client.read();
if (c == '\n') {
Serial.write('\r');
}
Serial.write(c);
}
client.stop();
四. 演示效果
贴上演示效果和内容如下:
背景UI
显示数据
五.活动总结,一些感想
第一次参加硬禾的活动非常开心, 第一次尝试开发一个完整的Arduino项目
连接wifi的时候遇到了问题, 需要先刷wifi的固件, 刷好以后就可以正常连接
下载库的时候非常的慢, 要有耐心, 多下载几次就可以了
附件下载
wioterminal.bin
代码
xiru1.bmp
背景UI
团队介绍
庄惜如
团队成员
Seanny
评论
0 / 100
查看更多