資料介紹
描述
這個項目的想法是在新冠病毒封鎖期間誕生的,當時在家工作是新常態。這種實現是為 Arduino Cloud Games 制作的。
該項目有兩個設備:
- on Air Sign 作為輔助設備,放置在我們的家庭辦公室門周圍,并在會議進行時點亮。可選,因為 Oplà 套件本身可用于此目的,否則任何支持 IOT 的設備都可以重新用于此功能。
對于連接,它利用 Arduino IOT Cloud 并實現物對物通信。
我為 ESP8266 創建了一個東西,并將一個變量定義為布爾值。該變量用于打開和關閉廣播標志。我還創建了一個儀表板來通過我的手機對其進行管理。
我用白色 PLA 打印了一個外殼,并使用 2 種顏色的 PLA 打印了標簽,在第一層后停止打印機并手動切換燈絲,因為我有一臺擠出機。我也在用其他類型的外殼做實驗,它們也很好用(例如帶彩繪玻璃的木箱)。
之后,我通過回收手電筒中的 LED 面板來構建電路。您可以按照原理圖復制或構建自己的電路。ESP8266 的代碼已附加,它使用來自 IOT Cloud 的布爾變量后面的端口 2。
為了對 ESP-01 進行編程,我在 USB-TTL 設備上添加了復位和編程模式按鈕,并且我還在面包板上安裝了一個備用設備。您可以找到提供的源代碼。
在這張照片上,您可以查看我的標牌定制硬件的電子設備,它包括:
- 18650電池及其座
- 18650充電保護板
- ESP - 01 帶有 BS170 開關在引腳 2
- 從手電筒中回收的 LED 面板
- 開/關
對于 Oplà 套件,我創建了具有相同變量并配置為同步的第二個事物。
一旦我的工具包連接到我的 wifi 和 Arduino Cloud,它就會使用秘密 url(這種技術也稱為魔法 cookie url)以 iCal 格式獲取 Google 日歷提要,需要幾個周期來弄清楚如何進行 HTTPS 請求和下載沒有 SD 卡的文件(超過 100kb),并以有限的內存解析文件內容。或者,這可以通過在 Raspberry Pi 上使用 Google 腳本或自定義代碼來完成。
#include
#include
#include
char server[] = "calendar.google.com";
WiFiClient client;
int port = 443;
void sendRequestICalendarFeed() {
if (client.connectSSL(server, port)) {
String get("GET /calendar/ical/");
get += SECRET_ICALENDAR;
get += "/basic.ics HTTP/1.1";
client.println(get);
client.println("Host: calendar.google.com");
client.println("Connection: close");
client.println();
}
}
void readICalendarFeed() {
while (client.connected()) {
String line = client.readStringUntil('\n');
if (line == "0\r") {
// end of response
break;
}
// parsing response...
}
}
解析邏輯如下:
struct Event {
public:
String dtstart;
String dtend;
String dtstamp;
String uid;
String created;
String description;
String lastModified;
String location;
int sequence;
String status;
String summary;
String transp;
};
Event events[20];
int event_index = -1;
int event_length = event_index + 1;
void load(WiFiClient client) {
String line;
String buffer = "";
String key;
String value;
bool insideEvent = false;
bool today = false;
int idx = -1;
while (client.connected()) {
String line = client.readStringUntil('\n');
if (line == "0\r") {
break;
}
if (line.charAt(0) == ' ') {
// collecting multiline prop
if (buffer.length() < 100)
buffer += line.substring(1);
} else {
if (buffer != "") {
// process previous prop
auto m = buffer.indexOf(':');
if (m == -1)
m = buffer.indexOf(';');
key = buffer.substring(0, m);
value = buffer.substring(m + 1);
if (key.compareTo("BEGIN") == 0 && value.compareTo("VEVENT\r") == 0) {
if (idx < 19){
idx++;
}
insideEvent = true;
} else if (key.compareTo("END") == 0 && value.compareTo("VEVENT\r") == 0) {
insideEvent = false;
if (!is_today(events[idx].dtstart.c_str(), ArduinoCloud.getLocalTime())) {
idx--;
}
} else if (key.compareTo("DTSTART") == 0 && insideEvent) {
events[idx].dtstart = value;
} else if (key.compareTo("DTEND") == 0 && insideEvent) {
events[idx].dtend = value;
} else if (key.compareTo("DTSTAMP") == 0 && insideEvent) {
events[idx].dtstamp = value;
} else if (key.compareTo("CREATED") == 0 && insideEvent) {
events[idx].created = value;
} else if (key.compareTo("DESCRIPTION") == 0 && insideEvent) {
events[idx].description = value;
} else if (key.compareTo("SUMMARY") == 0 && insideEvent) {
events[idx].summary = value;
}
buffer = "";
}
buffer = line;
}
}
event_length = idx + 1;
if (!client.connected()) {
client.stop();
}
}
當文件內容被流式傳輸時,我正在尋找今天安排的會議,而忽略其余的以適應內存。
當解析今天的會議列表時,我確定了當前(或下一個)正在發生的會議并將其顯示在屏幕上。在那一刻,Oplà 套件將布爾變量 onAir 設置為 true,如果標志打開,則它開始發光。
頂部的按鈕直接控制 on Air 標志。當它為紅色時,表示 On Air 標志已打開:
通過使用按鈕,我可以提前結束實際會議,因此標志關閉,LED 切換為綠色。我還可以瀏覽會議列表。
對于該項目的進一步升級,我正在考慮啟用 Oplà 工具包來編輯 Google 日歷上的會議,例如安排新會議,并使用第二個 Oplà 工具包 - 為我的妻子 - 作為輔助設備。
- 物聯網空中標志開源硬件
- AURACASR藍牙品牌指南和標志文件
- AD5940評估套件使用方法.ppt 21次下載
- EVAL-AD5940評估套件用戶指南 9次下載
- Pegasus智能家居開發套件_2021
- Neptune開發套件_2021
- Taurus AI Camera開發套件_2021
- YNH-950 人臉識別亞克力套件規格書
- YNH-350 人臉識別亞克力套件規格書
- 基于航跡數據的空中交通管制自動化系統 7次下載
- LoRa技術評估套件用戶指南 27次下載
- ST電機控制開發套件5.0 27次下載
- 智慧城市中標識技術發展和應用 27次下載
- ce標志下載
- TDMA空中接口技術 0次下載
- FreeRTOS的事件標志組 1007次閱讀
- 如何進行FFT IP配置和設計 2206次閱讀
- DeepStream智能分析套件的安裝方法 1556次閱讀
- 西門子PLC的內部標志與寄存器 1.2w次閱讀
- 什么是物聯網開發套件?如何挑選物聯網開發套件 5048次閱讀
- dfrobotmicro:bit造物粒子入門套件簡介 4054次閱讀
- dfrobot Arduino套件介紹 2056次閱讀
- dfrobot 空中飛鼠鍵盤介紹 2621次閱讀
- dfrobotArduino官方配套套件 1267次閱讀
- 關于標志寄存器的各個標志 6071次閱讀
- 標志寄存器的概念 4444次閱讀
- 單片機C語言中標志位的經典應用,讓你快速學會單片機C語言 7118次閱讀
- 賽靈思Vivado設計套件震撼登場 1799次閱讀
- 空中鼠標原理及問題 7955次閱讀
- 電網中的安全色和安全標志 2467次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多