meiyao 发表于 2024-4-6 22:01

【安信可BW16-Kit】+ remote_control

<p>安信可BW16-Kit是一款针对BW16模组设计的核心开发板,开发板提供了全面的I/O接口,并板载RGB七彩灯,开发者可以根据自己的需求连接外设。BW16模组是基于RTL8720DN开发的双频Wi-Fi(2.4GHz或5GHz)和蓝牙SoC模组,集成了ARM V8(兼容Cortex-M4F)高性能MCU和ARM V8M(兼容Cortex-M0)低功耗MCU,同时还提供了丰富的外围接口,支持SSID混频路由配网,能够简化配网流程并提升配网成功率。</p>

<p>通过串口生成的IP,就可以有打开开关界面。</p>

<p>用于Arduino平台(具体来说是ESP8266或ESP32等Wi-Fi模块)的一个示例,它创建了一个简单的Web服务器,通过该服务器可以控制一个LED灯的开关。</p>

<p> &nbsp;</p>

<p>代码:</p>

<p> &nbsp;</p>

<p>代码注释:</p>

<pre>
<code>// 引入WiFi库,用于管理Wi-Fi连接
#include &lt;WiFi.h&gt;
// 引入WiFiServer库,用于创建Wi-Fi服务器
#include &lt;WiFiServer.h&gt;
// 引入WiFiClient库,用于处理来自客户端的连接
#include &lt;WiFiClient.h&gt;

// 定义Wi-Fi网络的SSID(名称)
char* ssid = "CMCC-c6tG";   
// 定义Wi-Fi网络的密码
const char* password = "mei13728232960";   

// 创建一个WiFiServer对象,监听80端口(HTTP默认端口)
WiFiServer server(80);
// 定义一个字符串对象,用于存储HTTP请求头
String header;

void setup() {
// 设置PA13引脚为输出模式,用于控制LED灯
pinMode(PA13, OUTPUT);
   
// 开始串行通信,波特率为115200
Serial.begin(115200);
   
// 打印空行和连接Wi-Fi的消息
Serial.println();
Serial.println("Connecting to WiFi");
   
// 尝试连接到指定的Wi-Fi网络
WiFi.begin(ssid, password);
   
// 循环等待直到连接到Wi-Fi网络
while (WiFi.status() != WL_CONNECTED) {
    delay(500); // 等待500毫秒
    Serial.print("."); // 打印一个点作为进度指示
}
   
// 当连接到Wi-Fi网络后,打印确认消息
Serial.println("");
Serial.println("WiFi connected");
   
// 开始WiFiServer的监听
server.begin();
// 打印服务器启动的消息
Serial.println("Server started");
}

void loop() {
// 检查是否有客户端连接到服务器
WiFiClient client = server.available();
   
// 如果有客户端连接
if (client) {
    // 循环检查客户端是否仍然连接
    while (client.connected()) {
      // 检查客户端是否有数据发送
      if (client.available()) {
      // 读取客户端发送的一个字符
      char c = client.read();
      // 将字符添加到header字符串中
      header += c;
         
      // 检查是否读取到了换行符(HTTP请求头结束)
      if (c == '\n') {
          // 检查header中是否包含"ON"
          if (header.indexOf("ON") &gt; 0) {
            // 如果包含"ON",则点亮LED灯
            digitalWrite(PA13, HIGH);
          }   
          // 检查header中是否包含"OFF"
          else if (header.indexOf("OFF") &gt; 0) {
            // 如果包含"OFF",则熄灭LED灯
            digitalWrite(PA13, LOW);
          }
            
          // 向客户端发送HTTP响应头
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          // 向客户端发送HTML响应体
          client.println("&lt;!DOCTYPE HTML&gt;");
          client.println("&lt;html&gt;");
          client.println("&lt;head&gt;&lt;/head&gt;");
          client.println("&lt;body&gt;");
          // client.println("LED is now " + (digitalRead(PA13) ? "ON" : "OFF")); // 这行代码已被注释掉
          client.println("&lt;/body&gt;");
          client.println("&lt;/html&gt;");
            
          // 清空header字符串
          header = "";
          // 断开与客户端的连接
          client.stop();
      }
      }
    }
}
}</code></pre>

<p>代码段创建了一个简单的HTTP服务器,它监听80端口。当客户端(比如一个网页浏览器)发送HTTP请求到服务器时,服务器会检查请求中是否包含&quot;ON&quot;或&quot;OFF&quot;来控制LED灯的开关。如果请求中包含&quot;ON&quot;,LED灯会亮起;如果包含&quot;OFF&quot;,LED灯会熄灭。然后,服务器会向客户端发送一个简单的HTML响应,告诉客户端请求已被处理。</p>

<p>&nbsp;</p>

<p>Wi-Fi 控制器 &nbsp;<br />
│ &nbsp;<br />
├── Wi-Fi 设置 &nbsp;<br />
│ &nbsp; ├── SSID &nbsp;<br />
│ &nbsp; │ &nbsp; └── &quot;CMCC-c6tG&quot; &nbsp;<br />
│ &nbsp; └── 密码 &nbsp;<br />
│ &nbsp; &nbsp; &nbsp; &nbsp;└── &quot;mei13728232960&quot; &nbsp;<br />
│ &nbsp;<br />
├── Web 服务器 &nbsp;<br />
│ &nbsp; └── 监听端口 &nbsp;<br />
│ &nbsp; &nbsp; &nbsp; &nbsp;└── 80 &nbsp;<br />
│ &nbsp;<br />
└── LED 控制 &nbsp;<br />
&nbsp; &nbsp; &nbsp;├── ON &nbsp;<br />
&nbsp; &nbsp; &nbsp;│ &nbsp; └── 点亮 LED (PA13 设置为 HIGH) &nbsp;<br />
&nbsp; &nbsp; &nbsp;└── OFF &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; └── 熄灭 LED (PA13 设置为 LOW)</p>

<p>在TreeMind中创建这个树图的步骤大致如下:</p>

<ol>
        <li>打开TreeMind软件。</li>
        <li>创建一个新的思维导图。</li>
        <li>添加一个名为&ldquo;Wi-Fi 控制器&rdquo;的中心节点。</li>
        <li>添加&ldquo;Wi-Fi 设置&rdquo;作为&ldquo;Wi-Fi 控制器&rdquo;的子节点。</li>
        <li>在&ldquo;Wi-Fi 设置&rdquo;下添加&ldquo;SSID&rdquo;和&ldquo;密码&rdquo;作为子节点,并填写相应的值。</li>
        <li>添加&ldquo;Web 服务器&rdquo;作为&ldquo;Wi-Fi 控制器&rdquo;的另一个子节点。</li>
        <li>在&ldquo;Web 服务器&rdquo;下添加&ldquo;监听端口&rdquo;作为子节点,并填写端口号80。</li>
        <li>添加&ldquo;LED 控制&rdquo;作为&ldquo;Wi-Fi 控制器&rdquo;的最后一个子节点。</li>
        <li>在&ldquo;LED 控制&rdquo;下添加&ldquo;ON&rdquo;和&ldquo;OFF&rdquo;作为子节点。</li>
        <li>为&ldquo;ON&rdquo;和&ldquo;OFF&rdquo;分别添加描述其功能的子节点。</li>
</ol>

<p>视频:</p>

<p>456d7d8084eba1ccebdcc56bda637755<br />
&nbsp;</p>

damiaa 发表于 2024-4-7 09:23

<p>感谢分享!</p>

meiyao 发表于 2024-4-7 23:09

damiaa 发表于 2024-4-7 09:23
感谢分享!

<p><img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/handshake.gif" width="48" /></p>
页: [1]
查看完整版本: 【安信可BW16-Kit】+ remote_control