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

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

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

3天內不再提示

利用ESP-WROOM-02和天氣API制作發光的圣誕節雪人

劉超 ? 來源:jenny042 ? 作者:jenny042 ? 2023-02-24 09:51 ? 次閱讀

這篇文章來源于DevicePlus.com英語網站的翻譯稿。

許多應用都用過ESP-WROOM-02,并且通過Arduino程序利用了該開發板的wifi通信功能。今天,我們要實現一個更具創意性的項目,根據天氣API的天氣信息制作另一款炫麗的圣誕裝飾品。

今天的電子設計技巧

估計完成時間:90分鐘

所需部件

ESP-WROOM-02 開發板

面包板

LED – 綠色

電阻220Ω/180Ω/91Ω

高功率RGB LED

為了啟用ESP-WROOM-02開發板的Arduino程序無線通信功能,我想首先嘗試一個示例程序。選擇File → Sketch Example → ESP 8266 WiFi → WiFi Web Server。該示例程序負責處理與Arduino的Wifi通信。

poYBAGPzGGSAGSSnAAUCbAWNwmE057.jpg

圖1 加載程序示例

這個示例程序能讓ESP-WROOM-02成為服務器。程序啟動后,它會一直等待來自其他終端的請求,當收到帶有參數的請求后,程序就會處理該參數。在我們的例子中,我們將使用這個程序來點亮LED。

我想使用上次的電路進行測試。將示例程序中的引腳“2”更改為引腳“13”。

poYBAGPzDdWAIvY8AABFy4iURoU166.jpg

圖2 LED控制電路

/*
 * This sketch demonstrates how to set up a simple HTTP-like server.
 * The server will set a GPIO pin depending on the request
 * https://server_ip/gpio/0 will set the GPIO2 low,
 * https://server_ip/gpio/1 will set the GPIO2 high
 * server_ip is the IP address of the ESP8266 module, will be
 * printed to Serial when the module is connected.
 */
 
#include 
#include 
 
const char *ssid = "Provide SSID of wireless router here";
const char *password = "Provide the wireless router password here";
 
// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);
 
void setup() {
 Serial.begin(115200);
 delay(10);
 
 // prepare GPIO2
 pinMode(2, OUTPUT);
 digitalWrite(2, 0);
  
 // Connect to WiFi network
 Serial.println();
 Serial.println();
 Serial.print("Connecting to ");
 Serial.println(ssid);
  
 WiFi.begin(ssid, password);
  
 while (WiFi.status() != WL_CONNECTED) {
 delay(500);
 Serial.print(".");
 }
 Serial.println("");
 Serial.println("WiFi connected");
  
 // Start the server
 server.begin();
 Serial.println("Server started");
 
 // Print the IP address
 Serial.println(WiFi.localIP());
}
 
void loop() {
 // Check if a client has connected
 WiFiClient client = server.available();
 if (!client) {
 return;
 }
  
 // Wait until the client sends some data
 Serial.println("new client");
 while(!client.available()){
 delay(1);
 }
  
 // Read the first line of the request
 String req = client.readStringUntil('r');
 Serial.println(req);
 client.flush();
  
 // Match the request
 int val;
 if (req.indexOf("/gpio/0") != -1)
 val = 0;
 else if (req.indexOf("/gpio/1") != -1)
 val = 1;
 else {
 Serial.println("invalid request");
 client.stop();
 return;
 }
 
  
 // Set GPIO2 according to the request
 digitalWrite(2, val);
  
 client.flush();
 
 // Prepare the response
 String s = "HTTP/1.1 200 OKrnContent-Type: text/htmlrnrnrnrnGPIO is now ";
 s += (val)high":"low";
 s += "n";
 
 // Send the response to the client
 client.print(s);
 delay(1);
 Serial.println("Client disonnected");
 
 // The client will actually be disconnected
 // when the function returns and 'client' object is detroyed
}

啟動程序后,請嘗試連至路由器。如果已經連接,那么系統會在串行監視器上顯示IP地址等。所以,請嘗試從瀏覽器訪問該IP地址。連至/gpio/1時,LED亮起;連至/gpio/0時,LED熄滅。

poYBAGPzGGmAHhlnAADoWyilbhg370.jpg

圖3 Wifi訪問成功

pYYBAGPzGGuAZfm2AAB9V_urK_Q738.jpg

圖4 智能手機連接

通過程序控制伺服電機

接下來我們通過一個實際例子試著用Wifi控制伺服電機。伺服電機的控制基本上應與LED控制相同。我將在LED程序中添加一些修改,并通過從瀏覽器訪問時添加一些HTML。

#include 
#include 
 
const char *ssid = "Provide SSID of wireless router here";
const char *password = "Provide the wireless router password here";
 
Servo myservo;
WiFiServer server(80);
 
void setup() {
 Serial.begin(115200);
 delay(10);
  
 Serial.println();
 Serial.println();
 Serial.print("Connecting to ");
 Serial.println(ssid);
 
 WiFi.begin(ssid, password);
  
 while (WiFi.status() != WL_CONNECTED) {
 delay(1500);
 Serial.print(".");
 }
 Serial.println("");
 Serial.println("WiFi connected");
  
 server.begin();
 Serial.println("Server started");
 
 Serial.println(WiFi.localIP());
 
 myservo.attach(2);
}
 
void loop() {
 WiFiClient client = server.available();
 if (!client) {
 return;
 }
  
 Serial.println("new client");
 while(!client.available()){
 delay(1);
 }
  
 String req = client.readStringUntil('r');
 Serial.println(req);
 client.flush();
  
 // Match the request
 int val;
 if (req.indexOf("/gpio/0") != -1){ val = 0; }
 else if (req.indexOf("/gpio/30") != -1){ val = 30; }
 else if (req.indexOf("/gpio/60") != -1){ val = 60; }
 else if (req.indexOf("/gpio/90") != -1){ val = 90; }
 else if (req.indexOf("/gpio/120") != -1){ val = 120; }
 else if (req.indexOf("/gpio/150") != -1){ val = 150; }
 else {
 Serial.print("REQ:");
 Serial.println(req);
 Serial.println("invalid request");
 client.stop();
 return;
 }
 
 myservo.write(val);
  
 client.flush();
 
 String s = "HTTP/1.1 200 OKrnContent-Type: text/htmlrnrnrnrnGPIO is now ";
 s += (val)high":"low";
 s += "

"; s += "

0

n"; s += "

30

n"; s += "

60

n"; s += "

90

n"; s += "

120

n"; s += "

150

n"; s += "

n"; s += "n"; client.print(s); delay(1); Serial.println("Client disonnected"); }

在這個程序中,瀏覽器顯示的角度為0到150。當點擊每個數值時,伺服電機會移動到一個指定角度。

poYBAGPzGG2AITAkAAF_sxfLib4261.jpg

圖5 通過Wifi進行伺服電機控制

讓我們來制作我們的天氣預報雪人吧!

圣誕節即將到來,我決定做一個圣誕節裝飾品。大量的炫彩LED裝飾燈固然不錯,但是桌子上的可愛飾品則更具圣誕節韻味。所以,我用123d設計創建了一個雪人模型。這款工具可以在組合不同形狀的同時進行建模,所以即使是初學者也可以輕松創建3D模型。

雪人模型

pYYBAGPzGG6AbpeCAAF2pQYqz5I706.jpg

圖6 雪人建模

請根據個人喜好隨意更改雪人的形狀或大小。建模完成后,我試著用3D打印機輸出自己設計的雪人。不幸的是,手臂沒有打印出來。

pYYBAGPzGHCAfrN5AADwICHTKrg060.jpg

圖7 3D打印的雪人

現在我們需要一個全彩LED。讓我們將全彩LED和WiFi通信整合到一個桌面設備中,使得該設備能夠根據特定位置的天氣數據改變LED的顏色。

設備配置

像往常一樣

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • API
    API
    +關注

    關注

    2

    文章

    1487

    瀏覽量

    61827
  • 開發板
    +關注

    關注

    25

    文章

    4958

    瀏覽量

    97213
  • Arduino
    +關注

    關注

    187

    文章

    6464

    瀏覽量

    186675
收藏 人收藏

    評論

    相關推薦

    樂鑫原裝片式模組 ESP-WROOM-02

    樂鑫為客戶提供集成 ESP8266EX 的貼?片式模組 ESP-WROOM-02。該模組的射頻性能已調試到最佳狀態。建議?用戶在初期使?用 ESP8266EX 進?行行測試或?二次開發時,采購我司
    發表于 12-30 14:47

    ESP-WROOM-02未按預期響應AT命令的原因?

    我使用 ESP-WROOM-02esp8266 內核)作為 WIFI 模塊和 samd21g18 作為主處理單元。為了進行測試,我使用了 ESP-WROOM-02 開發板套件和一個 Arduino
    發表于 02-21 06:00

    ESP-WROOM-02和MCU之間不會通過UART進行任何數據交換的原因?

    誰能建議如何通過 UART 將 ESP-WROOM-02 模塊連接到 MCU,并通過相同的 UART 端口通過 Arduino IDE 對 ESP-WROOM-02 進行編程。https
    發表于 02-22 06:22

    如何在ESP-WROOM-02模組上使用MESH網絡?

    我已經開始使用基本的和 Wifi 相關的 AT 命令開發 ESP-WROOM-02 Wifi 模塊。我已將我的模塊配置為客戶端和服務器,工作正常,沒有任何問題。 現在,我想在同時工作于 STA
    發表于 04-28 08:24

    ESP8266 IDF AT Bin 是否兼容 ESP-WROOM-02

    我在更新 ESP-WROOM-02 上的固件時遇到了一些問題。 在我的芯片上,原始固件 => V1.6.2.0 我做了一個 OTA 固件更新,我得到了 => V1.7.4
    發表于 06-06 08:14

    ESP-WROOM-02技術規格書

    ESP-WROOM-02 貼?式模組的外觀尺?為 (18.00 ± 0.10) mm x (20.00 ± 0.10) mm x(2.80 ± 0.10) mm。?前該模組配置封裝為 SOP 8(150 mil)的 SPI Flash,使? 2 dBi 的PCB 板載天線。
    發表于 09-18 07:24

    使用串口升級ESP-WROOM-02固件時如何連線?

    使用串口升級ESP-WROOM-02 固件時該如何連線?
    發表于 11-06 06:25

    ESP-WROOM-02

    ESP-WROOM-02 原理圖,PCB 文件, BOM 清單,原理圖可用 Orcad16.6 打開, PCB 可用 Pads Layout9.5 打開。
    發表于 12-30 14:51 ?121次下載

    關于利用ESP-WROOM-02天氣API制作發光圣誕節雪人教程講解

    連接API的外部服務器程序用PHP創建。通過以下程序,我們可以利用國家、城市、appid-API密鑰作為參數來獲取天氣信息。我們在運行PHP的環境中安裝此程序并確認該操作。
    的頭像 發表于 08-22 15:23 ?5216次閱讀
    關于<b class='flag-5'>利用</b><b class='flag-5'>ESP-WROOM-02</b>和<b class='flag-5'>天氣</b><b class='flag-5'>API</b><b class='flag-5'>制作</b><b class='flag-5'>發光</b>的<b class='flag-5'>圣誕節</b><b class='flag-5'>雪人</b>教程講解

    PCB制作的玻璃球圣誕節

    電子發燒友網站提供《PCB制作的玻璃球圣誕節.zip》資料免費下載
    發表于 07-18 11:26 ?1次下載
    PCB<b class='flag-5'>制作</b>的玻璃球<b class='flag-5'>圣誕節</b>

    PCB制作圣誕節led燈樹

    電子發燒友網站提供《PCB制作圣誕節led燈樹.zip》資料免費下載
    發表于 08-03 09:47 ?0次下載
    PCB<b class='flag-5'>制作</b>的<b class='flag-5'>圣誕節</b>led燈樹

    PCB制作圣誕節2018

    電子發燒友網站提供《PCB制作圣誕節2018.zip》資料免費下載
    發表于 08-22 09:11 ?0次下載
    PCB<b class='flag-5'>制作</b>的<b class='flag-5'>圣誕節</b>2018

    ESP-WROOM-02 Wifi設置指南—AT指令

    ESP-WROOM-02 Wifi 設置指南—AT指令在上一篇文章中,我們介紹了 ESP-WROOM-02。今天,我們將進行下一步的工作,并測試其wifi功能。
    的頭像 發表于 02-28 16:14 ?2614次閱讀
    <b class='flag-5'>ESP-WROOM-02</b> Wifi設置指南—AT指令

    使用ESP-WROOM-02 Wifi模塊作為Arduino MCU

    使用 ESP-WROOM-02 Wifi 模塊作為 Arduino MCU,在本教程中,我們將在ESP-WROOM-02上寫入Arduino程序,這樣就可以使用wifi模塊作為Arduino MCU。
    的頭像 發表于 02-23 10:40 ?1870次閱讀
    使用<b class='flag-5'>ESP-WROOM-02</b> Wifi模塊作為Arduino MCU

    樂鑫ESP-WROOM-02 技術規格書

    電子發燒友網站提供《樂鑫ESP-WROOM-02 技術規格書.pdf》資料免費下載
    發表于 01-14 09:52 ?2次下載
    樂鑫<b class='flag-5'>ESP-WROOM-02</b> 技術規格書