精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>使用Oplà套件進行空中標志

使用Oplà套件進行空中標志

2022-10-31 | zip | 0.01 MB | 次下載 | 免費

資料介紹

描述

這個項目的想法是在新冠病毒封鎖期間誕生的,當時在家工作是新常態。這種實現是為 Arduino Cloud Games 制作的。

該項目有兩個設備:

  • Arduino Oplà IOT Kit 作為主要設備,它從谷歌日歷中獲取會議信息當會議正在進行時,它會打開標志,并可以提前結束。
  • on Air Sign 作為輔助設備,放置在我們的家庭辦公室門周圍,并在會議進行時點亮。可選,因為 Oplà 套件本身可用于此目的,否則任何支持 IOT 的設備都可以重新用于此功能。

對于連接,它利用 Arduino IOT Cloud 并實現物對物通信

我為 ESP8266 創建了一個東西,并將一個變量定義為布爾值。該變量用于打開和關閉廣播標志。我還創建了一個儀表板來通過我的手機對其進行管理。

pYYBAGNYt8GAEDudAACJE8RJcu8864.png
?

我用白色 PLA 打印了一個外殼,并使用 2 種顏色的 PLA 打印了標簽,在第一層后停止打印機并手動切換燈絲,因為我有一臺擠出機。我也在用其他類型的外殼做實驗,它們也很好用(例如帶彩繪玻璃的木箱)。

之后,我通過回收手電筒中的 LED 面板來構建電路。您可以按照原理圖復制或構建自己的電路。ESP8266 的代碼已附加,它使用來自 IOT Cloud 的布爾變量后面的端口 2。

poYBAGNYt8WAI2tlAANUw1nfXEs384.jpg
?

為了對 ESP-01 進行編程,我在 USB-TTL 設備上添加了復位和編程模式按鈕,并且我還在面包板上安裝了一個備用設備。您可以找到提供的源代碼。

poYBAGNYt8mAIdJuAALRu-shImM476.jpg
?

在這張照片上,您可以查看我的標牌定制硬件電子設備,它包括:

  • 18650電池及其座
  • 18650充電保護板
  • ESP - 01 帶有 BS170 開關在引腳 2
  • 從手電筒中回收的 LED 面板
  • 開/關
pYYBAGNYt8yAd9XTAAMijZEVLvg348.jpg
?

對于 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();
  }
}

當文件內容被流式傳輸時,我正在尋找今天安排的會議,而忽略其余的以適應內存。

poYBAGNYt9CAV-rVAAOu7f1kSuM735.jpg
?

當解析今天的會議列表時,我確定了當前(或下一個)正在發生的會議并將其顯示在屏幕上。在那一刻,Oplà 套件將布爾變量 onAir 設置為 true,如果標志打開,則它開始發光。

pYYBAGNYt9WAEH7kAAKy0hUAz64748.jpg
?

頂部的按鈕直接控制 on Air 標志。當它為紅色時,表示 On Air 標志已打開:

poYBAGNYt9qACJOEAAH2UhN8aaQ988.jpg
?

通過使用按鈕,我可以提前結束實際會議,因此標志關閉,LED 切換為綠色。我還可以瀏覽會議列表。

pYYBAGNYt92ADJkHAALmKbx6RY8331.jpg
?

對于該項目的進一步升級,我正在考慮啟用 Oplà 工具包來編輯 Google 日歷上的會議,例如安排新會議,并使用第二個 Oplà 工具包 - 為我的妻子 - 作為輔助設備。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費