色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>電子資料>公交到站提醒開源項目

公交到站提醒開源項目

2022-12-21 | zip | 0.42 MB | 次下載 | 免費

資料介紹

描述

每個人都討厭失去一輛公共汽車,并在手機上安裝無用的應用程序,而這些應用程序是您一生中要使用一次的。為了解決這個問題,我開發了一個新系統,它會在下一班公交車到達時詢問 API Rest Service。一旦 API Rest 服務響應,到下一班車的剩余時間將顯示在 LCD 屏幕上。ESP8266 將是負責請求 API REST 服務的板,LCD 屏幕將由 Arduino Uno 控制。我已經為 Zaragoza API 個性化了這個項目。例如,此 API 提供有關下一班公共汽車到達時間或公共汽車站地理坐標的信息就我而言,我有 2 條感興趣的公交線路,39 路和 CI2。于是,我準備了每時每刻選擇我感興趣的公交線路的系統,時間顯示在液晶屏上。如果我不想趕公共汽車遲到,我必須在公共汽車到達前 5 分鐘從家里出門。由于這種情況,每當下一班車還剩 5 分鐘時,蜂鳴器就會響起。

項目開發說明

項目由2個代碼組成,一個管理arduino uno,另一個負責管理ESP8266板。

我們將開始解釋 ESP8266 代碼:

正如我在上面解釋的那樣,該板將不斷詢問 API。API 的響應是通過 JSON,這種方式需要將信息解析成一個對象。為了解析 JSON,我們將使用 ArduinoJson 庫,它可以輕松處理解析和序列化。

建議使用 Postman 等 API 客戶端來驗證您發送到 API 的消息(GET/POST、標頭和參數)是否正確。您可以在下圖中看到一個示例:

?
poYBAGOSxT-AUzZSAADgLqAO8-E349.png
郵遞員 API GET 示例
?

ArudinoJson Library(版本 6)提供在線助手。這樣,如果您引入響應示例,它會生成用于序列化或解析 JSON 的代碼。您可以在此鏈接中找到此助手:

https://arduinojson.org/v6/assistant/

?

?
poYBAGOhKrmAFExsAACtDiZxJLc289.png
解析和序列化程序示例
?

因此,如果您介紹 JSON 示例,該助手將為您提供解析和使用這些結構的可能解決方案。就我而言,我將使用兩種不同的結構,因為一個公交車站只有 1 輛公交車,而另一個公交車站有 2 輛公交車。

為了準備 GET 部分,我們將從 ESP8266WifiMulti 庫創建一個 WifiClient。接下來,將客戶端連接到 API 主機并開始發送 GET 請求、參數和標頭。接下來,來自 muy 代碼的示例:

WiFiClient client;
 String server = "www.zaragoza.es";
 // This will send the request to the server
 if (client.connect(server,80)) {
   //Serial.println("Conectado");
   if (selectbus == 39) {
     client.print("GET /api/recurso/urbanismo-infraestructuras/transporte-urbano/poste/tuzsa-508?");
     client.println(" HTTP/1.0");
     client.println("Host: www.zaragoza.es");
     client.println("Content-Type: application/json");
     client.println("Accept: application/json");
     client.println();
   } else {
     client.print("GET /api/recurso/urbanismo-infraestructuras/transporte-urbano/poste/tuzsa-3022?");
     client.println(" HTTP/1.0");
     client.println("Host: www.zaragoza.es");
     client.println("Content-Type: application/json");
     client.println("Accept: application/json");
     client.println();
   }
 } else {
   //Serial.println("Connection Failed!!!");
 }

為您請求的 API 調整您的代碼。

一旦我們知道如何獲取和處理 JSON 響應,就只需要完成一個任務:通過串行協議將部分響應發送到 Arduino Uno 開發板。

?

正確編程 ESP8266 板后,我們將直接關注 Arduino Uno 板代碼。Arduino Uno 函數有:

  • 接收和處理ESP8266發送的消息
  • 控制 LCD 屏幕和更新下一班車的時間
  • 選擇我們感興趣的總線
  • 距離下一班車還有5分鐘時發出緩沖聲

為了接收和處理 ESP8266 發送的消息,將創建一個 SoftwareSerial 對象(在我的例子中,端口 Rx 為 2,Tx 引腳為 11)。這樣,每次迭代客戶端都會詢問一些信息,它會收到 ESP8266 更新,并會在 LCD 屏幕上顯示新的更新。

String payload;
   // listen for communication from the ESP8266 and then write it to the serial monitor
   while ( ESPserial.available() > 0 )   { 
     lcd.clear(); 
     //Serial.write( ESPserial.read() );
     char c = ESPserial.read();
     payload +=c;
   }
  [...]
 lcd.print(payload);

為了控制 LCD 屏幕,將使用 LiquidCrystal 庫。對于屏幕的控制,將使用 7、6、4、3 和 8 針腳。有關 LCD 屏幕及其連接的更多信息,請參見下面的示意圖。

每次 Arduino Uno 和 ESP8266 啟動時,系統都會自動配置為詢問下一個 39 總線的剩余時間。如果我想詢問下一次 CI2 的剩余時間,您必須按下安裝的按鈕。這樣,Arduino Uno 將通過 SerialPort Tx#11 向 ESP8266 發送一個關鍵字。這樣,ESP8266 知道它必須更改獲取條件并請求 CI2 公交車站信息。

最后但并非最不重要的是,每當下一班公交車還剩 5 分鐘時,系統都會發出緩沖聲音,以免錯過下一班公交車。這樣,我就可以確定我會到達下一班公共汽車,每個人都很開心!!!

接下來是管理上述邏輯的代碼:

void loop() 
{
   String payload;
   // listen for communication from the ESP8266 and then write it to the serial monitor
   while ( ESPserial.available() > 0 )   { 
     lcd.clear(); 
     //Serial.write( ESPserial.read() );
     char c = ESPserial.read();
     payload +=c;
   }
   //delay(3000);
   // listen for user input and send it to the ESP8266
   if ( Serial.available() )       {  ESPserial.write( Serial.read() );  }
   int sensorVal = digitalRead(PIN_PULSADOR);
//    Serial.println(sensorVal);
   if (sensorVal != estado_anterior) {
     if (sensorVal == HIGH) {
       digitalWrite(PIN_LED, LOW);
     }
     else {
       digitalWrite(PIN_LED, HIGH);
       ESPserial.write("CI");
       if (selbus == 39) {
         selbus = 50;
     } else {
         selbus = 39;
   }
       //Serial.println("CI");
     }
   }
   if (selbus == 39) {
   lcd.home();
   lcd.print("El 39 llega en");
   } else {
       lcd.home();
       lcd.print("El CI2 llega en");
   }
   lcd.setCursor(0,1);
   lcd.print(payload);
   if (payload[0] == '5') {
    tone(12, 440,100);
   }
   estado_anterior = sensorVal;
}

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

評論

查看更多

下載排行

本周

  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次下載  |  免費
主站蜘蛛池模板: 杨幂视频1分11未删减在线观看| 不卡无线在一二三区| 年轻漂亮的妺妺中文字幕版| 草草久久久亚洲AV成人片 | np高h肉文| 手机在线看片欧美亚洲| 狠狠干老司机| 99久久久无码国产精精品| 午夜福利视频极品国产83| 久久久精品国产免费A片胖妇女| yellow日本动漫观看免费| 性欧美videosex18嫩| 明星三级电影| 国产亚洲精品久久77777| 91精品视频网站| 午夜射精日本三级| 暖暖 视频 在线 观看 高清 | 国产综合在线视频| FREE性丰满HD毛多多| 亚洲国产精品久久精品成人网站| 美女搞鸡网站| 国产亚洲精品第一区香蕉| jjzzz日本| 在线天天看片视频免费观看| 色欲无码国产喷水AV精品| 美国特级成人毛片| 国产在线精品亚洲另类| 成年人视频在线免费播放| 在线观看黄色小说| 亚洲AV综合99一二三四区| 热热久久超碰精品中文字幕 | 插我一区二区在线观看| 一区二区中文字幕在线观看 | 久久精品无码一区二区日韩av | jizz日本女人| 中文字幕无码亚洲字幕成A人蜜桃 中文字幕无码亚洲视频 | 亚洲综合中文字幕无线码| 熟妇无码乱子成人精品| 欧美国产一区二区三区激情无套 | 91国在线啪精品一区| 亚洲欧美无码2017在线|