jakub51996 Napisano Grudzień 6, 2019 Udostępnij Napisano Grudzień 6, 2019 Witam. Mam problem z czujnikami a dokładnie wyświetlają fikcyjne dane. Na razie opisze problem z DS18B20 wgrałem przykład z biblioteki ale wyniki na porcie wynoszą -127.00ºC oraz -196.60ºF. Mam esp32 devkit v1 i podpinam do pinu 4 z rezystorem. Może ktoś miał podobny problem? #include <OneWire.h> #include <DallasTemperature.h> // GPIO where the DS18B20 is connected to const int oneWireBus = 4; // Setup a oneWire instance to communicate with any OneWire devices OneWire oneWire(oneWireBus); // Pass our oneWire reference to Dallas Temperature sensor DallasTemperature sensors(&oneWire); void setup() { // Start the Serial Monitor Serial.begin(115200); // Start the DS18B20 sensor sensors.begin(); } void loop() { sensors.requestTemperatures(); float temperatureC = sensors.getTempCByIndex(0); float temperatureF = sensors.getTempFByIndex(0); Serial.print(temperatureC); Serial.println("ºC"); Serial.print(temperatureF); Serial.println("ºF"); delay(5000); } Link do komentarza Share on other sites More sharing options...
Gość Grudzień 7, 2019 Udostępnij Grudzień 7, 2019 Wygląda na to, że masz coś źle podłączone a ten wynik to nie temperatura tylko kod błędu. Zapoznaj się z plikiem DallasTemperature.h // Error Codes #define DEVICE_DISCONNECTED_C -127 #define DEVICE_DISCONNECTED_F -196.6 #define DEVICE_DISCONNECTED_RAW -7040 Zobacz też przykłady dołączone do biblioteki. To podstawowe czynności jakie powinno się wykonać jeszcze przed skorzystaniem z nowej biblioteki. Myślę, że sobie z tym poradzisz, zachęcam jednocześnie do opublikowania rozwiązania na forum aby ktoś zmagający się z podobnym problemem w przyszłości mógł go rozwiązać dzięki Tobie. Pozdrawiam i życzę powodzenia z hardware debuging. -- Wygląda na to, że pin nie jest skonfigurowany. Link do komentarza Share on other sites More sharing options...
jakub51996 Grudzień 7, 2019 Autor tematu Udostępnij Grudzień 7, 2019 (edytowany) Dzięki za odpowiedz. Dodałem konfiguracje pinu i jeszcze raz wszystko podłączyłem i zadziałał. Teraz mam problem z czujnikiem wilgotność gleby FC-28 który wskazuje wynik 4095 i nie reaguje na wodę. Podłączam do pinu 35 oraz zasilanie 5v. Czy powinnem zastosować jakąś bibliotekę? int sensor_pin = 35; int value ; void setup() { Serial.begin(115200); Serial.println("Reading"); delay(2000); pinMode(sensor_pin, INPUT); } void loop() { value= analogRead(sensor_pin); Serial.print("Moisture : "); Serial.print(value); Serial.println("%"); delay(1000); } Edytowano Grudzień 7, 2019 przez jakub51996 Link do komentarza Share on other sites More sharing options...
ethanak Grudzień 7, 2019 Udostępnij Grudzień 7, 2019 Dlaczego zasilasz czujnik z 5V zamiast 3.3V? Masę w ogóle podłączyleś? Czy na pewno podłączasz pin do odpowiedniego wyjścia (analog a nie digital)? Po co pinMode jeśli używasz analogRead? Czy wejście w ogóle reaguje na jakieś zmiany napięcia (podłącz tam potencjometr i sprawdź czy reaguje, bo 5V mogło je uwalić). 4095 to znaczy, że na wejściu jest 3.3V albo więcej (zakres analogRead jest od 0 do 4095). 1 Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Gość Grudzień 7, 2019 Udostępnij Grudzień 7, 2019 Może być 5V. Zobacz tu: https://maker.pro/arduino/projects/arduino-soil-moisture-sensor Link do komentarza Share on other sites More sharing options...
ethanak Grudzień 7, 2019 Udostępnij Grudzień 7, 2019 Oczywiście że może być. Tyle że piny w ESP32 nie lubią podłączania do nich 5V. Link do komentarza Share on other sites More sharing options...
jakub51996 Grudzień 7, 2019 Autor tematu Udostępnij Grudzień 7, 2019 Znów był problem z podłączeniem znaczy podłączyłem pod pin 32 oraz zasilanie pod 3,3V masę oczywiście miałem podłączoną. Teraz mam pytanie jak dobrać odpowiedni zakres aby wilgotność była wyświetlana w %? Wiem że służy do tego rozkaz output_value = map(output_value,550,0,0,100) czy jaką maksymalną wartość ma dać 4095? Link do komentarza Share on other sites More sharing options...
ethanak Grudzień 7, 2019 Udostępnij Grudzień 7, 2019 Takie coś to Ci raczej nie wyjdzie. Owszem - możesz przeskalować wartość odczytaną z analogRead właśnie za pomocą map, ale z rzeczywistymi procentami nie będzie to miało wiele wspólnego. Podejrzewam że ten "map" to z jakiejś arduinowej aplikacji? No to pomyśl: w Arduino analogRead ma zakres 1024, tutaj 4096. Cztery razy więcej, prawda?. Więc jeśli w Arduino odczytana wartością byłoby 550, to tutaj... no ile? Zgadniesz czy policzysz? A może zajrzysz do opisu funkcjo map na arduino.cc? Bo tak nie rozumiejąć o co chodzi to skończysz ten program za jakieś siedem kilometrów...[1] -- [1] Każda pięciolatka to krok naprzód 1 Link do komentarza Share on other sites More sharing options...
jakub51996 Grudzień 7, 2019 Autor tematu Udostępnij Grudzień 7, 2019 Dziękuję za pomoc. Osiągnąłem wystarczającą dokładność. Mam ostatnie pytanie w sprawie czujników czy podłączenie ich dwóch pod zasilanie 3.3V w ESP32 nie spali płytki? Link do komentarza Share on other sites More sharing options...
ethanak Grudzień 8, 2019 Udostępnij Grudzień 8, 2019 Nie powinno - biorąc pod uwagę możliwości stabilizatora 1117 na płytce. Jeśli jednak chcesz mieć stuprocentową pewność - po prostu zmierz prąd jaki pobiera moduł przy zwartych elektrodach (powinienem co prawda taki moduł mieć po nieudanym eksperymencie z kwiatkami ale gdzieś się zapodział). Z tego co wyszperałem w sieci sam ESP32 w porywach ciągnie do 240 mA (nadawanie WiFi), czyli trochę zapasu jeszcze zostanie... 1 Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »