Skocz do zawartości

Czujnik jakości powietrza


Pomocna odpowiedź

Nie... Znalazłem w szufladzie stary wyświetlacz z kontrolerem FT-800 - czekał na jakiś dobry pomysł i... postanowiłem zrobić na nim bitwę czołgów 🙂 W końcu mamy Sobotę, trzeba się jakoś rozerwać a w Wawie taki smog, że siekiera zawisa w powietrzu więc rower odpada. No i muszę przyznać, że fajnie to działa. Głupia 8MHz ATmega z płyteczki NanoPro spokojnie daje radę robić 20 klatek na sekundę i wciąż śpi przez 30 z 50 dostępnych milisekund. Mam już dwa joysticki analogowe z klikiem (FIRE), dwa czołgi, pole walki ze zniszczalnymi przeszkodami (drewniane, ceglane i beton), odliczane czasy przeładowania dział, punktację itp. Ten kontroler nie jest przeznaczony stricte do gier a raczej do ekranów GUI, bo właśnie najważniejsze czego mu brakuje to sprzętowe wykrywanie kolizji obiektów. Ja zrobiłem detekcję kolizji czołgów z przeszkodami i ze sobą, pocisków ze wszystkim a teraz rysuję (w Paint'cie...) animacje wybuchów, heh, fajna zabawa. Ostatni raz napisałem grę.. a nie, to wcale nie było tak dawno. Mój PONG powstał kilka lat temu gdy dorwałem się do malutkiego wyświetlacza OLED 128x64. A tutaj mam 5 cali, 480x272 i 24-bitowy kolor 🙂 FT-800 sam umie robić transformacje (przesunięcia i obroty) raz podesłanych mu bitmap 2D więc rysowanie czołgów w dowolonym położeniu to po prostu bajka. Nie mamy czasem na Forbocie działu "Gry"? 😲

No, ale zaraz, nie o tym miało być... Niestety nie mam ogrzewania czujnika 😳

Link do komentarza
Share on other sites

OK, jako, że w końcu usiadłem do mojego czujnika jakości powietrza, postanowiłem najpierw podlączyć DHT11 który będzie mi sprawdzał temperaturę i wilgotność badanego powietrza.

Problem, po wgraniu do nodeMCU kod nie działa, po wgraniu do arduino uno, śmiga aż miło. Dlaczego, o czym zapomniałem?? Przewód sygnałowy wpinam oczywiście w pin D2 na nodeMCU. 

Oto sketch:

#include <SimpleDHT.h>

// for DHT11, 
//      VCC: 5V or 3V
//      GND: GND
//      DATA: 2
int pinDHT11 = 2;
SimpleDHT11 dht11(pinDHT11);

void setup() {
  pinMode(2, INPUT);
  Serial.begin(9600);
}

void loop() {
  // start working...
  Serial.println("=================================");
  Serial.println("Sample DHT11...");
  
  // read without samples.
  byte temperature = 0;
  byte humidity = 0;
  int err = SimpleDHTErrSuccess;
  if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
    Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000);
    return;
  }
  
  Serial.print("Sample OK: ");
  Serial.print((int)temperature); Serial.print(" *C, "); 
  Serial.print((int)humidity); Serial.println(" H");
  
  // DHT11 sampling rate is 1HZ.
  delay(1500);
}

wywala błędy 2832 i 3088...

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

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

(edytowany)

Czyli mam wpisać 4 zamiast 2? też nie działa, a w przykładzie na tej stronie jest że jak chcemy użyc np. pinu D4 to wpisujemy D4, ale u mnie tez nie działa...:-(

 

 

EDIT, wpisałem D4, podlączyłem do D4 i d..., ale jako, że mam DHT11 podłączone do osobnej przetwornicy, a nodeMCU do USB żeby działał monitor szeregowy, to przypomniało mi się, że może by tak połączyć masy node i przetwornicy zasilającej DHT... i BINGO... czyta prawidłowo...:-))

Dobra biorę się za PMS5003...

Trzy godziny później, kurcze jest za pięć czwarta, chyba się nie wyśpię....he he ale jakos to uruchomiłem:

Dobranoc, w sumie i tak sam tu jestem 😉

Edytowano przez SOYER
Link do komentarza
Share on other sites

(edytowany)

Czekając, na nowe nodeMcu, stare poszło z dymem z powodu wadliwie polutowanej przetwornicy, uzupełniam kod o RTC, serwo i wentylator...

Pytanie, jak obejść problem konieczności podłączania i odłączania przewodów od PMS5003 podpiętych pod TXi RX nodeMCU za każdym wgrywaniem nowej wersji softu...??

Edytowano przez SOYER
Link do komentarza
Share on other sites

(edytowany)

Nie wiedziałem o takiej opcji, dzięki:-). Korzystając z tego tutoriala: http://strejczek.com/esp8266-i-arduino-ota-over-the-air-update/ , rozumiem, że dochodze do wgrania szkicu BasicOTA.ino i po pojawieniu sie portu "internetowego", moge wgrywać dowolny program przez ten port, czy musi on zawierać jakieś elementy tego szkicu BasicOTA.ino? Krótko mówiąc, czy BasicOTA.ino po prostu uruchamia port sieciowy, a potem to już możemy wgrywać co chcemy?

EDIT już doczytałem, że szkic BasicOTA.ino musi być częścią naszego programu... ciekawe jak to się bedzie gryźć z Blynkiem...

Edytowano przez SOYER
Link do komentarza
Share on other sites

nie musi. ja zawsze robię coś takiego, że mam jakiś wolny pin, podpinam do guzika i jeśli ten w czasie startu jest wciśnięty, uruchamia się inna pętla zamiast loop. kiedyś mi to rzyć uratowało gdy się okazało, że wskutek błędu program po wejściu w loop strzelał sobie rejestramina serialu i robił reset 🙂

Link do komentarza
Share on other sites

U nas godo się rzić ;-).

Czyli jak? Na dzień dobry w pętli dajesz if-a sprawdzającego przycisk i jak jest LOW to uruchamia się szkic np. od OTA, a jak nie to co innego? Przycisk to chyba nie jakiś microswitch tylko dwustanowy, tak? Bo jakbyś go nie trzymał wciśniętego to pętla przeleci i ruszy ten drugi szkic... dobrze kombinuję?

Link do komentarza
Share on other sites

1. Można wgrać szkic z dwoma pętlami i wybierać (jakoś) która ma się wykonywać?

2. Z tego co wyczytałem moim angielskim to wpisanie yield() na końcu petli powoduje, że wykonuje się tylko ona, tak?

3. Jak to się zapisuje w setup-ie, że jeśli przycisk LOW to ma się wykonać to a nie tamto...??

 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.