2021年11月8日月曜日

esp32② BlynkでLEDオンオフがespr2でもでけた、esp32-cam

---blynk by esp32---------------------

https://wak-tech.com/archives/1546 で遠隔Lチカでけた

https://github.com/blynkkk/blynk-library からライブラリを入手してインスト

あとは以下のとおり

#define BLYNK_PRINT Serial

#include <WiFi.h>

#include <WiFiClient.h>

#include <BlynkSimpleEsp32.h>

#define LED 32

//自分の環境に合わせて変更

char auth[] = " ";

char ssid[] = "";

char pass[] = "";

int LED_Flag = 0;

void setup()

{  //LED settings

  pinMode(LED,OUTPUT);

  digitalWrite(LED,HIGH);

  delay(200);

  digitalWrite(LED,LOW);

  Serial.begin(115200);

  Blynk.begin(auth, ssid, pass);

  Serial.println("connected");

}

void loop()

{

  Blynk.run();

}


BLYNK_WRITE(V0) 

{ // BLYNK_WRITEはlibrayにあるのであろう V0は32と紐付けられたのであろう

  LED_Flag = param.asInt();

  if(LED_Flag == 1){

    L_chika();   

  }

}


void L_chika(){

  Serial.println("LED ON");

  for(int i=0;i<5;i++){

      digitalWrite(LED,HIGH);

      delay(200); 

      digitalWrite(LED,LOW);

      delay(200);

  }

}


------------------------------------------- blynk by esp8266 -----------------------------

https://www.instructables.com/Blynk-With-ESP8266/ にしたがい

esp8266のライブラリを入手(blynkReleasse版)そのlibrariesのなかの

BlynkESP8266_libをarduinoのlibrarriesにコピー

上記のサイトにしたがいdev boardでesp8266_standaloneをえらぶ

でてきたコードを以下のように改変

https://wak-tech.com/archives/1546#i を参考にLEDを13とした


  1. /*************************************************************
  2.   Download latest Blynk library here:
  3.     https://github.com/blynkkk/blynk-library/releases/latest

  4.   Blynk is a platform with iOS and Android apps to control
  5.   Arduino, Raspberry Pi and the likes over the Internet.
  6.   You can easily build graphic interfaces for all your
  7.   projects by simply dragging and dropping widgets.

  8.     Downloads, docs, tutorials: http://www.blynk.cc
  9.     Sketch generator:           http://examples.blynk.cc
  10.     Blynk community:            http://community.blynk.cc
  11.     Follow us:                  http://www.fb.com/blynkapp
  12.                                 http://twitter.com/blynk_app

  13.   Blynk library is licensed under MIT license
  14.   This example code is in public domain.

  15.  *************************************************************
  16.   This example runs directly on ESP8266 chip.

  17.   Note: This requires ESP8266 support package:
  18.     https://github.com/esp8266/Arduino

  19.   Please be sure to select the right ESP8266 module
  20.   in the Tools -> Board menu!

  21.   Change WiFi ssid, pass, and Blynk auth token to run :)
  22.   Feel free to apply it to any other example. It's simple!
  23.  *************************************************************/

  24. /* Comment this out to disable prints and save space */
  25. #define BLYNK_PRINT Serial

  26. /* Fill-in your Template ID (only if using Blynk.Cloud) */
  27. //#define BLYNK_TEMPLATE_ID   "YourTemplateID"


  28. #include <ESP8266WiFi.h>
  29. #include <BlynkSimpleEsp8266.h>

  30. // You should get Auth Token in the Blynk App.
  31. // Go to the Project Settings (nut icon).
  32. char auth[] = "";
  33. // Your WiFi credentials.
  34. // Set password to "" for open networks.
  35. char ssid[] = "";
  36. char pass[] = "";
  37. #define LED 13
  38. int LED_Flag = 0;
  39. void setup()
  40. {
  41.   // Debug console
  42.   Serial.begin(9600);
  43.   pinMode(LED,OUTPUT);
  44.   digitalWrite(LED,HIGH);
  45.   delay(200);
  46.   digitalWrite(LED,LOW);
  47.   Blynk.begin(auth, ssid, pass);
  48.   Serial.println("connected");
  49. }

  50. void loop()
  51. {
  52.   Blynk.run();
  53. }
  54. BLYNK_WRITE(V0)
  55. {
  56.   LED_Flag = param.asInt();
  57.   if(LED_Flag == 1){
  58.     L_chika();   
  59.   }
  60. }

  61. void L_chika(){
  62.   Serial.println("LED ON");
  63.   for(int i=0;i<5;i++){
  64.       digitalWrite(LED,HIGH);
  65.       delay(200); 
  66.       digitalWrite(LED,LOW);
  67.       delay(200);
  68.   }
  69. }
  70. ーーーーーーーーーーーーーーーーーーーーーーーー
  71. https://note.com/fun2tommy/n/neafb2354dca3 をもとに接続

    ボードはesp32 wrover module,upload speed 921600,flash frequency 80mhz,

    flash mode QIO,partition scheme Huge App(3Mb no OTA/1Mb SPIFS),

    core debug level なし,シリアルポートdev/ttyUSB0にして

    sketch example::esp32 -> camera -> camerawebserverをえらび

    camera_model_wrover_kitをコメントアウトして

    camera_model_AI_THINKERをデコメントする

    コンパイル後は、ジャンパピンをはずし、リセットして

    シリアルモニタでIPを確認する IPをブラウザでみて画面のstart streamを押すと画面がでる


    #include "esp_camera.h"

    #include <WiFi.h>


    //

    // WARNING!!! PSRAM IC required for UXGA resolution and high JPEG quality

    //            Ensure ESP32 Wrover Module or other board with PSRAM is selected

    //            Partial images will be transmitted if image exceeds buffer size

    //


    // Select camera model

    //#define CAMERA_MODEL_WROVER_KIT // Has PSRAM

    //#define CAMERA_MODEL_ESP_EYE // Has PSRAM

    //#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM

    //#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM

    //#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM

    //#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM

    #define CAMERA_MODEL_AI_THINKER // Has PSRAM

    //#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM


    #include "camera_pins.h"


    const char* ssid = "184F32CF8BF3-2G";

    const char* password = "2215085363556";


    void startCameraServer();


    void setup() {

      Serial.begin(115200);

      Serial.setDebugOutput(true);

      Serial.println();


      camera_config_t config;

      config.ledc_channel = LEDC_CHANNEL_0;

      config.ledc_timer = LEDC_TIMER_0;

      config.pin_d0 = Y2_GPIO_NUM;

      config.pin_d1 = Y3_GPIO_NUM;

      config.pin_d2 = Y4_GPIO_NUM;

      config.pin_d3 = Y5_GPIO_NUM;

      config.pin_d4 = Y6_GPIO_NUM;

      config.pin_d5 = Y7_GPIO_NUM;

      config.pin_d6 = Y8_GPIO_NUM;

      config.pin_d7 = Y9_GPIO_NUM;

      config.pin_xclk = XCLK_GPIO_NUM;

      config.pin_pclk = PCLK_GPIO_NUM;

      config.pin_vsync = VSYNC_GPIO_NUM;

      config.pin_href = HREF_GPIO_NUM;

      config.pin_sscb_sda = SIOD_GPIO_NUM;

      config.pin_sscb_scl = SIOC_GPIO_NUM;

      config.pin_pwdn = PWDN_GPIO_NUM;

      config.pin_reset = RESET_GPIO_NUM;

      config.xclk_freq_hz = 20000000;

      config.pixel_format = PIXFORMAT_JPEG;

      

      // if PSRAM IC present, init with UXGA resolution and higher JPEG quality

      //                      for larger pre-allocated frame buffer.

      if(psramFound()){

        config.frame_size = FRAMESIZE_UXGA;

        config.jpeg_quality = 10;

        config.fb_count = 2;

      } else {

        config.frame_size = FRAMESIZE_SVGA;

        config.jpeg_quality = 12;

        config.fb_count = 1;

      }


    #if defined(CAMERA_MODEL_ESP_EYE)

      pinMode(13, INPUT_PULLUP);

      pinMode(14, INPUT_PULLUP);

    #endif


      // camera init

      esp_err_t err = esp_camera_init(&config);

      if (err != ESP_OK) {

        Serial.printf("Camera init failed with error 0x%x", err);

        return;

      }


      sensor_t * s = esp_camera_sensor_get();

      // initial sensors are flipped vertically and colors are a bit saturated

      if (s->id.PID == OV3660_PID) {

        s->set_vflip(s, 1); // flip it back

        s->set_brightness(s, 1); // up the brightness just a bit

        s->set_saturation(s, -2); // lower the saturation

      }

      // drop down frame size for higher initial frame rate

      s->set_framesize(s, FRAMESIZE_QVGA);


    #if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM)

      s->set_vflip(s, 1);

      s->set_hmirror(s, 1);

    #endif


      WiFi.begin(ssid, password);


      while (WiFi.status() != WL_CONNECTED) {

        delay(500);

        Serial.print(".");

      }

      Serial.println("");

      Serial.println("WiFi connected");


      startCameraServer();


      Serial.print("Camera Ready! Use 'http://");

      Serial.print(WiFi.localIP());

      Serial.println("' to connect");

    }


    void loop() {

      // put your main code here, to run repeatedly:

      delay(10000);

    }

0 件のコメント:

コメントを投稿