Skocz do zawartości

hazi18

Użytkownicy
  • Zawartość

    45
  • Rejestracja

  • Ostatnio

Reputacja

2 Neutralna

O hazi18

  • Ranga
    3/10
  1. @RFM podałem przykładowy kod który mam napisany pod inkubator a chcę napisać program do czujnika przepływu wody. Czyli program liczy przepływ wody, jednak jeśli ten przepływ będzie ciągły i wynosił 30l. wtedy przepływomierz ma zamknąć zawór. Wtedy właśnie program ma "przestać działać". Po usunięciu usterki przyciskiem uruchamiam program i przepływ wody jest od nowa. zbytnio nie umiem rozkminić jak mam mój kodzik przerobić na case? Chodzi o to, że z tego co widziałem case ma to do siebie, że trzeba mu dać bodziec w postaci przycisku (1, 2, 3) i wtedy dany blok się wykonuje. Ja chcę aby tutaj po osiągnięciu temp powyżej 26 stopni program ma wyłączyć przekaźnik ( najlepiej jakby jeszcze wyłączyć działanie programu aby po spadku poniżej 26 stopni znowu się nie włączył). if (dht.readTemperature()>=26) // wywołanie funkcji warunkowej { digitalWrite(przekaznik,HIGH); // włączenie przekaźnika } else { digitalWrite(przekaznik,LOW); }
  2. hej, dzięki za odpowiedź, myślałem coś tez o funkcji goto ale nie wychodziło mi to tak jak bym chciał. 2 metoda to case z tego co się orientuję tak? czy w tym 3 case jak wcisnę przycisk i dzięki funkcji goto przeskoczę do 1 case? jest to możliwe w case?
  3. Witam serdecznie, mam mały problem z zaimplementowaniem przycisku. Otóż chciałbym aby program wykonywał się do momentu osiągnięcia jakiegoś celu, a potem się wyłączył, taki STOP. Program można ponownie uruchomić po naciśnięciu przycisku. Narazie program działa tak, że po osiągnięciu celu nie zatrzymuje się, a ja nie potrafię znaleźć odpowiedniej to tego funkcji. Podaje kod. int przekaznik=7; #include "DHT.h" #include <TM1637Display.h> #define DHTPIN 2 // what pin we're connected to #define DHTTYPE DHT22 // DHT 22 (AM2302) DHT dht(DHTPIN, DHTTYPE); const int przycisk = 3; // Definicja pinu do którego podłączony jest przycisk const int dioda = 8; // Definicja pinu do którego podłączona jest dioda void setup(void) { pinMode(dioda, OUTPUT); pinMode(przycisk, INPUT); pinMode(przekaznik,OUTPUT); // ustawienie pinu jako wyjście digitalWrite(przekaznik,LOW); // ustawienie na nim stanu niskiego Serial.begin(9600); //Begin serial communication dht.begin(); } void loop(void) { float h = dht.readHumidity(); float t = dht.readTemperature(); if (dht.readTemperature()>=26) // wywołanie funkcji warunkowej { digitalWrite(przekaznik,HIGH); // włączenie przekaźnika } if (dht.readTemperature()<=27) { digitalWrite(przekaznik,LOW); } Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C"); delay(1000); }
  4. nie wiem co jest grane, połączenia nie zrywa
  5. Reading rate mam ustawione na 1sec. na PUSH nie działa w ogóle. to oznacza, że widzę przez 3 sekundy jak sekundnik chodzi a potem się mrozi na 12 sekund, za 12 sekund znów działa 3 sekundy i znów się mrozi
  6. Różnić się nie będzie niczym tylko nie chciałem aby przy wyłączonym przekaźniku było brak danych. To akurat tyczy się szeregowego więc usunąłem. Pytanie czemu dane z Blynka aktualizują się co 12 sek na 2-3 sekundy? mam sekundnik w blynku to widzę jaki jest czas
  7. w sumie patrząc na kod to tylko dane dla portu szeregowego więc mogę je wywalić. Dla wyświetlacza dane mam pod ELSE
  8. Chcę aby mimo wyłączonego przekaźnika pokazywał mi dane na wyświetlaczu. To jak można inaczej to zrobić? Co może być powodem, że dane w Blynk aktualizują mi się co 12 sek na okres 2-3 sek?
  9. zmienna i to pozostałość po starym kodzie, wywalona. If else to chyba widać po kodzie po co są potrzebne, tylko jeszcze odkomentowałem w kodzie linijki z przekaźnikiem aby to działało. W zmiennych jest temperatura i wilgotność, co działa na szeregowym i w Blynku.
  10. Hej, no zmieniałem to dlatego z digital na analog i na A0 a u góry zapomniałem zmienić na A0. OK ogarnąłem troszkę kod i zmieniłem wyświetlanie danych dla Virtualnych pinów. Przecież ja ściągałem dane z całego czujnika DTH a w pierwotnym kodzie mam podział na temperaturę i wilgotność... pomyślałem chwilę i do wyświetlania danych dałem zmienna którą używałem. oto kod: #include "DHT.h" //#include <TM1637Display.h> #define DHTPIN D1 // what pin we're connected to #define DHTTYPE DHT22 // DHT 22 (AM2302) #define BLYNK_PRINT Serial #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> // You should get Auth Token in the Blynk App. char auth[] = "_hyKFQylC32c9eUlduUNgp_oM1c9RydD"; // Your WiFi credentials. // Set password to "" for open networks. char ssid[] = "TP-LINK"; char pass[] = ""; DHT dht(DHTPIN, DHTTYPE); float sensorData; void setup(void) { // Debug console Serial.begin(9600); Blynk.begin(auth, ssid, pass); dht.begin(); } void loop(void) { Blynk.run(); float h = dht.readHumidity(); float t = dht.readTemperature(); int i=0; if (dht.readTemperature()>=36.5) // wywołanie funkcji warunkowej { // digitalWrite(przekaznik,HIGH); // włączenie przekaźnika Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C"); } else // wywołanie funkcji warunkowej { // digitalWrite(przekaznik,LOW); // wyłączenie przekaźnika Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C"); } } BLYNK_READ(V1) //Blynk app has something on V1 { sensorData = dht.readTemperature(); //reading the sensor on D1 Blynk.virtualWrite(V1, sensorData); //sending to Blynk } BLYNK_READ(V2) //Blynk app has something on V1 { sensorData = dht.readHumidity(); //reading the sensor on D1 Blynk.virtualWrite(V2, sensorData); //sending to Blynk }
  11. Hej, Czeski błąd przy zmianie nr pinu Więc podsumowując co mi radziłeś: na pinie A0 nie czyta danych a na D1 czyta. Więc muszę ustawić wszystko w programie na D1. Nie chcę gotowca całego programu bardziej zależy mi tylko na kawałeczku który pozwoli mi na odczyt danych z czujnika i wyświetlenie w Blynku. Jeśli tutaj będę miał to co chcę to sądzę, że każdy następny projekt nie sprawi mi tylu kłopotów
  12. #include "DHT.h" #define DHTPIN D1 // what pin we're connected to #define DHTTYPE DHT22 // DHT 22 (AM2302) #define BLYNK_PRINT Serial #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> // You should get Auth Token in the Blynk App. char auth[] = "_hyKFQylC32c9eUlduUNgp_oM1c9RydD"; // Your WiFi credentials. // Set password to "" for open networks. char ssid[] = "TP-LINK"; char pass[] = ""; DHT dht(DHTPIN, DHTTYPE); int sensorData; void setup(void) { // Debug console Serial.begin(9600); Blynk.begin(auth, ssid, pass); dht.begin(); } BLYNK_READ(V1) //Blynk app has something on V1 { sensorData = analogRead(A0); //reading the sensor on A0 Blynk.virtualWrite(V1, sensorData); //sending to Blynk } void loop(void) { Blynk.run(); }
  13. Dziękuję za odpowiedź. Wracając do konwersacji z Adminem, nie napisałem, że jestem początkujący w tym temacie, dopiero co udało mi się napisać 2 programiki, które próbuję ulepszać. Jestem cienki z programowania więc proszę o wyrozumiałość. @SOYER dziękuję za poprzednie odpowiedzi i pomoc, jesteś troszkę surowym nauczycielem, ale nie mam Ci tego za złe pisałem o tym "gotowcu" do Blynka bo nie wiedziałem jak ma wyglądać struktura kodu wysyłania danych i odczyt przez apkę. Znalazłem na necie taki kod ale nie działa u mnie BLYNK_READ(V1) //Blynk app has something on V1 { sensorData = digitalRead(D1); //reading the sensor on D1 Blynk.virtualWrite(V1, sensorData); //sending to Blynk } READ zmieniłem na WRITE i też nic, w apce raz mam PUSH a raz 1 sec ustawione w Reading rate. Pytanie czy ren kod ma być w Void setup czy w Loop?
  14. Funkcja ta zwraca liczbę milisekund, która upłynęła od podłączenia płytki do prądu. W sumie po przeczytaniu tego w necie faktycznie nie jest to potrzebne w programie, nie jest mi potrzebna informacja o czasie działania płytki.
×
×
  • Utwórz nowe...