chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>公交到站提醒開源項(xiàng)目

公交到站提醒開源項(xiàng)目

2022-12-21 | zip | 0.42 MB | 次下載 | 免費(fèi)

資料介紹

描述

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

項(xiàng)目開發(fā)說明

項(xiàng)目由2個(gè)代碼組成,一個(gè)管理arduino uno,另一個(gè)負(fù)責(zé)管理ESP8266板。

我們將開始解釋 ESP8266 代碼:

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

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

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

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

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

?

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

因此,如果您介紹 JSON 示例,該助手將為您提供解析和使用這些結(jié)構(gòu)的可能解決方案。就我而言,我將使用兩種不同的結(jié)構(gòu),因?yàn)橐粋€(gè)公交車站只有 1 輛公交車,而另一個(gè)公交車站有 2 輛公交車。

為了準(zhǔn)備 GET 部分,我們將從 ESP8266WifiMulti 庫創(chuàng)建一個(gè) WifiClient。接下來,將客戶端連接到 API 主機(jī)并開始發(fā)送 GET 請(qǐng)求、參數(shù)和標(biāo)頭。接下來,來自 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!!!");
 }

為您請(qǐng)求的 API 調(diào)整您的代碼。

一旦我們知道如何獲取和處理 JSON 響應(yīng),就只需要完成一個(gè)任務(wù):通過串行協(xié)議將部分響應(yīng)發(fā)送到 Arduino Uno 開發(fā)板。

?

正確編程 ESP8266 板后,我們將直接關(guān)注 Arduino Uno 板代碼。Arduino Uno 函數(shù)有:

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

為了接收和處理 ESP8266 發(fā)送的消息,將創(chuàng)建一個(gè) SoftwareSerial 對(duì)象(在我的例子中,端口 Rx 為 2,Tx 引腳為 11)。這樣,每次迭代客戶端都會(huì)詢問一些信息,它會(huì)收到 ESP8266 更新,并會(huì)在 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 庫。對(duì)于屏幕的控制,將使用 7、6、4、3 和 8 針腳。有關(guān) LCD 屏幕及其連接的更多信息,請(qǐng)參見下面的示意圖。

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

最后但并非最不重要的是,每當(dāng)下一班公交車還剩 5 分鐘時(shí),系統(tǒng)都會(huì)發(fā)出緩沖聲音,以免錯(cuò)過下一班公交車。這樣,我就可以確定我會(huì)到達(dá)下一班公共汽車,每個(gè)人都很開心?。?!

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

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;
}

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

評(píng)論

查看更多

下載排行

本周

  1. 1PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
  2. 1.83 MB   |  12次下載  |  4 積分
  3. 2世平基于靈動(dòng)微 SPIN560C 的低壓無刷電機(jī)應(yīng)用方案
  4. 10.93 MB  |  11次下載  |  免費(fèi)
  5. 3電源測(cè)試報(bào)告-基于 國(guó)民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  6. 6.47 MB  |  11次下載  |  免費(fèi)
  7. 4PWM控制器的控制方法
  8. 0.39 MB   |  3次下載  |  4 積分
  9. 5電流檢測(cè)芯片F(xiàn)P135應(yīng)用說明
  10. 1.24 MB   |  3次下載  |  免費(fèi)
  11. 6全面解讀被動(dòng)式與主動(dòng)式PFC電路
  12. 1.27 MB   |  1次下載  |  4 積分
  13. 7HC88L051F4低功耗芯片規(guī)格書
  14. 4.76 MB  |  1次下載  |  免費(fèi)
  15. 8CIU32D655x5數(shù)據(jù)手冊(cè)
  16. 2.14 MB   |  1次下載  |  免費(fèi)

本月

  1. 1常用電子元器件使用手冊(cè)
  2. 2.40 MB   |  52次下載  |  免費(fèi)
  3. 2高功率密度碳化硅MOSFET軟開關(guān)三相逆變器損耗分析
  4. 2.27 MB   |  33次下載  |  10 積分
  5. 3PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
  6. 1.83 MB   |  12次下載  |  4 積分
  7. 4世平基于靈動(dòng)微 SPIN560C 的低壓無刷電機(jī)應(yīng)用方案
  8. 10.93 MB  |  11次下載  |  免費(fèi)
  9. 5電源測(cè)試報(bào)告-基于 國(guó)民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  10. 6.47 MB  |  11次下載  |  免費(fèi)
  11. 6USB拓展塢PCB圖資料
  12. 0.57 MB   |  11次下載  |  免費(fèi)
  13. 7MS1826 HDMI 多功能視頻處理器數(shù)據(jù)手冊(cè)
  14. 4.51 MB   |  9次下載  |  免費(fèi)
  15. 8HAL9303線性霍爾效應(yīng)傳感器技術(shù)手冊(cè)
  16. 0.70 MB   |  9次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935134次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191424次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183352次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81600次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73818次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分