DIY esp32 camera Snapshot to line Snapshot รายงานผ่านไลน์

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ก.ย. 2024
  • มีข้อสงสัยตรงไหนสามารถทักมาพูดคุยกันได้เสมอครับ ยินดีให้คำปรึกษาเรื่องโปรเจคต่างๆ(ไม่มีค่าใช้จ่ายใดๆ) อยากให้ทำคลิปเกี่ยวกับอะไร เเสดงความคิดเห็นได้เลยนะครับ
    #สงสัยเรื่องโปรเเกรมทักมาคุยกันได้เสมอครับ​
    #เพจ_ / projects.creative
    / wasan.show

ความคิดเห็น • 6

  • @202-1กรรณิกาศรีบุรินทร์
    @202-1กรรณิกาศรีบุรินทร์ 11 หลายเดือนก่อน

    มีคลิปสอนทำไหมคะ

  • @echoch2688
    @echoch2688 ปีที่แล้ว

    มี code ไหมครับ

    • @Miyamura98
      @Miyamura98 ปีที่แล้ว

      +1

    • @WasanDIY
      @WasanDIY  ปีที่แล้ว +2

      #include
      #include "esp_camera.h"
      #include "esp_system.h"
      hw_timer_t *timer = NULL;
      void IRAM_ATTR resetModule(){
      ets_printf("reboot
      ");
      esp_restart();
      }
      #include
      #define SSID "KUNG" //WiFi name
      #define PASSWORD "25102539" //PASSWORD
      #define LINE_TOKEN "JcV8i4hYv3h4SwOZYnQTanV55KqMsGxXP7la6AwXYPY"
      // Pin definition for CAMERA_MODEL_AI_THINKER
      #define PWDN_GPIO_NUM 32
      #define RESET_GPIO_NUM -1
      #define XCLK_GPIO_NUM 0
      #define SIOD_GPIO_NUM 26
      #define SIOC_GPIO_NUM 27
      #define Y9_GPIO_NUM 35
      #define Y8_GPIO_NUM 34
      #define Y7_GPIO_NUM 39
      #define Y6_GPIO_NUM 36
      #define Y5_GPIO_NUM 21
      #define Y4_GPIO_NUM 19
      #define Y3_GPIO_NUM 18
      #define Y2_GPIO_NUM 5
      #define VSYNC_GPIO_NUM 25
      #define HREF_GPIO_NUM 23
      #define PCLK_GPIO_NUM 22
      const int Led_Flash = 4;
      const int trigPin = 12;
      const int echoPin = 13;
      boolean startTimer = false;
      unsigned long time_now=0;
      int time_capture=0;
      long duration;
      int distance;
      void setup() {
      Serial.begin(115200);
      while (!Serial) { ; }
      pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
      pinMode(echoPin, INPUT);
      pinMode(Led_Flash, OUTPUT);
      WiFi.begin(SSID, PASSWORD);
      Serial.printf("WiFi connecting to %s
      ", SSID);
      while(WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(400); }
      Serial.printf("
      WiFi connected
      IP : ");
      Serial.println(WiFi.localIP());
      LINE.setToken(LINE_TOKEN);
      timer = timerBegin(0, 80, true); //timer 0, div 80Mhz
      timerAttachInterrupt(timer, &resetModule, true);
      timerAlarmWrite(timer, 20000000, false); //set time in us 15s
      timerAlarmEnable(timer); //enable interrupt
      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(psramFound()){
      // FRAMESIZE_ +
      //QQVGA/160x120//QQVGA2/128x160//QCIF/176x144//HQVGA/240x176
      //QVGA/320x240//CIF/400x296//VGA/640x480//SVGA/800x600//XGA/1024x768
      //SXGA/1280x1024//UXGA/1600x1200//QXGA/2048*1536
      config.frame_size = FRAMESIZE_SXGA;
      config.jpeg_quality = 10;
      config.fb_count = 2;
      } else {
      config.frame_size = FRAMESIZE_QQVGA;
      config.jpeg_quality = 12;
      config.fb_count = 1;
      }
      // Init Camera
      esp_err_t err = esp_camera_init(&config);
      if (err != ESP_OK) {
      Serial.printf("Camera init failed with error 0x%x", err);
      return;
      }
      }
      void loop() {
      timerWrite(timer, 0); //reset timer (feed watchdog)
      long tme = millis();
      digitalWrite(trigPin, LOW);
      delayMicroseconds(2);
      // Sets the trigPin on HIGH state for 10 micro seconds
      digitalWrite(trigPin, HIGH);
      delayMicroseconds(10);
      digitalWrite(trigPin, LOW);
      // Reads the echoPin, returns the sound wave travel time in microseconds
      duration = pulseIn(echoPin, HIGH);
      // Calculating the distance
      distance= duration*0.034/2;
      // Prints the distance on the Serial Monitor
      Serial.print("Distance: ");
      Serial.println(distance);
      if( distance time_now + 1000) {
      time_now = millis();
      }
      tme = millis() - tme;
      delay(200);
      }
      void Camera_capture() {
      digitalWrite(Led_Flash, HIGH);
      delay(100);
      digitalWrite(Led_Flash, LOW);
      delay(100);
      digitalWrite(Led_Flash, HIGH);
      camera_fb_t * fb = NULL;
      delay(200);
      // Take Picture with Camera
      fb = esp_camera_fb_get();
      if(!fb) {
      Serial.println("Camera capture failed");
      return;
      }
      digitalWrite(Led_Flash, LOW);
      Send_line(fb->buf,fb->len);
      esp_camera_fb_return(fb);
      // Serial.println("Going to sleep now");
      // esp_deep_sleep_start();
      // Serial.println("This will never be printed");
      }
      void Send_line(uint8_t *image_data,size_t image_size){
      LINE.notifyPicture("DETECT!!",image_data, image_size);
      }

    • @WasanDIY
      @WasanDIY  ปีที่แล้ว +1

      #include
      #include "esp_camera.h"
      #include "esp_system.h"
      hw_timer_t *timer = NULL;
      void IRAM_ATTR resetModule(){
      ets_printf("reboot
      ");
      esp_restart();
      }
      #include
      #define SSID "KUNG" //WiFi name
      #define PASSWORD "25102539" //PASSWORD
      #define LINE_TOKEN "JcV8i4hYv3h4SwOZYnQTanV55KqMsGxXP7la6AwXYPY"
      // Pin definition for CAMERA_MODEL_AI_THINKER
      #define PWDN_GPIO_NUM 32
      #define RESET_GPIO_NUM -1
      #define XCLK_GPIO_NUM 0
      #define SIOD_GPIO_NUM 26
      #define SIOC_GPIO_NUM 27
      #define Y9_GPIO_NUM 35
      #define Y8_GPIO_NUM 34
      #define Y7_GPIO_NUM 39
      #define Y6_GPIO_NUM 36
      #define Y5_GPIO_NUM 21
      #define Y4_GPIO_NUM 19
      #define Y3_GPIO_NUM 18
      #define Y2_GPIO_NUM 5
      #define VSYNC_GPIO_NUM 25
      #define HREF_GPIO_NUM 23
      #define PCLK_GPIO_NUM 22
      const int Led_Flash = 4;
      const int trigPin = 12;
      const int echoPin = 13;
      boolean startTimer = false;
      unsigned long time_now=0;
      int time_capture=0;
      long duration;
      int distance;
      void setup() {
      Serial.begin(115200);
      while (!Serial) { ; }
      pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
      pinMode(echoPin, INPUT);
      pinMode(Led_Flash, OUTPUT);
      WiFi.begin(SSID, PASSWORD);
      Serial.printf("WiFi connecting to %s
      ", SSID);
      while(WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(400); }
      Serial.printf("
      WiFi connected
      IP : ");
      Serial.println(WiFi.localIP());
      LINE.setToken(LINE_TOKEN);
      timer = timerBegin(0, 80, true); //timer 0, div 80Mhz
      timerAttachInterrupt(timer, &resetModule, true);
      timerAlarmWrite(timer, 20000000, false); //set time in us 15s
      timerAlarmEnable(timer); //enable interrupt
      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(psramFound()){
      // FRAMESIZE_ +
      //QQVGA/160x120//QQVGA2/128x160//QCIF/176x144//HQVGA/240x176
      //QVGA/320x240//CIF/400x296//VGA/640x480//SVGA/800x600//XGA/1024x768
      //SXGA/1280x1024//UXGA/1600x1200//QXGA/2048*1536
      config.frame_size = FRAMESIZE_SXGA;
      config.jpeg_quality = 10;
      config.fb_count = 2;
      } else {
      config.frame_size = FRAMESIZE_QQVGA;
      config.jpeg_quality = 12;
      config.fb_count = 1;
      }
      // Init Camera
      esp_err_t err = esp_camera_init(&config);
      if (err != ESP_OK) {
      Serial.printf("Camera init failed with error 0x%x", err);
      return;
      }
      }
      void loop() {
      timerWrite(timer, 0); //reset timer (feed watchdog)
      long tme = millis();
      digitalWrite(trigPin, LOW);
      delayMicroseconds(2);
      // Sets the trigPin on HIGH state for 10 micro seconds
      digitalWrite(trigPin, HIGH);
      delayMicroseconds(10);
      digitalWrite(trigPin, LOW);
      // Reads the echoPin, returns the sound wave travel time in microseconds
      duration = pulseIn(echoPin, HIGH);
      // Calculating the distance
      distance= duration*0.034/2;
      // Prints the distance on the Serial Monitor
      Serial.print("Distance: ");
      Serial.println(distance);
      if( distance time_now + 1000) {
      time_now = millis();
      }
      tme = millis() - tme;
      delay(200);
      }
      void Camera_capture() {
      digitalWrite(Led_Flash, HIGH);
      delay(100);
      digitalWrite(Led_Flash, LOW);
      delay(100);
      digitalWrite(Led_Flash, HIGH);
      camera_fb_t * fb = NULL;
      delay(200);
      // Take Picture with Camera
      fb = esp_camera_fb_get();
      if(!fb) {
      Serial.println("Camera capture failed");
      return;
      }
      digitalWrite(Led_Flash, LOW);
      Send_line(fb->buf,fb->len);
      esp_camera_fb_return(fb);
      // Serial.println("Going to sleep now");
      // esp_deep_sleep_start();
      // Serial.println("This will never be printed");
      }
      void Send_line(uint8_t *image_data,size_t image_size){
      LINE.notifyPicture("DETECT!!",image_data, image_size);
      }

  • @8ighteen247
    @8ighteen247 2 ปีที่แล้ว

    อยากได้โค้ดครับ