查看: 5742|回复: 3

【麦步手表+FireBeetle Board-ESP32】控制LED灯

[复制链接]
  • TA的每日心情
    擦汗
    2019-2-26 12:00
  • 签到天数: 263 天

    [LV.8]以坛为家I

    发表于 2017-5-30 22:04 | 显示全部楼层 |阅读模式
    本帖最后由 沧海笑1122 于 2017-5-30 22:07 编辑

    【麦步手表+FireBeetle Board-ESP32】控制LED灯
    今天晚上发了一个分享帖:麦步手表+ESP8266玩小车控制
    关于本文的所有软硬件情况、玩具的原理请参见上帖。

    ESP32.jpg

    这不是一篇水帖,其实在此之前,我是先用esp32进行了测试,并且希望直接驱动小车,可惜在测试过程中,发生cpu崩溃。说明我对esp32的学习了解还不够。但是,同样的原理驱动led是没有问题的。所以这篇小文是一个桥梁,希望详细了解控制原理的玩家,请参考原贴。

    基本思路:在esp32上建立一个基于wifi的简单的http server,通过esp32(wifi)--路由器---手机---(BLE)---maibu手表,将手表按键的控制参数传至esp32,从而控制led灯。


    直接上代码吧:[kenrobot_code]/*
      WiFi Web Server LED Blink

    A simple web server that lets you blink an LED via the web.
    This sketch will print the IP address of your WiFi Shield (once connected)
    to the Serial monitor. From there, you can open that address in a web browser
    to turn on and off the LED on pin 5.

    If the IP address of your shield is yourAddress:
    http://yourAddress/H turns the LED on
    http://yourAddress/L turns it off

    This example is written for a network using WPA encryption. For
    WEP or WPA, change the Wifi.begin() call accordingly.

    Circuit:
    * WiFi shield attached
    * LED attached to pin 5

    created for arduino 25 Nov 2012
    by Tom Igoe

    ported for sparkfun esp32
    31.01.2017 by Jan Hendrik Berlin

    根据此示例改编了小车控制程序。
    date:2017-05-20http://192.168.0.144/F led--d2(gpio25)
    http://192.168.0.144/B led--d3(gpio26)
    http://192.168.0.144/S led--d4(gpio27)
    */

    #include <WiFi.h>

    const char* ssid     = "your ssid";
    const char* password = "your psw";


    WiFiServer server(80);

    void setup()
    {
        Serial.begin(115200);
        delay(10);
        // We start by connecting to a WiFi network

        Serial.println();
        Serial.println();
        Serial.print("Connecting to ");
        Serial.println(ssid);
        delay(10);
        WiFi.begin(ssid, password);

        while (WiFi.status() != WL_CONNECTED) {
            delay(500);
            Serial.print(".");
        }

        Serial.println("");
        Serial.println("WiFi connected");
        Serial.println("IP address: ");
        Serial.println(WiFi.localIP());
       
        server.begin();

        pinMode(D2, OUTPUT);      // led红,
        pinMode(D3, OUTPUT);      // led绿,
        pinMode(D4, OUTPUT);      // led蓝,
      
       
    }

    //int value = 0;

    void loop(){
      int carzt=0;
    WiFiClient client = server.available();   // listen for incoming clients

      if (client) {                             // if you get a client,
        Serial.println("new client");           // print a message out the serial port
        String currentLine = "";                // make a String to hold incoming data from the client
        while (client.connected()) {            // loop while the client's connected
          if (client.available()) {             // if there's bytes to read from the client,
            char c = client.read();             // read a byte, then
            Serial.write(c);                    // print it out the serial monitor
            if (c == '\n') {                    // if the byte is a newline character

              // if the current line is blank, you got two newline characters in a row.
              // that's the end of the client HTTP request, so send a response:
              if (currentLine.length() == 0) {
                // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
                // and a content-type so the client knows what's coming, then a blank line:
               client.println("HTTP/1.1 200 OK");
               client.println("Content-Type: application/json");
               client.println();
               client.println("{");
               client.print("\"car");
               client.print("\": ");
               client.print(carzt);
               client.println("\n}");
              break;
              } else {    // if you got a newline, then clear currentLine:
                currentLine = "";
              }
            } else if (c != '\r') {  // if you got anything else but a carriage return character,
              currentLine += c;      // add it to the end of the currentLine
            }

            // Check to see if the client request was "GET /F" 、 "GET /B"or"GET /S"
            if (currentLine.endsWith("GET /F")) {
             
              digitalWrite(25, HIGH);               // 点亮
              delay(1000);
              digitalWrite(25, LOW);               // 熄灭
             
          
              carzt=1;
            }
            if (currentLine.endsWith("GET /B")) {
             
              digitalWrite(26, HIGH);               // 点亮
              delay(1000);
              digitalWrite(26, LOW);               // 熄灭
             
            
              carzt=2;
            }
            if (currentLine.endsWith("GET /S")) {
             
              digitalWrite(27, HIGH);               // 点亮
              delay(1000);
              digitalWrite(27, LOW);               // 熄灭
             
            
              carzt=0;
            }
          }
        }
        // close the connection:
        client.stop();
        Serial.println("client disonnected");
      }
    }

    [/kenrobot_code]

    【感谢】
    感谢dfrobot,感谢arduino.cn。这段时间沧海在社区参与了多个产品的评测,结识了很多优秀的玩家,感谢大家对我的支持和关注。我也向社区、向大家学习了很多东西。
    祝社区越办越好,祝dfrobot事业蒸蒸日上。
    沧海抱拳!端午安康。。

    ESP32_1.PNG
    打赏作者鼓励一下!
  • TA的每日心情
    开心
    2018-6-16 16:25
  • 签到天数: 777 天

    [LV.10]以坛为家III

    发表于 2017-6-1 07:17 | 显示全部楼层
    驱动小车确实有点小马拉大车的感觉。希望后续有关麦步手表经蓝牙传输图片到单片机SD卡或者返向过程,最近在研究蓝牙图片传输到手机,如果传到麦步手表就更好了
  • TA的每日心情
    开心
    2018-1-15 23:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2018-1-15 23:44 | 显示全部楼层

    感谢您的分享!
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    有没人做过把arduino跟生物结合起来做课题的
    有没人做过把arduino跟生
    我想做一些这方面的有没有人做过可以稍微指点一下
    跪求,nano读两个软串口传感器,写入sd卡,一个读不到数
    跪求,nano读两个软串口传
    dfrobot的nano板,两个软串口连接攀藤pm2.5传感器和GPS ublox m8n,SPI连sd卡模块。
    Arduino2560/MegaPi与ROS机器人操作系统的连接
    Arduino2560/MegaPi与ROS
    大家好,我因为需要更多时间维系琐碎平凡的工作和生活,一段时间没有上Arduino论坛。
    atmegu328p开发板怎么做流水灯啊
    atmegu328p开发板怎么做流
    我是白小 求指点
    BuddyBlock 1.0.0 测试版发布,一款面向Arduino的图形化开发工...
    BuddyBlock 1.0.0 测试版
    BuddyBlock是一款面向Arduino图形化编程开发的集成开发工具,开发者可以通过积木模块
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表