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

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

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

3天內(nèi)不再提示

【DFRobot Beetle ESP32-C3開發(fā)板試用體驗(yàn)】車載導(dǎo)航天氣掛件?

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-11-28 11:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來源電子發(fā)燒友社區(qū),作者:ZHOUxxx1121, 帖子地址:https://bbs.elecfans.com/jishu_2291088_1_1.html


車載導(dǎo)航天氣掛件

設(shè)備

  • LCD 1602A顯示屏
  • 合宙Air 551G導(dǎo)航模塊
  • DFRobot Beetle ESP32-C3開發(fā)板
  • 杜邦線若干

連接方式

跟之前的連接一樣。

  • ESP32-C3通過自制一分二的線分別給LCD屏幕和Air 551G供電。

  • ESP32-C3的Pin 8(SDA)和9(SCL)與LCD屏幕連接。

  • ESP32-C3的Pin 20(RX)和21(TX)與Air 551G連接。

    0.jpg

功能設(shè)計(jì)

利用ESP32-C3控制GNSS模塊,獲取當(dāng)前UTC時(shí)間和經(jīng)緯度等時(shí)間和坐標(biāo)信息,同時(shí)連接WIFI獲取所在位置的天氣信息。

在LCD屏幕上對(duì)時(shí)間、坐標(biāo)以及天氣信息等進(jìn)行顯示。

實(shí)現(xiàn)效果

1.jpg

基本上完成了設(shè)計(jì)功能。
后期升級(jí)主要是用更好的屏幕,現(xiàn)在用的LCD1602A顯示太差,不知道為什么顯示很不清晰。
現(xiàn)在時(shí)間和坐標(biāo)信息與天氣信息是切換顯示的,如果屏幕更大一點(diǎn),可以加入可視化顯示和同屏顯示。
最重要的是,如果把幾個(gè)模塊設(shè)計(jì)到一個(gè)模塊中,套個(gè)好看的外殼,擺在車?yán)锩娈?dāng)掛件,是不是也很不錯(cuò)?

代碼實(shí)現(xiàn)

#include 
#include 
#include 
#include 
#include //修改WIFI名稱以及密碼
const char* ssid = "**";//WIFI名稱
const char* password = "**";//WIFI密碼
String openWeatherMapApiKey = "***";//Open weather app ID
double time_utc=0;
double lat=34;// 默認(rèn)緯度
double lon=113;//默認(rèn)經(jīng)度
//設(shè)置獲取信息的間隔時(shí)間,以下用于測(cè)試所以設(shè)置為10秒
//您應(yīng)當(dāng)根據(jù)你需要獲取數(shù)據(jù)的網(wǎng)站,規(guī)定時(shí)間內(nèi)訪問數(shù)據(jù)的次數(shù)上限來限制訪問時(shí)間的最小間隔
unsigned long lastTime = 0;
//設(shè)置每10分鐘獲得一次天氣數(shù)據(jù)
//unsigned long timerDelay = 600000;
//設(shè)置每10秒獲得一次天氣數(shù)據(jù)
unsigned long timerDelay = 10000;

LiquidCrystal_PCF8574 lcd(0x27); // set the LCD address to 0x27 for a 16 chars and 2 line display

String jsonBuffer;
String lineData="";
int show = -1;
String comdata="";
void setup()
{
  
  
  int error;

  Serial.begin(115200);
  Serial.println("LCD...");
  Serial1.begin(115200,SERIAL_8N1,/*rx =*/20,/*Tx =*/21);  

  // wait on Serial to be available on Leonardo
  while (!Serial&&!Serial1)
    ;
  
  WiFi.begin(ssid, password);
  Serial.println("Connecting WIFI...");
  //判斷WIFI是否連接
  while(WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to WiFi network with IP Address: ");
  Serial.println(WiFi.localIP());
  Serial.println("Timer set to 10 seconds (timerDelay variable), it will take 10 seconds before publishing the first reading.");


  Serial.println("Dose: check for LCD");

  Wire.begin();
  Wire.beginTransmission(0x27);
  error = Wire.endTransmission();
  Serial.print("Error: ");
  Serial.print(error);

  if (error == 0) {
    Serial.println(": LCD found.");
    show = 0;
    lcd.begin(16, 2); // initialize the lcd

  } else {
    Serial.println(": LCD not found.");
  } // if
  //lcd.print("WIFI&I2C&SERIAL OK");
  lcd.setBacklight(0);
  delay(400);
  lcd.setBacklight(255);
  lcd.home();
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("WIFI&SCREEN&GNSS");
  lcd.setCursor(0, 1);
  lcd.print("IS READY!");
  lcd.noBlink();
  lcd.noCursor();
  delay(1000);

} // setup()

void loop()
{
  while(Serial1.available()>0)
  {
    lineData=char(Serial1.read());
    comdata+=lineData;
    delay(2);
  }
  if (comdata.length()>0)
  {
    Serial.println(comdata);
    int ic=comdata.indexOf('*');
    
    String tmp=comdata.substring(1,ic);
    if(tmp.substring(0,5)==("GNGGA"))
    {
      lcd.home();
      lcd.clear();
      lcd.setCursor(0, 0);

      time_utc=tmp.substring(6,16).toDouble()+80000;
      if (time_utc>240000)
        time_utc-=240000;
      Serial.println("T="+String(time_utc));  
      lcd.print("T="+String(time_utc)); 
      
      lat=tmp.substring(17,19).toDouble()+tmp.substring(19,27).toDouble()/60;
      lon=tmp.substring(30,33).toDouble()+tmp.substring(33,41).toDouble()/60;
      
      Serial.println("Lat="+String(lat));
      Serial.println("Lon="+String(lon));
      
      lcd.setCursor(0, 1);
      lcd.print("B="+String(lat).substring(0,6)+" L="+String(lon).substring(0,7));
      //Serial.println("$GNGGA detected..");
    }
      
    
    comdata="";
  }
   //發(fā)送HTTP獲取請(qǐng)求
  if ((millis() - lastTime) > timerDelay) {
    //檢測(cè)WIFI是否已經(jīng)連接
    if(WiFi.status()== WL_CONNECTED){
      //String serverPath = "http://api.openweathermap.org/data/2.5/weather?q=" + city + "," + countryCode + "&appid=" + openWeatherMapApiKey;
      String serverPath = "http://api.openweathermap.org/data/2.5/weather?lat=" + String(lat) + "&lon=" + String(lon) + "&appid=" + openWeatherMapApiKey;      //將組合好的URL放入httpGETRequest函數(shù)中通過HTTP獲取請(qǐng)求以獲得文本
      jsonBuffer = httpGETRequest(serverPath.c_str());
      Serial.println(jsonBuffer);

      //將解析的Json對(duì)象值儲(chǔ)存在Jsonu緩沖區(qū)中
      JSONVar myObject = JSON.parse(jsonBuffer);

      //判斷解析是否成功
      if (JSON.typeof(myObject) == "undefined") {
        Serial.println("Parsing input failed!");
        return;
      }

      Serial.print("JSON object = ");
      Serial.println(myObject);
      Serial.print("Temperature: ");
      //獲取到的溫度其實(shí)是開氏度。
      //開氏度 = 攝氏度+273.15
      double c = myObject["main"]["temp"];
      c = c-273.15;
      Serial.println(c);
      
      lcd.home();
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("T="+String(c)+" ");
      
      Serial.print("Pressure: ");
      //myObject["main"]["pressure"]前為{}前的引號(hào)內(nèi)容,后為讀取哪一個(gè)引號(hào)后數(shù)據(jù)
      Serial.println(myObject["main"]["pressure"]);
      Serial.print("Humidity: ");
      Serial.println(myObject["main"]["humidity"]);

      double pres=myObject["main"]["pressure"];
      lcd.print("P="+String(pres));
      
      Serial.print("Wind Speed: ");
      Serial.println(myObject["wind"]["speed"]);

      lcd.setCursor(0, 1);
      double wind=myObject["wind"]["speed"];
      lcd.print("Wind="+String(wind)+" ");

      double Hu=myObject["main"]["humidity"];
      lcd.print("H="+String(Hu));
    }
    else {
      Serial.println("WiFi Disconnected");
    }
    lastTime = millis();
  }
} // loop()

String httpGETRequest(const char* serverName) {
  WiFiClient client;
  HTTPClient http;

  //連接網(wǎng)址
  http.begin(client, serverName);

  //發(fā)送HTTP站點(diǎn)請(qǐng)求
  int httpResponseCode = http.GET();

  //該數(shù)組用于儲(chǔ)存獲得的數(shù)據(jù)
  String payload = "{}";

  //將獲得的數(shù)據(jù)放入數(shù)組
  if (httpResponseCode>0) {
    Serial.print("HTTP Response code: ");
    Serial.println(httpResponseCode);
    payload = http.getString();
  }
  else {
    Serial.print("Error code: ");
    Serial.println(httpResponseCode);
  }

  //釋放資源
  http.end();

  //返回獲得的數(shù)據(jù)用于Json處理
  return payload;
}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ESP32
    +關(guān)注

    關(guān)注

    27

    文章

    1222

    瀏覽量

    22320
  • DFRobot
    +關(guān)注

    關(guān)注

    4

    文章

    1165

    瀏覽量

    12686
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ESP32/ESP8266開發(fā)板單向多對(duì)一ESP-NOW無線通信

    本實(shí)驗(yàn)通過ESP-NOW無線通信協(xié)議實(shí)現(xiàn)多個(gè)ESP32/ESP 8266開發(fā)板ESP32開發(fā)板
    的頭像 發(fā)表于 03-30 10:14 ?173次閱讀
    <b class='flag-5'>ESP32</b>/<b class='flag-5'>ESP</b>8266<b class='flag-5'>開發(fā)板</b>單向多對(duì)一<b class='flag-5'>ESP</b>-NOW無線通信

    ESP32開發(fā)板單向點(diǎn)對(duì)點(diǎn)ESP-NOW無線通信

    本例程通過兩個(gè)ESP32開發(fā)板實(shí)現(xiàn)單向點(diǎn)對(duì)點(diǎn)ESP-NOW無線通信,一個(gè)ESP32開發(fā)板作為Sender發(fā)送方,另一個(gè)
    的頭像 發(fā)表于 03-19 09:21 ?298次閱讀
    <b class='flag-5'>ESP32</b><b class='flag-5'>開發(fā)板</b>單向點(diǎn)對(duì)點(diǎn)<b class='flag-5'>ESP</b>-NOW無線通信

    ESP32/ESP8266開發(fā)板單向一對(duì)多ESP-NOW無線通信

    通過ESP-NOW無線通信協(xié)議實(shí)現(xiàn)ESP32開發(fā)板向多個(gè)ESP32/ESP 8266開發(fā)板發(fā)送數(shù)
    的頭像 發(fā)表于 03-13 09:23 ?280次閱讀
    <b class='flag-5'>ESP32</b>/<b class='flag-5'>ESP</b>8266<b class='flag-5'>開發(fā)板</b>單向一對(duì)多<b class='flag-5'>ESP</b>-NOW無線通信

    ESP32-C61】WT9932C61-TINY開發(fā)板上手指南

    1開發(fā)板介紹WT9932C61?TINY是一款專為輕量化物聯(lián)網(wǎng)開發(fā)設(shè)計(jì)的迷你開發(fā)板,核心基于樂鑫ESP32?
    的頭像 發(fā)表于 02-27 18:02 ?617次閱讀
    【<b class='flag-5'>ESP32-C</b>61】WT9932<b class='flag-5'>C</b>61-TINY<b class='flag-5'>開發(fā)板</b>上手指南

    ESP32-C3】WT9932C3-TINY開發(fā)板上手指南

    簡介1開發(fā)板介紹WT9932C3-TINY是一款專為輕量化物聯(lián)網(wǎng)開發(fā)設(shè)計(jì)的迷你開發(fā)板,核心基于樂鑫ESP32-C3芯片,搭載啟明云端WT01
    的頭像 發(fā)表于 02-26 18:05 ?274次閱讀
    【<b class='flag-5'>ESP32-C3</b>】WT9932<b class='flag-5'>C3</b>-TINY<b class='flag-5'>開發(fā)板</b>上手指南

    ESP32-C5系列】WT9932C5-TINY開發(fā)板上手指南

    簡介1開發(fā)板介紹WT9932C5-TINY是一款專為輕量化物聯(lián)網(wǎng)開發(fā)設(shè)計(jì)的迷你開發(fā)板,核心基于樂鑫ESP32-C5芯片,搭載啟明云端WT01
    的頭像 發(fā)表于 02-26 18:05 ?526次閱讀
    【<b class='flag-5'>ESP32-C</b>5系列】WT9932<b class='flag-5'>C</b>5-TINY<b class='flag-5'>開發(fā)板</b>上手指南

    ESP32-C3】WT9932C3-TINY開發(fā)板規(guī)格書

    開發(fā)板簡介1開發(fā)板介紹WT9932C3-TINY是一款專為輕量化物聯(lián)網(wǎng)開發(fā)設(shè)計(jì)的迷你開發(fā)板,核心基于樂鑫
    的頭像 發(fā)表于 02-11 18:04 ?851次閱讀
    【<b class='flag-5'>ESP32-C3</b>】WT9932<b class='flag-5'>C3</b>-TINY<b class='flag-5'>開發(fā)板</b>規(guī)格書

    ESP32-C61】WT9932C61-TINY開發(fā)板規(guī)格書

    開發(fā)板介紹WT9932C61?TINY是一款專為輕量化物聯(lián)網(wǎng)開發(fā)設(shè)計(jì)的迷你開發(fā)板,核心基于樂鑫ESP32?
    的頭像 發(fā)表于 02-11 18:04 ?604次閱讀
    【<b class='flag-5'>ESP32-C</b>61】WT9932<b class='flag-5'>C</b>61-TINY<b class='flag-5'>開發(fā)板</b>規(guī)格書

    ESP32-C5系列】WT9932C5-TINY開發(fā)板規(guī)格書

    1開發(fā)板介紹WT9932C5-TINY是一款專為輕量化物聯(lián)網(wǎng)開發(fā)設(shè)計(jì)的迷你開發(fā)板,核心基于樂鑫ESP32-C5芯片,搭載啟明云端WT0132
    的頭像 發(fā)表于 02-09 18:20 ?673次閱讀
    【<b class='flag-5'>ESP32-C</b>5系列】WT9932<b class='flag-5'>C</b>5-TINY<b class='flag-5'>開發(fā)板</b>規(guī)格書

    ESP32-C3迷你開發(fā)板,支持Wi-Fi+BLE雙模,即插即用設(shè)計(jì)!

    如果你正在為智能家居、工業(yè)控制或低功耗物聯(lián)網(wǎng)終端項(xiàng)目尋找一款性能可靠、開發(fā)便捷且接口完備的核心模塊,不妨直接關(guān)注這款WT9932C3-TINY開發(fā)板——它基于成熟的樂鑫科技ESP32-C3
    的頭像 發(fā)表于 01-27 18:18 ?555次閱讀
    <b class='flag-5'>ESP32-C3</b>迷你<b class='flag-5'>開發(fā)板</b>,支持Wi-Fi+BLE雙模,即插即用設(shè)計(jì)!

    ESP32-P4全功能開發(fā)板ESP32-P4-TINY開發(fā)板該怎么選?看這篇就夠了!

    啟明云端基于樂鑫科技ESP32-P4芯片設(shè)計(jì)了多款開發(fā)板,這些開發(fā)板有什么區(qū)別?基于應(yīng)用場(chǎng)景如何選擇?本期,我們聚焦兩款代表性產(chǎn)品:WT99P4C5-S1
    的頭像 發(fā)表于 12-09 18:02 ?1225次閱讀
    <b class='flag-5'>ESP32</b>-P4全功能<b class='flag-5'>開發(fā)板</b>和<b class='flag-5'>ESP32</b>-P4-TINY<b class='flag-5'>開發(fā)板</b>該怎么選?看這篇就夠了!

    這塊樂鑫科技ESP32-C3開發(fā)板太懂開發(fā)者了!雙無線+全接口,不要太實(shí)用

    設(shè)計(jì)之初就瞄準(zhǔn)了開發(fā)過程中的這些痛點(diǎn),讓你能把更多精力放在創(chuàng)意實(shí)現(xiàn)上!性能足夠能打,物聯(lián)網(wǎng)應(yīng)用無壓力搭載樂鑫科技ESP32-C3芯片,采用RISC-V架構(gòu),最高主頻
    的頭像 發(fā)表于 12-01 18:02 ?1304次閱讀
    這塊樂鑫科技<b class='flag-5'>ESP32-C3</b><b class='flag-5'>開發(fā)板</b>太懂<b class='flag-5'>開發(fā)</b>者了!雙無線+全接口,不要太實(shí)用

    ESP32開發(fā)板元件資料

    ESP32開發(fā)板元件
    發(fā)表于 07-21 14:47 ?17次下載

    ESP32-P4 C5開發(fā)板燒錄小智全流程!速看!

    沒錯(cuò),你沒有看錯(cuò)!我們帶著WT99P4C5-S1開發(fā)板燒錄小智全流程走來了!開發(fā)板搭載樂鑫科技ESP32-P4和ESP32-C5芯片,代碼完
    的頭像 發(fā)表于 07-04 18:03 ?2878次閱讀
    <b class='flag-5'>ESP32</b>-P4 <b class='flag-5'>C</b>5<b class='flag-5'>開發(fā)板</b>燒錄小智全流程!速看!

    ESP32-C3開發(fā)板全面支持小智AI!燒錄實(shí)戰(zhàn)指南來了!

    本文將詳細(xì)解析基于樂鑫ESP32-C3芯片的ZXAIEC43開發(fā)板燒錄“小智”AI語音系統(tǒng)的全流程。該方案代碼完全開源,支持深度定制開發(fā),適用于智能玩具、潮玩手辦及智能家居控制等多元場(chǎng)景。開發(fā)
    的頭像 發(fā)表于 06-13 18:01 ?6596次閱讀
    <b class='flag-5'>ESP32-C3</b><b class='flag-5'>開發(fā)板</b>全面支持小智AI!燒錄實(shí)戰(zhàn)指南來了!