欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

ESP32-S2設(shè)計(jì)網(wǎng)絡(luò)/FM兩用收音機(jī)

電子森林 ? 來(lái)源:電子森林 JOHN HUANG ? 作者:電子森林 JOHN HUA ? 2021-09-14 09:31 ? 次閱讀

這是一位工程師基于硬禾學(xué)堂"暑期一起練"的ESP32-S2平臺(tái)實(shí)現(xiàn)的網(wǎng)絡(luò)收音機(jī)、FM收音機(jī)的功能,項(xiàng)目開源在電子森林的項(xiàng)目頁(yè)面(點(diǎn)擊左下角的“閱讀原文”)。

以下是該項(xiàng)目的內(nèi)容

實(shí)現(xiàn)的基本功能

  • 可以通過(guò)WiFi接收網(wǎng)絡(luò)上的電臺(tái),也可以通過(guò)FM模塊接收空中的電臺(tái),并可以通過(guò)按鍵進(jìn)行切換、選臺(tái)

  • OLED顯示屏上顯示網(wǎng)絡(luò)電臺(tái)的IP地址、節(jié)目名字等相關(guān)信息或FM信號(hào)的頻段

  • 系統(tǒng)能夠自動(dòng)校時(shí),開機(jī)后自動(dòng)調(diào)節(jié)到準(zhǔn)確的時(shí)間(年、月、日、時(shí)、分、秒)

項(xiàng)目環(huán)境

  • Arduino v1.8.16: 一款便捷靈活、方便上手的開源電子原型平臺(tái)

  • VS code v1.60.0: 微軟開發(fā)的跨平臺(tái)源代碼編輯器

  • Vscode-Arduino: VScode開發(fā)Arduino的插件

  • arduino-esp32 v2.0.0: ESP32平臺(tái)的Arduino開發(fā)庫(kù)

  • u8g2: Arduino使用I2C或SPI控制屏幕的庫(kù)

  • RDA5807: Arduino使用I2C控制收音機(jī)模塊的庫(kù)

硬件

  • ESP32-S2-MINI-1:ESP32-S2-FH4的芯片,320K的DRAM,無(wú)PSRAM

  • FM模塊:RDA5807M

一. 如何使用

1. 使用編譯好的二進(jìn)制程序

  • 下載編譯好的二進(jìn)制程序:eetree.ino.esp32s2.bin

  • 安裝CH340串口驅(qū)動(dòng)

  • 使用Arduino將二進(jìn)制程序上傳到開發(fā)開發(fā)板上

2. 使用源碼編譯燒錄

  • 設(shè)置wifi賬號(hào)密碼

    const char* SSID   = "sxxx";
    const char* PASSWD = "xxx";
  • 設(shè)置網(wǎng)絡(luò)收音機(jī)的IP和端口

    const char* WEBSERVERIP "192.168.1.55"
    const char* WEBSERVERPORT 8888
  • 在searchFM()函數(shù)中設(shè)置開始頻率

    void searchFM() {
       ...
       rx.setFrequency(9600); 
       ...
  • 安裝CH340串口驅(qū)動(dòng)

  • 使用Arduino編譯燒錄到開發(fā)板上

46010134-149a-11ec-8fb8-12bb97331649.png

二. 運(yùn)行現(xiàn)象

  • 開機(jī)是會(huì)進(jìn)入顯示John Radio的Logo頁(yè)面

  • 開機(jī)后會(huì)總有有三個(gè)頁(yè)面時(shí)間顯示, FM收音機(jī), 網(wǎng)絡(luò)收音機(jī), 通過(guò)按鍵1可以進(jìn)行切換

  • 進(jìn)入到時(shí)間顯示頁(yè)面: 會(huì)顯示和服務(wù)器校對(duì)好的時(shí)間

  • 進(jìn)入到FM收音機(jī)的頁(yè)面: 會(huì)顯示當(dāng)前的收音機(jī)頻率, 通過(guò)點(diǎn)擊按鍵2可以切換不同的頻率

  • 進(jìn)入到網(wǎng)絡(luò)收音機(jī)的頁(yè)面, 會(huì)顯示當(dāng)前連接的網(wǎng)絡(luò)收音機(jī)IP及端口

1. 編譯日志

項(xiàng)目使用了 722978 字節(jié),占用了 (55%) 程序存儲(chǔ)空間。最大為 1310720 字節(jié)。
全局變量使用了37348字節(jié),(11%)的動(dòng)態(tài)內(nèi)存,余留290332字節(jié)局部變量。最大為327680字節(jié)。
esptool.py v3.1
Serial port /dev/ttyUSB0
Connecting....
Chip is ESP32-S2FH32
Features: WiFi, Embedded 4MB Flash, 105C temp rating, ADC and temperature sensor calibration in BLK2 of efuse
Crystal is 40MHz
MAC: 7c:df:a1:97:44:da
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00001000 to 0x00004fff...
Flash will be erased from 0x00010000 to 0x000c0fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 755.2 kbit/s)...
Hash of data verified.
Compressed 13600 bytes to 9358...
Writing at 0x00001000... (100 %)
Wrote 13600 bytes (9358 compressed) at 0x00001000 in 0.4 seconds (effective 274.5 kbit/s)...
Hash of data verified.
Compressed 723360 bytes to 484945...
Writing at 0x00010000... (3 %)
Writing at 0x00019c43... (6 %)
...
Writing at 0x000bd11f... (100 %)
Wrote 723360 bytes (484945 compressed) at 0x00010000 in 11.4 seconds (effective 505.4 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 128...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 511.0 kbit/s)...
Hash of data verified.

Leaving...

2. 運(yùn)行串口日志

192.168.43.143
Search FM8710:0
Search FM8720:0
Search FM8730:1
Search FM8740:1
Good Frequency: 8760
Search FM8770:0
Search FM8780:1
Search FM8790:1
Search FM8800:1
Good Frequency: 8810
Search FM8820:0
Search FM8830:0
Good Frequency: 8860
...
Good Frequency: 10370
info: FM Radio Page
info: Net Radio Page
info: Datetime Page

	

3. 開發(fā)板運(yùn)行情況

46120736-149a-11ec-8fb8-12bb97331649.png


46321404-149a-11ec-8fb8-12bb97331649.png

464f90ce-149a-11ec-8fb8-12bb97331649.png

三. 已知BUG

  • 上電時(shí)如果沒有連接wifi失敗會(huì)停留在Logo界面

  • 上電時(shí)如果沒有成功連接到時(shí)間服務(wù)器上回停留在Logo界面

  • 長(zhǎng)按按鈕會(huì)出現(xiàn)連按的問(wèn)題, 會(huì)在不同的界面里面循環(huán)跳轉(zhuǎn)

  • 即使關(guān)閉了揚(yáng)聲器的輸出, FM收音機(jī)依然也會(huì)在耳機(jī)中輸出

四. 筆記

1. 項(xiàng)目前瞻

  • 競(jìng)爭(zhēng)力: 相較于手機(jī)來(lái)說(shuō), 此產(chǎn)品的成本更低, 續(xù)航更高, 專一性更強(qiáng), 更加小巧

  • 改進(jìn):

    • 可以增加一塊電池, 增加便攜性

    • 增加一塊藍(lán)牙模塊, 增加藍(lán)牙功能

2. 開發(fā)環(huán)境的部署

  • 下載Arduino

    https://www.arduino.cc/en/software

46695c52-149a-11ec-8fb8-12bb97331649.png

  • 安裝VScode

    https://code.visualstudio.com/download

467941b2-149a-11ec-8fb8-12bb97331649.png

  • 下載VS Code插件 Arduino

4697bee4-149a-11ec-8fb8-12bb97331649.png

  • 在VScode的設(shè)置中, 添加ESP32 Arduino開發(fā)板庫(kù)

    {
        "arduino.path": "C:\Program Files (x86)\Arduino",
        "arduino.ignoreBoards": [
    
        
        ],
        "editor.insertSpaces": true,
        "files.autoGuessEncoding": true,
        "arduino.logLevel": "info",
        "explorer.confirmDelete": false,
        "editor.detectIndentation": false,
        "arduino.additionalUrls": [
            "http://arduino.esp8266.com/stable/package_esp8266com_index.json",
            "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json"
        ],
        "editor.quickSuggestions": true,
        "C_Cpp.clang_format_style": "{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Attach, AllowShortIfStatementsOnASingleLine: true, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All }",
        "C_Cpp.default.includePath": [
            "${workspaceFolder}/**",
            "C:\Program Files (x86)\Arduino\lib**",
            "C:\Program Files (x86)\Arduino\hardware\esp\arduino-esp32-master\**",
            "C:\Program Files (x86)\Arduino\hardware\esp\arduino-esp32-master\tools\**",
            "C:\Program Files (x86)\Arduino\libraries**",
            "C:\Users\{yourname}\Documents\Arduino\libraries\**"
        ],
        "C_Cpp.default.intelliSenseMode": "clang-x64",
        "C_Cpp.intelliSenseEngine": "Tag Parser",
        "remote.portsAttributes": {
        
        },
        
    }
  • 下載u8g2,RDA5807第三方庫(kù)

46ad1708-149a-11ec-8fb8-12bb97331649.png

46bae3e2-149a-11ec-8fb8-12bb97331649.png

46c7affa-149a-11ec-8fb8-12bb97331649.png

3. 開發(fā)思路

  • 上電: 進(jìn)行屏幕, FM, WIFI等功能的初始化

       pinMode(41, OUTPUT);
       pinMode(42, OUTPUT);
    
       digitalWrite(41, LOW);
       digitalWrite(42, LOW);
       Serial.begin(115200);
       mointorInit();
       displayWelcome();
       Serial.println("connect wifi");
       IPAddress = WifiConnecttion();
       Serial.println(IPAddress.c_str());
       fmInit();
       searchFM();
       SetFMFrequency();
       configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
       pinMode(button1, INPUT_PULLUP);
       pinMode(button2, INPUT_PULLUP);
       pinMode(button3, INPUT_PULLUP);
       pinMode(button4, INPUT_PULLUP);
  • 循環(huán): 監(jiān)聽按鍵的輸入, 并且對(duì)用戶的輸入進(jìn)行響應(yīng)

       num=0;
       displayMessage();
       if (digitalRead(button1) == LOW) {
           delay(50);
           if (digitalRead(button1) == LOW) {
               buttonFlag = 1;
          }
      }
       if (digitalRead(button2) == LOW) {
           delay(50);
           if (digitalRead(button2) == LOW) {
               buttonFlag = 2;
          }
      }
       if (digitalRead(button3) == LOW) {
           delay(50);
           if (digitalRead(button3) == LOW) {
               buttonFlag = 3;
          }
      }
       if (digitalRead(button4) == LOW) {
           delay(50);
           if (digitalRead(button4) == LOW) {
               buttonFlag = 4;
          }
      }
       if (buttonFlag != 0) {
           FunctionUp();
           delay(1000);
      }
       if (curr_sour == 2) {
           playMusic();
      }
       buttonFlag = 0;
  • 時(shí)間校對(duì)

    configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
  • WIFI連接

    WiFi.mode(WIFI_STA);
    WiFi.begin(SSID, PASSWD);
    while (WiFi.status() != WL_CONNECTED) {
        delay(400); 
   }
  • FM的搜索

   uint16_t i = 0;
   uint8_t num = 0;
   rx.setFrequency(9600);
   while (i < 210) {
       delay(100);
       if (rx.isStereo() && rx.getRssi() > 20) {
           fmstation[num++] = findMaxSing(rx.getFrequency(), rx.getRssi());
           Serial.print("Good Frequency: ");
           Serial.println(rx.getFrequency());
           if (num >= MAX_STATIONS) return ;
      }
       rx.setFrequencyUp();
       i++;
       Serial.print("Search FM");
       Serial.print(rx.getFrequency());
       Serial.print(":");
       Serial.print

4. 遇到的問(wèn)題Windows版本的Arduino編譯速度慢的問(wèn)題

1/ 因?yàn)榛顒?dòng)接近尾聲, 希望快點(diǎn)開發(fā)出項(xiàng)目出來(lái), 所以選擇了Arduino作為開發(fā)工具.

高效的編輯器, 緩慢的編譯器

但是Arduino的編輯器實(shí)在是太差了, 于是使用了VScode作為編輯器. 但是用VScode編譯的二次速度比Arduino的要慢一點(diǎn). 后面再網(wǎng)上找到了解決方案, 在工程目錄的".vscode"中設(shè)置了一個(gè)Build選項(xiàng), 就可以大大提高二次編譯的編譯速度

擁抱Linux的懷抱

不過(guò)隨著時(shí)間的推移, 發(fā)現(xiàn)編譯的速度還是跟不上調(diào)試的速度, 因?yàn)槲沂亲鲕浖某錾? 主要語(yǔ)言還是使用Python這樣的可以即使運(yùn)行的語(yǔ)言, 于是想有沒有辦法再把編譯的速度提升上去呢.

之前就有了解到Linux上面的Arduino比Windows上面要快不少, 之前一直覺得在Linux上面安裝東西太麻煩了, 這次就這這個(gè)機(jī)會(huì)嘗試著安裝了一下, 其實(shí)也只是下載安裝包, 解壓, 執(zhí)行安裝腳本三步, 并且通過(guò)一些SSH軟件可以直接在命令行打開編輯窗口, 十分方便.

結(jié)果編譯速度提升了80%, 之后可以繼續(xù)嘗試把VScode安裝在Linux上面, 使用純Linux進(jìn)行開發(fā)

2/ VS code對(duì)ESP32的庫(kù)提示庫(kù)不存在

艱難的安裝

我的Arduino ESP32庫(kù)安裝了好多次都有問(wèn)題. 主要是網(wǎng)絡(luò)的問(wèn)題, 在下載arduino-esp32的Git hub 倉(cāng)庫(kù)的時(shí)候就打不開了

后面我Clone倉(cāng)庫(kù)下載解壓到安裝目錄, 造成了之后的問(wèn)題

VS code的嚎叫

在Arduino中可以使用, 之后我轉(zhuǎn)戰(zhàn)VScode, 結(jié)果發(fā)現(xiàn)VScode又不能正常使用ESP32, 直接在開發(fā)板管理工具里面找不到了

最后只能刪掉庫(kù), 在VScode的開發(fā)板管理工具里面重新安裝才可以完成

解決網(wǎng)絡(luò)的問(wèn)題

如果網(wǎng)絡(luò)有問(wèn)題, 可以根據(jù)命令行的提示, 在github上面找到對(duì)應(yīng)的zip包, 解壓到C://user/username/Appdata/Arduino15/staging/package中, Arduino會(huì)直接使用下載好的包, 這樣就可以大大減少重新安裝的時(shí)間和避免網(wǎng)絡(luò)比穩(wěn)定到時(shí)下載失敗的情況. 比如說(shuō)可以使用一些下載工具先進(jìn)行下載.

總是感覺Arduino作為編輯器還是有很多不足的地方, 比如代碼提示, 庫(kù)的安裝之類的. 以后進(jìn)行開發(fā)我會(huì)優(yōu)先使用Linux下的VSCode


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

    關(guān)注

    60

    文章

    596

    瀏覽量

    76320
  • 工程師
    +關(guān)注

    關(guān)注

    59

    文章

    1573

    瀏覽量

    68667
  • FM
    FM
    +關(guān)注

    關(guān)注

    1

    文章

    183

    瀏覽量

    59345
  • WIFI
    +關(guān)注

    關(guān)注

    81

    文章

    5310

    瀏覽量

    204947
  • ESP32
    +關(guān)注

    關(guān)注

    18

    文章

    980

    瀏覽量

    17566

原文標(biāo)題:基于ESP32-S2實(shí)現(xiàn)的網(wǎng)絡(luò)/FM兩用收音機(jī)

文章出處:【微信號(hào):xiaojiaoyafpga,微信公眾號(hào):電子森林】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    [建議]FM收音機(jī)集成電路

    是電調(diào)諧FM接收集成電路, TDA2822是小功率雙聲道功放集成電路。此收音機(jī)耳機(jī)作為天線,具有體積小、外圍元件少、靈敏度高 、性能穩(wěn)定、噪聲小、分離度高、制作和調(diào)試簡(jiǎn)單等特點(diǎn)。此收音機(jī)
    發(fā)表于 12-31 16:31

    【樂(lè)鑫ESP32-DevKitC-32D模組開發(fā)板試用連載】WiFi網(wǎng)絡(luò)收音機(jī)

    項(xiàng)目名稱:WiFi網(wǎng)絡(luò)收音機(jī)試用計(jì)劃:申請(qǐng)理由:學(xué)生,想在家學(xué)習(xí)樂(lè)鑫esp32的WiFi以及藍(lán)牙,機(jī)智云app,以及其他功能項(xiàng)目計(jì)劃:利用WiFi以及藍(lán)牙實(shí)現(xiàn)網(wǎng)絡(luò)
    發(fā)表于 07-03 10:15

    太陽(yáng)能干電池兩用耳塞收音機(jī)

    太陽(yáng)能干電池兩用耳塞收音機(jī)
    發(fā)表于 04-23 11:38 ?843次閱讀
    太陽(yáng)能干電池<b class='flag-5'>兩用</b>耳塞<b class='flag-5'>收音機(jī)</b>

    收音機(jī)調(diào)頻(FM)發(fā)射機(jī)的小制作

    收音機(jī)調(diào)頻(FM)發(fā)射機(jī)的小制作收音機(jī)調(diào)頻(FM)發(fā)射機(jī)的小制作。
    發(fā)表于 03-14 09:58 ?0次下載

    FM收音機(jī)的制作與設(shè)計(jì)--課程設(shè)計(jì)

    FM收音機(jī)的制作與設(shè)計(jì)--課程設(shè)計(jì)FM收音機(jī)的制作與設(shè)計(jì)--課程設(shè)計(jì)。
    發(fā)表于 05-26 17:35 ?231次下載

    基于ESP32-S2的智能86盒

    該產(chǎn)品采用樂(lè)鑫ESP32-S2 MCU,使用了3.92寸彩屏,分辨率為320*320,支持電容觸摸,支持WIFI/藍(lán)牙無(wú)線通信。
    發(fā)表于 06-28 11:15 ?2013次閱讀

    ESP32-S2攝像頭WIFI方案應(yīng)用于智能貓眼

    目前智能貓眼方案成本偏高,普及應(yīng)用慢。為此,啟明云端推出了基于樂(lè)鑫ESP32-S2芯片的高性價(jià)比智能貓眼方案。
    發(fā)表于 10-28 15:26 ?2013次閱讀
    <b class='flag-5'>ESP32-S2</b>攝像頭WIFI方案應(yīng)用于智能貓眼

    電子管收音機(jī)懷舊系列(3)古典超外差式收音電唱兩用機(jī).pdf

    電子管收音機(jī)懷舊系列(3)古典超外差式收音電唱兩用機(jī).pdf
    發(fā)表于 02-11 14:30 ?10次下載

    TEF6686 ESP32收音機(jī)接收器的控制面板

    電子發(fā)燒友網(wǎng)站提供《TEF6686 ESP32收音機(jī)接收器的控制面板.zip》資料免費(fèi)下載
    發(fā)表于 07-07 14:26 ?15次下載
    TEF6686 <b class='flag-5'>ESP32</b><b class='flag-5'>收音機(jī)</b>接收器的控制面板

    用于Sparkfun MicroMod載板的ESP32-S2處理器

    電子發(fā)燒友網(wǎng)站提供《用于Sparkfun MicroMod載板的ESP32-S2處理器.zip》資料免費(fèi)下載
    發(fā)表于 07-21 10:21 ?0次下載
    用于Sparkfun MicroMod載板的<b class='flag-5'>ESP32-S2</b>處理器

    使用ESP32 TTGO T Display設(shè)計(jì)網(wǎng)絡(luò)收音機(jī)

    電子發(fā)燒友網(wǎng)站提供《使用ESP32 TTGO T Display設(shè)計(jì)網(wǎng)絡(luò)收音機(jī).zip》資料免費(fèi)下載
    發(fā)表于 10-19 11:25 ?1次下載
    使用<b class='flag-5'>ESP32</b> TTGO T Display<b class='flag-5'>設(shè)計(jì)網(wǎng)絡(luò)</b><b class='flag-5'>收音機(jī)</b>

    帶有有線以太網(wǎng)連接的ESP32網(wǎng)絡(luò)收音機(jī)

    電子發(fā)燒友網(wǎng)站提供《帶有有線以太網(wǎng)連接的ESP32網(wǎng)絡(luò)收音機(jī).zip》資料免費(fèi)下載
    發(fā)表于 11-22 10:38 ?3次下載
    帶有有線以太網(wǎng)連接的<b class='flag-5'>ESP32</b><b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>收音機(jī)</b>

    基于ESP32網(wǎng)絡(luò)電臺(tái)

    在對(duì) esp32 進(jìn)行了一些試驗(yàn)之后,我萌生了用它制作網(wǎng)絡(luò)收音機(jī)的想法?;ヂ?lián)網(wǎng)上已經(jīng)有一大堆這樣的例子,最后我想出了個(gè)例子的組合:Simple_e
    發(fā)表于 12-19 16:22 ?9次下載

    ESP32-S2 USB底板開源

    電子發(fā)燒友網(wǎng)站提供《ESP32-S2 USB底板開源.zip》資料免費(fèi)下載
    發(fā)表于 06-08 11:42 ?1次下載
    <b class='flag-5'>ESP32-S2</b> USB底板開源

    樂(lè)鑫ESP32-S2-MINI-1U參考設(shè)計(jì)

    樂(lè)鑫ESP32-S2-MINI-1U參考設(shè)計(jì)ESP32-S2是一款高度集成、高性價(jià)比、低功耗、主打安全的單核Wi-FiSoC,具備強(qiáng)大的功能和豐富的IO接口。
    發(fā)表于 10-19 16:13 ?3次下載