Skocz do zawartości

Kuba_k

Użytkownicy
  • Zawartość

    24
  • Rejestracja

  • Ostatnio

Reputacja

28 Bardzo dobra

1 obserwujący

O Kuba_k

  • Ranga
    2/10

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. U mnie na 3 egzemplarzach pomimo poprawnego połączenia i tak nie działało. Z tego co doczytałem na forach, ten typ tak ma i czasem jest ok, czasem nie
  2. Jak wgrasz sobie biblioreteki esp8266 pod IDE lub VSCode to działasz jak z normalnym arduino. Do czujnikow temp polecam wgranie ESPeasy (latwiej sie juz nie da). Niestety esp-01 nie jest najlepsza wersja, bo bardzo duzy problem jest z deep sleep.
  3. Od tygodnia próbuję przerobić projekt DIY sieci z kamerą ESP-32 i PIR-em, niestety całkowicie utknąłem. Chciałbym aby zdjęcie z tej kamery nie było zapisywane na karcie SD, tylko na moim serwerze ftp wewnątrz sieci domowej. Cel jest oczywisty, kamera będzie wisiała na korytarzu, więc jeśli ktoś będzie chciał się nią zaopiekować to lepiej żebym wiedział kim on był. Czy możecie mi pomoc? Jak nawet nie napisać co tam trzeba zmienić to chociaż nakierować. Znalazłem gotowe biblioteki do przesłania na ftp, natomiast nie wiem jak zrobić żeby każdy plik miał unikalną nazwę (wiem, że to podstawy ale nie udało mi się znaleźć odpowiedzi). Będę bardzo wdzięczny za pomoc ponieważ projekt robię z konieczności, a nie dla zabawy. Wynajem mieszkań sprowadza różnych ludzi, a moi obecni sąsiedzi zaczęli właśnie demolować klatkę. Obawiam się, że moje drzwi też nie umkną ich uwadze. Projekt: https://randomnerdtutorials.com/esp32-cam-pir-motion-detector-photo-capture/ Kod: /********* Rui Santos Complete project details at https://RandomNerdTutorials.com/esp32-cam-pir-motion-detector-photo-capture/ IMPORTANT!!! - Select Board "AI Thinker ESP32-CAM" - GPIO 0 must be connected to GND to upload a sketch - After connecting GPIO 0 to GND, press the ESP32-CAM on-board RESET button to put your board in flashing mode Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. *********/ #include "esp_camera.h" #include "Arduino.h" #include "FS.h" // SD Card ESP32 #include "SD_MMC.h" // SD Card ESP32 #include "soc/soc.h" // Disable brownour problems #include "soc/rtc_cntl_reg.h" // Disable brownour problems #include "driver/rtc_io.h" #include <EEPROM.h> // read and write from flash memory // define the number of bytes you want to access #define EEPROM_SIZE 1 RTC_DATA_ATTR int bootCount = 0; // 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 int pictureNumber = 0; #define uS_TO_S_FACTOR 1000000 void setup() { WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector Serial.begin(115200); Serial.setDebugOutput(true); 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; pinMode(4, INPUT); digitalWrite(4, LOW); rtc_gpio_hold_dis(GPIO_NUM_4); if(psramFound()){ config.frame_size = FRAMESIZE_UXGA; // FRAMESIZE_ + QVGA|CIF|VGA|SVGA|XGA|SXGA|UXGA config.jpeg_quality = 10; config.fb_count = 2; } else { config.frame_size = FRAMESIZE_SVGA; 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; } Serial.println("Starting SD Card"); delay(500); if(!SD_MMC.begin()){ Serial.println("SD Card Mount Failed"); //return; } uint8_t cardType = SD_MMC.cardType(); if(cardType == CARD_NONE){ Serial.println("No SD Card attached"); return; } camera_fb_t * fb = NULL; // Take Picture with Camera fb = esp_camera_fb_get(); if(!fb) { Serial.println("Camera capture failed"); return; } // initialize EEPROM with predefined size EEPROM.begin(EEPROM_SIZE); pictureNumber = EEPROM.read(0) + 1; // Path where new picture will be saved in SD Card String path = "/picture" + String(pictureNumber) +".jpg"; fs::FS &fs = SD_MMC; Serial.printf("Picture file name: %s\n", path.c_str()); File file = fs.open(path.c_str(), FILE_WRITE); if(!file){ Serial.println("Failed to open file in writing mode"); } else { file.write(fb->buf, fb->len); // payload (image), payload length Serial.printf("Saved file to path: %s\n", path.c_str()); EEPROM.write(0, pictureNumber); EEPROM.commit(); } file.close(); esp_camera_fb_return(fb); delay(1000); // Turns off the ESP32-CAM white on-board LED (flash) connected to GPIO 4 pinMode(4, OUTPUT); digitalWrite(4, LOW); rtc_gpio_hold_en(GPIO_NUM_4); esp_sleep_enable_ext0_wakeup(GPIO_NUM_13, 0); Serial.println("Going to sleep now"); delay(1000); esp_deep_sleep_start(); Serial.println("This will never be printed"); } void loop() { }
  4. Thingspeak w wersji darmowej ma ograniczenie odbierania danych na 15000 ms, dlatego masz masz takie opóźnienia. Zauważyłem, że dają też chwilowego bana jeśli puścisz za często pakiety danych.
  5. Jednak napisanie prośby o pomoc zawsze pomaga Temat do usunięcia, jednak te błędy nie mają żadnego wpływu na pracę skrytpu, problemem był zły adres I2C. Oświeciło mnie dopiero po tym jak napisałem tę prośbę.
  6. Cześć, Mam spory problem z gotowym projektem, który chciałem odtworzyć. Dokładnie jest to urządzenie do malowania światłem LED Light painter. Projekt opiera się na rozwiązaniu Adafruit z Neopixel-ami, natomiast ma dodatkowo wyświetlacz lcd i guziki do sterowania plikami. No i tutaj zaczyna się komplikacja dla mnie. Jeśli chodzi o połączenia to wszystko zrobiłem dobrze, przetestowałem na innych prostych programach i teoretycznie powinno wszystko działać (led podpięty i działa, wyświetlacz lcd też, karta sd nie bo nawet nie wiem jak to przetestować). Zaznaczam, że jestem straszną pierdołą w tych sprawach, a projekt jest bardziej fotograficzny niż elektroniczny dlatego nieoceniona będzie Wasza pomoc. Po wgraniu szkicu z Arduino IDE nie dzieje się nic, zapala się tylko podświetlenie w lcd i to wszystko. Natomiast podczas kompilacji wyświetlają mi się błędy: C:\Users\ThinkPad\Desktop\student\led\ArduinoUNO\Light-painter-master\Light-painter-master\Light_painter\Light_painter.ino:510:7: warning: extra tokens at end of #else directive #else if CONSISTENT ^ C:\Users\ThinkPad\Desktop\student\led\ArduinoUNO\Light-painter-master\Light-painter-master\Light_painter\Light_painter.ino: In function 'void getFileName(char*, uint8_t, uint8_t)': C:\Users\ThinkPad\Desktop\student\led\ArduinoUNO\Light-painter-master\Light-painter-master\Light_painter\Light_painter.ino:610:64: warning: default argument given for parameter 3 of 'void getFileName(char*, uint8_t, uint8_t)' [-fpermissive] void getFileName(char* fileName, uint8_t index, uint8_t ext = 0) { ^ C:\Users\ThinkPad\Desktop\student\led\ArduinoUNO\Light-painter-master\Light-painter-master\Light_painter\Light_painter.ino:110:6: note: previous specification in 'void getFileName(char*, uint8_t, uint8_t)' here void getFileName(char* fileName, uint8_t index, uint8_t ext = 0); ^ Szkic używa 22240 bajtów (68%) pamięci programu. Maksimum to 32256 bajtów. Zmienne globalne używają 1420 bajtów (69%) pamięci dynamicznej, pozostawiając 628 bajtów dla zmiennych lokalnych. Maksimum to 2048 bajtów. Ja tego niestety nie rozumiem i nie mam czasu zrozumieć, gdyż deadline mnie goni bardzo. Zadałem już pytanie do autora na githubie ale mam nadzieję, że ktoś z Was może wiedzieć o co chodzi. Będę bardzo wdzięczny.
  7. PMSx003 - dostępne dwa modele z 5 i 7ką zamiast x. Imo to nie ta sama klasa sprzętu, dlatego też cena wyższa. Jednakże jeśli chce się otrzymywać miarodajne wyniki, trzeba wydać trochę więcej.
  8. Nie. Po pierwsze dokładność wynosząca 5 µg/m3 to około 10% naszej normy, czyli dosyć sporo. Oczywiście wykorzystując przetwornik 16 bitowy czułość by wzrosła ale równie dobrze można wtedy kupić droższy czujnik cyfrowy. Dodatkowo czytałem, że jest problem z powtarzalnością wyników i każdy z tych czujników podaje inne wyniki. Akurat temu się nie dziwię biorąc pod uwagę jego konstrukcję. Niestety w takim przypadku musisz dokonać kalibracji z miarodajnym źródłem, a to nie jest jest już takie proste.
  9. Wszystko można, tylko po co. Nie wiem tylko jak skalibrujesz go żeby dawał rzeczywiste wyniki przy tym małym nakładzie.
  10. @crbjsfso mam już zrobiony na bazie PMS5003, imo trochę dokładniejszy Edit/ przeczytałem dokumentacje. Ten sharp też działa na analogu więc rzeczywiście jako detektor dymu niż jakieś dokładniejsze pomiary.
  11. Z ciekawości sprawdziłem cenę tego GP2Y1010AU0F. Mogłem od razu go brać. Dzięki za pomysł
  12. Czujniki MQ to tak z mojego doświadczenia bardziej nadają się jako sygnalizatory występowania gazu (lub gazów bo niektóre reagują na kilka) niż jako mierniki stężenia. Tym bardziej MQ135 jest bardzo zawodny w przypadku określania jakości powietrza, gdyż jego odczyty są bardzo zależne od temperatury, wilgotności i zapylenia, co nie do końca przenosi się to na sama jakość powietrza. Próbowałem na tym zrobić sobie automatyczny sygnalizator tego czy sąsiedzi z dołu palą papierosy (niestety cały dym zaciąga do mojego mieszkania) i nie dało się tego odpowiednio skalibrować. Znalazłem gdzieś w necie pracę naukową gdzie napisali równanie kalibrujące wskazania w zależności od warunków atmosferycznych ale zawierał się chyba w 3 liniach na kartce A4
  13. Tak. Tylko oczopląsu bym dostał jakby coś takiego stało mi na szafce
  14. Masz może pomysł na wyświetlanie na tym zegarze oprócz godziny, temperatury i wilgotności w pokoju? Myślałem żeby zrobić coś identycznego i nie miałem pojęcia od której strony się do tego zabrać.
  15. telegraf > influxdb (gui chronograf) > grafana Korzystam do ściagania danych ze stacji pomiarowych gioś i wyświetlania u siebie na magicznym lustrze. Nie wiem czy czyta z csv ale pewnie tak.
×
×
  • Utwórz nowe...