Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'nodemcu v3'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - DIY
    • Projekty - DIY roboty
    • Projekty - DIY (mini)
    • Projekty - DIY (początkujący)
    • Projekty - DIY w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie

Kategorie

  • Quizy o elektronice
  • Quizy do kursu elektroniki I
  • Quizy do kursu elektroniki II
  • Quizy do kursów Arduino
  • Quizy do kursu STM32L4
  • Quizy do pozostałych kursów

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Imię


Strona


TempX

Znaleziono 5 wyników

  1. Część, napisałem sobie składaka z różnych tutoriali w internecie i nie mogę dojść do tego dlaczego nie można używać jednocześnie server.handelClient + jakiejkolwiek innej funkcji. (ew pewnie nie umiem tego pogodzić - co jest bardziej prawdopodobne 😄 ) Chciałbym aby działało to tak: Cały czas sprawdzamy czy wartość czujnika się nie zmieniła + można wejść w dowolnej chwili sprawdzić jaka jest konkretna wartość na tym czujniku. Będzie ich tu kilka ale na te chwile nie mogę tego odpalić przy jednym.. Czy ktoś może mi podpowiedzieć jak to powinno wyglądać ? Bez switch_water - działa, jak odkomentuje to przestaje odpowiadać serwer.. // Load Wi-Fi library #include <ESP8266WiFi.h> #include <ESP8266WebServer.h> // Replace with your network credentials const char* ssid = "Tp-link"; const char* password = "***"; // Set web server port number to 80 ESP8266WebServer server(80); // Auxiliar variables to store the current output state int output36State = 0; // Assign output variables to GPIO pins const int output5 = 12; void switch_water() { output36State = analogRead(A0); if (output36State > 500) { // jeżeli przycisk przejdzie w stan niski digitalWrite(output5, HIGH); }else{ digitalWrite(output5, LOW); // przekaźnik załączy się } } void setup() { Serial.begin(115200); // Initialize the output variables as outputs pinMode(output5, OUTPUT); // Set outputs to LOW digitalWrite(output5, LOW); // Connect to Wi-Fi network with SSID and password Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } // Print local IP address and start web server Serial.println(""); Serial.println("WiFi connected."); Serial.println("IP address: "); Serial.println(WiFi.localIP()); server.on("/", handle_OnConnect); server.begin(); Serial.println("HTTP server started"); } void handle_NotFound(){ server.send(404, "text/plain", "Not found"); } String SendHTML(){ String ptr = "<!DOCTYPE html> <html>\n"; ptr +="<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n"; ptr +="</head>\n"; ptr +="<body>\n"; ptr +="{\"soil\": " + String(output36State) + "} "; ptr +="</body>\n"; ptr +="</html>\n"; return ptr; } void handle_OnConnect() { server.send(200, "text/html", SendHTML()); } void loop(){ server.handleClient(); //switch_water(); }
  2. W zeszłym tygodniu zabrałem się za kolejny ciekawy projekt, miernik poziomu jakości powietrza z pomiarem podstawowych parametrów pogodowych. Nie będę się rozpisywał na temat projektu gdyż jest on doskonale opisany przez autora na stronie: https://github.com/hackerspace-silesia/Smogomierz, ja osobiście korzystałem z tej instrukcji. Części: WiFi ESP8266 NodeMCU v3 czujnik cząstek stałych PM 1, 2.5 i 10 - PMS7003 adapter do czujnika PMS czujnik temperatury, wilgotności i ciśnienia BME280 Złożenie całości zajmuje nie więcej niż 15 minut. W kolejnym kroku ładujemy kod (zgodnie z instrukcją) ja skorzystałem z gotowej paczki Smogly. System po skonfigurowaniu przez panel WWW jest gotowy do współpracy z popularnymi serwisami monitorującymi typu AirMonitor, aui.eco, Luftdaten.info czy thingspeak (z którego w moim przypadku korzystam jako pośrednika danych w celu ich wysyłki do 'Ramki cyfrowej - centrum informacji' - opisywanej w innym wątku. Po zamontowaniu całości w obudowie, zapewnieniu przepływu powietrza, całość działa bez zarzutu (aktualnie w trakcie testowania). W celu codziennego monitorowania parametrów najbardziej sprawdzi się wg mnie serwis aqi.eco, z którym smogly działa bez problemów. Serwis aqi.eco automatycznie generuje dedykowaną stronę dla każdego czujnika na której można sprawdzić bieżące odczyty oraz historię długoterminową na wykresach. W serwisie jest też dostępna mapa czujników w Polsce i Europie. Po testach podzielę się z Państwem wrażeniami i opinią.
  3. Witam, w internecie zakupiłam zaskakująco tanio płytkę ESP8266 Wemos NodeMCU V3 z linka: https://shopee.pl/Moduł-NodeMCU-V3-Lua-WIFI-zintegrowany-ESP8266-dodatkowa-pamięć-32M-Flash-USB-CH340G-i.597261045.15003633781 . Zachęcona pozytywnymi opiniami zakupiłam płytki, wcześniej kupowałam z tego sklepu czujniki do Arduino i działały bez problemu. Niestety podłączając płytkę (a kupiłam ich 5) żadnej nie wykrywa komputer (ani Win8 ani Win11), przyciskając przycisk reset płytka się świeci, czujniki do niej podłączone świecą, więc zasilanie dociera. Kombinowałam z sterownikami, próbą instalacji flasha, zmianą prędkości portów na komputerach, różne porty USB, niestety nic nie pomaga. Komputery nie wykrywają urządzenia i dalej nie wiem jak to ruszyć. Jeśli złamałam jakiś regulamin przepraszam, jest to mój pierwszy post, szukałam podobnych tematów, ale nigdzie nie mogę znaleźć. Z góry dziękuję za odpowiedź i ciepło pozdrawiam 🙂
  4. Hej, piszę do Was w sprawie problemu z ekspanderem MCP23017. Próbuję od kilku dni rozgryźć jakim cudem ekspander MCP23017 odczytuje poprzez piny INPUT różne wartości (inne niż powinien). Zauważyłem, że dzieje się to losowo, zazwyczaj, gdy wgrywam nowe oprogramowanie przez kabel (tak jakby ekspander przed flashowaniem oprogramowania zapamiętał ostatnie wartości INPUT i trzymał je w pamięci wysyłając takie stany do mikrokontrolera). Ekspander podaje mi do mikrokontrolera wartości np. 0 (pin INPUT połączony z GND) w momencie, gdy pin INPUT jest odłączony od pinu GND (brak przewodzenia). Dodam także, iż stosuje zasilanie zewnętrzne 5V do ESP8266, jednakże wartości odczytują się poprawnie, gdy odłączę całkowicie mikrokontroler od zasilania (przez kabel jak i zewnętrznego), a następnie podłączę na nowo (taki jakby "RESET"). Gdy podłączę zasilanie na nowo do mikrokontrolera, stany INPUT zaczynają pojawiać się poprawnie na mikrokontrolerze (sprawdzam stany INPUT przez Serial). Tak nawiasem, zapytam się jeszcze czy dobrze zrobiłem podłączając pin RESET z MCP23017 do 3.3V z NodeMCU? Ciężko mi na ten temat było cokolwiek wyczytać i zrozumieć, co dzięki takiemu połączeniu zyskam. Natomiast próbowałem połączenie układu z pinem RESET jak i bez - niestety błędny odczyta stanów INPUT pojawia się nadal. Kod programu: #include <Arduino.h> #include <Wire.h> #include <Adafruit_MCP23017.h> // MCP23017 Adafruit_MCP23017 mcp; // INPUT int fotokomorkaStanSlupekPrzyBramie = 2; // MCP23017 A2 int fotokomorkaStanNaWyjazdzie = 3; // MCP23017 A3 int przekaznikStanOdbiornikPilota = 4; // MCP23017 A4 // OUTPUT int optoizolatorOtwieranieCalejBramy = 0; // MCP23017 A0 int optoizolatorOtwieranieFurtki = 1; // MCP23017 A1 void setup() { Serial.begin(9600); // MCP23017 mcp.begin(); // INPUT mcp.pinMode(fotokomorkaStanSlupekPrzyBramie, INPUT); mcp.pinMode(fotokomorkaStanNaWyjazdzie, INPUT); mcp.pinMode(przekaznikStanOdbiornikPilota, INPUT); mcp.pullUp(fotokomorkaStanSlupekPrzyBramie, HIGH); mcp.pullUp(fotokomorkaStanNaWyjazdzie, HIGH); mcp.pullUp(przekaznikStanOdbiornikPilota, HIGH); } void loop() { // Serial.println(millis()); // delay(10); if(millis() % 1000 == 0 || millis() % 1000 == 1 || millis() % 1000 == 2) { Serial.println(""); Serial.println("millis(): " + String(millis())); Serial.println("fotokomorkaStanSlupekPrzyBramie: " + String(mcp.digitalRead(fotokomorkaStanSlupekPrzyBramie))); Serial.println("fotokomorkaStanNaWyjazdzie: " + String(mcp.digitalRead(fotokomorkaStanNaWyjazdzie))); Serial.println("przekaznikStanOdbiornikPilota: " + String(mcp.digitalRead(przekaznikStanOdbiornikPilota))); } if (mcp.digitalRead(fotokomorkaStanSlupekPrzyBramie) == !HIGH) { } else { } if (mcp.digitalRead(fotokomorkaStanNaWyjazdzie) == !HIGH) { } else { } if (mcp.digitalRead(przekaznikStanOdbiornikPilota) == !HIGH) { } else { } } Budowa układu (bez wyjść OUTPUT A0 i A1): Przykładowy problem z niepoprawnym odczytem w krokach: 1. Podłączam układ (zasilanie zewnętrzne 5V jak i USB), stany INPUT poprzez MCP23017 odczytują się poprawnie (1 - brak zwarcia między pinem INPUT, a GND; 0 - pin INPUT zwarty z GND): millis(): 5000 fotokomorkaStanSlupekPrzyBramie: 1 fotokomorkaStanNaWyjazdzie: 0 przekaznikStanOdbiornikPilota: 1 2. Zmieniam przykładowe połączenia między GND, a stykami INPUT A2, A3, A4 (odczyt wciąż poprawny): millis(): 7000 fotokomorkaStanSlupekPrzyBramie: 0 fotokomorkaStanNaWyjazdzie: 1 przekaznikStanOdbiornikPilota: 1 3. Minimalnie zmieniam kod (np. dodaję przekaźnik jako OUTPUT do mikrokontrolera) i flashuję kod do mikrokontrolera ESP8266 przez kabel, po czym mikrokontroler na nowo wczytuję procedurę setup() jak i następnie loop(), stany INPUT z MCP8266 odczytywane przez mikrokontroler są jak "zamrożone" (dokładnie takie same jakie wcześniej przed flashowaniem). Odłączając oraz łącząc przewody między INPUT A2, A3, A4 oraz pinem GND nie ma żadnej różnicy, jako dane z MCP8266 zwracane są cały czas takie same jak przez flashowaniem z różnicą millis(): millis(): 2000 fotokomorkaStanSlupekPrzyBramie: 0 fotokomorkaStanNaWyjazdzie: 1 przekaznikStanOdbiornikPilota: 1 4. Odłączam zewnętrzne zasilanie 5V (zasilanie z kabla USB wciąż podłączone), ten sam stan pinów INPUT A2, A3, A4 (niezależnie od stykania pinów INPUT z pinem GND): millis(): 4000 fotokomorkaStanSlupekPrzyBramie: 0 fotokomorkaStanNaWyjazdzie: 1 przekaznikStanOdbiornikPilota: 1 5. Odłączam zasilanie z USB (całkowite odłączenie zasilania od mikrokontrolera (a także MCP23017)), podłączam zasilanie 5V i USB do ESP8266, stany między INPUT A2, A3, A4 oraz GND wczytały się na nowo (teraz są poprawne): millis(): 7000 fotokomorkaStanSlupekPrzyBramie: 1 fotokomorkaStanNaWyjazdzie: 1 przekaznikStanOdbiornikPilota: 1 Tak wygląda działanie mojego układu, co bardzo mi przeszkadza (nie jestem w stanie zmieniać kodu na żywo, po czym flashować i sprawdzać jak funkcjonuje urządzenie sterowane). Dodam także, iż nie miałem tego problemu odczytując stany INPUT bezpośrednio z mikrokontrolera ESP8266, jednak PIN-ów tam jest zdecydowanie za mało i potrzebowałem rozszerzyć o kolejne. Wyczytałem w internecie o ekspanderze MCP23017 i postanowiłem zamówić kilka sztuk. Natomiast po podłączeniu i skonfigurowaniu zaczęły pojawiać się takie problemy. Bardzo bym prosił o pomoc, pomysły mi już upadły co tu jeszcze może być grane, a takie funkcjonowanie na pewno nie jest "normalne". Zaczynam się też zastanawiać czy aby problem nie sprawiają wbudowane rezystory w MCP23017. Być może macie jakieś rady, bardzo prosiłbym o pomoc 🙂 Bardzo zależy mi na zbudowaniu tego układu, a im dłużej się z tym męczę, tym bardziej tracę chęci do kontynuowania dalszego rozwijania się z elektroniką i mikrokontrolerami 😕
  5. Witam Zapisuję pomiary na karcie sd w takim formacie: 2020-12-06 00:48:19|24.26|38.08|1014.37 Dane są oddzielone znakiem "|" i potrzebuję np. zmienna1 = "2020-12-06 00:48:19" zmienna2 = 24.26 itd. Chciałbym te dane przekonwertować do zmiennych a następnie wysłać na serwer php żeby zapisać to do bazy sql. Problem jest taki, że męczę się z tym od kilku dni i nie jestem w stanie zapisać nic. Potrafię tylko odczytywać pojedynczo znaki. Więc moja wiedza jest za mała i nie wiem dokładnie z czego się nauczyć. Jeśli ktoś poda mi jakieś przykłady, kurs albo cokolwiek co mi pomoże to będę bardzo wdzięczny. Próbowałem różnych metod z char itd. i często mi się esp wysypuje i resetuje. Dodam jeszcze, że maksymalnie takich linijek w pliku mogę mieć z 500 i każdą linijkę muszę wysłać na serwer. Może powinienem wysłać plik na serwer php i w php obrobić dane, ale też nie wiem jak to zrobić. Będę dalej kombinować, w każdym bądź razie dzięki za jakąkolwiek pomoc.
×
×
  • 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.