Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'NodeMCU'.

  • 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

Znaleziono 14 wyników

  1. Po kursie Arduino chcesz nauczyć się czegoś jeszcze? Albo chcesz zrobić inteligenty dom? A może Arduino po prostu ci nie wystarcza - na to wszystko jest rozwiązanie! ESP8266 to wydajny i tani mikrokontroler. Znajdziemy go na wielu płytkach, od małego 01 na NodeMCU kończąc. Dzisiaj zobaczymy jakie są rodzaje płytek, co w sobie ukrywa kostka mikrokontrolera, oraz spróbujemy przygotować środowisko i wgrać Blinka. Niestety, tak nie robimy - tylko zewrzemy piny. Spis treści serii artykułów: 1. Omówienie, i przygotowanie środowiska 2. Zapoznanie z nowym środowiskiem, praca jako Arduino, prosty serwer WWW 3. Przyspieszony kurs na webmastera 4. Wykresy, zapis do SPIFFS, mini smart-dom 5. Odbiór danych z przeglądarki, stałe IP, łączenie modułów ESP Ten wpis brał udział konkursie na najlepszy artykuł o elektronice lub programowaniu. Sprawdź wyniki oraz listę wszystkich prac » Partnerem tej edycji konkursu (marzec 2020) był popularny producent obwodów drukowanych, firma PCBWay. Możliwości ESP8266 Uznałem, że najlepiej będzie zestawić NodeMCU v3 z Arduino UNO. Najważniejsze informacje podałem w tabeli. Pamiętamy, że ESP pracuje na napięciu 3.3v. Kiedy podłączałem do 5V (nie róbcie tego w domu) się tylko grzał, ale lepiej tego nie róbcie. ESP ma także pamięć FLASH w oddzielnej kostce - co pozwala na dużą jej pojemność (zależy to od wersji modułu). Co więcej, interfejsy możemy zdefiniować na (prawie) każdym pinie. ESP pracuje o wiele szybciej od Arduino - bo aż na 80MHz (z możliwością do 160!), i przede wszystkim ESP jest 32 bitowe. No, i ESP się lekko grzeje, ale to nic złego. Warianty ESP8266 Ten mały mikrokontroler możemy znaleźć na równie małych płytkach, lub znacznie większych i rozbudowanych modułach. Jednym z mniejszych, samodzielnych modułów jest ESP12. Posiada wiele wyprowadzeń, lecz nie jest (nawet z przejściówką) zbyt przyjazny dla płytki stykowej. Posiada natomiast aż 4MB pamięci FLASH (wersja ESP12F). Będzie to optymalny wybór dla rozwiązań wbudowanych (np. własnych płytek). ESP12 Jeżeli natomiast szukamy czegoś równie małego, ale bardziej przyjaznego dla nas, tutaj nadchodzi ESP01. Ten mały modulik ma niestety mniej pamięci (niebieska wersja 512kB, czarna 1MB), oraz tylko 8 wyprowadzonych pinów - lecz do konkretnego zastosowania, np. gniazdka z przekaźnikiem, wystarczy. ESP01 (niebieski) ESP03 i ESP07 to uboższe wersje ESP12, ale posiadają ceramiczną antenę - a ESP07 nawet złącze do zewnętrznej anteny. ESP07 Pozostałe moduły rzadko się spotyka, różnią się jedynie ilością wyprowadzeń, rozmiarem, i sposobem montażu. Przygotowanie ESP do programowania W zależności od tego, jaki moduł wybrałeś, będziesz musiał albo przylutować przewody do jego wyprowadzeń, lub podłączyć się przewodami do płytki stykowej. Dlatego na początek nauki, najlepiej zakupić NodeMCU (płytkę deweloperską z ESP12 na pokładzie), Wemos (troszkę mniejsze płytki z ESP12) - mają wszystko wbudowane. Jeżeli taką płytkę wybrałeś, możesz pominąć ten krok. Mając "surowe" ESP12 lub 01, musisz je odpowiednio podłączyć. Połączenie ESP01 z konwerterem USB ↔ UART. Rozpiska pinów dla ESP01. Do tego będziemy potrzebować dwóch przycisków tact switch, kondensatora elektrolitycznego (z zakresu 100-1000µF), dwóch rezystorów 10kΩ, przewodów, oraz oczywiście ESP i konwertera. Pokazałem to na przykładzie ESP01, ale każdy ESP też ma takie wyprowadzenia: pin CH_PD łączymy na stałe do napięcia zasilania przez rezystor 10kΩ pin RST podciągamy do VCC rezystorem 10kΩ, oraz podpinamy przycisk zwierający do masy pin GPIO0 podpinamy do przycisku zwierającego z masą między VCC a GND dajemy kondensator pin RX konwertera łączymy z pinem TX ESP, a pin TX konwertera z pinem RX ESP piny VCC i GND ESP łączymy z pinami VCC i GND konwertera napięcie na konwerterze ustawiamy na 3.3V! Na NodeMCU także znajdziemy dwa przyciski. Przycisk RST odpowiada ze reset mikrokontrolera - tak samo jak w Arduino. Ale co robi przycisk PRG? Otóż, jeżeli na pin GPIO0 podamy logiczne 0 podczas startu mikrokontrolera, wprowadzimy go w tryb programowania. Dzięki temu będziemy mogli wgrać do niego nasz kod. Jeżeli nie mamy zainstalowanych sterowników dla konwertera (np. CH340), powinniśmy je pobrać i zainstalować. Przygotowanie środowiska ESP możemy programować na dwa sposoby, w języku lua - oraz klasycznie, jak arduino, w c++. Opiszę wam sposób jak programować ESP jako Arduino - a do tego potrzebne będzie Arduino IDE. Jeżeli jeszcze takowego nie mamy, pobieramy najnowszą wersję stąd, po czym instalujemy. Dokładny proces instalacji został opisany na kursie Arduino - jeżeli mamy już zainstalowane środowisko, uruchamiamy je, a następnie przechodzimy do zakładki Plik → Preferencje. Powinno nam się otworzyć nowe okno. Szukamy okienka "Dodatkowe adresy URL do menedżera płytek", i wklejamy ten adres: https://arduino.esp8266.com/stable/package_esp8266com_index.json Całość powinna teraz wyglądać tak: Klikamy OK - następnie przechodzimy do zakładki Narzędzia → Płytka → Menedżer płytek Szukamy "esp8266", i klikamy Instaluj. Pobrane zostanie ok. 100MB danych. Od teraz możemy wybrać płytkę ESP jak zwykłą płytkę Arduino. ALE! Jeżeli już kiedyś programowałeś, w innym IDE, zapewne wiesz, że Arduino IDE jest troszkę przestarzałe. Brak autouzupełniania, podpowiedzi, rozbudowanego systemu plików, GIT, i innych funkcji. Jest na to sposób! Dlatego w tym poradniku także opiszę instalację i konfigurację Microsoft Visual Studio Code do pracy z Arduino. Dzięki temu będzie o wiele prościej i wygodniej pisać programy. Pobieramy zatem najnowsze VS Studio Code z tej strony. Jak widać jest ono dostępne na Windowsa, Linuxa, i MacOS. Po pobraniu i zainstalowaniu, powinniśmy zobaczyć taki widok: Jeżeli ciemny motyw nam nie odpowiada, możemy to zmienić naciskając koło zębate (lewy, dolny róg) i "Color Theme" - jasny motyw to Light+. Problemem dla niektórych może być język angielski - lecz w informatyce jest on niezbędny do funkcjonowania. Nie ma problemu aby wrócić do spolszczonego Arduino IDE. Jeżeli jednak chcesz zostać przy VS Code, musimy zainstalować rozszerzenie Platform.io. Dokładniej masz to opisane w tym forbotowym artykule. Po zainstalowaniu Platformio, klikamy magiczny przycisk F1 (musimy go zapamiętać!), i ukazuje nam się to okno: Znajdziemy tam wszystkie funkcje znane z Arduino IDE! Teraz możemy podpiąć nasz konwerter lub NodeMCU do komputera. Tworzymy nowy projekt, i szukamy po lewej pliku platformio.ini. Tam możemy wybrać inną płytkę niż ta, którą wybraliśmy podczas tworzenia projektu. Możemy także ustalić inne rzeczy - więcej w dokumentacji. Otwieramy podfolder src, i szukamy pliku main.cpp. Otworzyło nam się nowe okno - pierwsze co widzimy, to biblioteka Arduino. Dołączy ona wszystkie funkcje z starego IDE. Wklejamy poniższy kod. Największą różnicą ESP w stosunku do Arduino, jest tutaj zapalenie poprzez ustawienie LOW na pinie. #include <Arduino.h> void setup() { pinMode(LED_BUILTIN, OUTPUT); //pin drugi jako wyjście } void loop() { digitalWrite(LED_BUILTIN, LOW); //zapalamy diodę delay(1000); //czekamy sekundę digitalWrite(LED_BUILTIN, HIGH); //gasimy diodę delay(1000); //czekamy sekundę } Teraz przyszedł moment na wgranie szkicu. Klikamy przycisk PRG (gdzieniegdzie opisywany jako FLASH), trzymamy, a następnie RESET, i puszczamy. Dioda powinna raz mrugnąć - oznacza to, że ESP jest gotowe do zaprogramowania. Klikamy zatem znowu F1, a następnie "Platformio: Upload". Cierpliwie czekamy, aż program się wgra. Kiedy zobaczymy ten komunikat: Przyciskamy przycisk reset na naszej płytce - i dioda powinna zacząć mrugać. Na dole, po lewej, na niebieskim pasku są także małe ikonki pozwalające wgrać szkic. Gratulacje, udało Ci się zaprogramować ESP! Możesz je teraz wykorzystać jako moduł Wifi, samodzielne urządzenie, zastosowań jest tyle ile dla Arduino, a nawet i więcej. Udało Ci się także skonfigurować poprawnie VS Code do pracy z płytkami Arduino (i nie tylko!). W następnym odcinku zobaczymy co tak naprawdę oferuje przesiadka na VS Code, oraz spróbujemy połączyć się przez Wifi. Liźniemy nawet trochę HTMLa z CSSem, aby postawić stronę WWW! W przypadku jakichkolwiek problemów, nie bójcie się pisać komentarzy. Spis treści serii artykułów: 1. Omówienie, i przygotowanie środowiska 2. Zapoznanie z nowym środowiskiem, praca jako Arduino, prosty serwer WWW 3. Przyspieszony kurs na webmastera 4. Wykresy, zapis do SPIFFS, mini smart-dom 5. Odbiór danych z przeglądarki, stałe IP, łączenie modułów ESP
  2. Witam. Mam problemy z obsługą I2C na NodeMcu v3. NodeMCU v3 podłączony z LCM1602 tak jak na schemacie poniżej z tym że LCM1602 dostaje zasilanie 5V zasilacza, a GND z NodeMCU, LCM1602 i zasilacza są połączone razem. LCM1602 docelowo podłączony jest do wyświetlacza 20x4. 1. Po odpaleniu I2cScanner otrzymuję: Scanning... Unknown error at address 0x01 Unknown error at address 0x02 .... No I2C devices found 2. Po odpaleniu I2CexpDiag z https://github.com/duinoWitchery/hd44780 dostaję: Serial Initialized -------------------------------------------------------------------- I2CexpDiag - i2c LCD i/o expander backpack diagnostic tool -------------------------------------------------------------------- hd44780 lib version: 1.3.2 -------------------------------------------------------------------- Reported Arduino Revision: 1.8.16 Arduino Board: ESP8266_NODEMCU_ESP12E CPU ARCH: ESP8266 - F_CPU: 80000000 -------------------------------------------------------------------- SDA digital pin: 4 (GPIO4) SCL digital pin: 5 (GPIO5) -------------------------------------------------------------------- Checking for required external I2C pull-up on SDA - STUCK LOW Checking for required external I2C pull-up on SCL - STUCK LOW ******************************************************************** ERROR: SDA or SCL stuck pin ******************************************************************** I2C bus not usable Testowałem również na przypadkach gdzie na dwóch różnych expanderach LCM1602, gdzie nie ma podłączonego wyświetlacza i zasilacza, a zasilanie LCM1602 jest z pinu NodeMCU 3V, korzystałem również z różnych przewodów - efekt ten sam. Sprawdziłem też piny D1 i D2 - są zdrowe (jest prawidłowe napięcie gdy ustawiony jest stan wysoki, a po podłączeniu diody i odpaleniu testowego programu prawidłowo mruga). Ponadto sprawdziłem też to samo na innym ESP8266 - tym razem pod postacią Wemos D1 mini - tam sytuacja również jest taka sama. Czy pominąłem jakiś krok? Jakieś sugestie?
  3. Witam, jakiś czas temu zbudowałem układ oparty na NodeMCU, który odpowiada za m.in. sterowanie bramą przez WiFi. Zauważyłem, że od jakiegoś czasu zasięg pilotów drastycznie spadł i, by otworzyć bramę trzeba zbliżyć się na kilka metrów oraz skierować pilot do skrzynki. Moduł MCU został zamontowany w osobnej skrzynce ok. 30cm nad skrzynką z elektroniką sterowania bramy FAAC. Zaczynam się zastanawiać czy WiFi 2.4GHz jest w stanie zakłócić sygnał pilotów na 433MHz, co przyczyniło się do drastycznego skrócenia zasięgu? Jeszcze co przychodzi mi na myśl, obok modułu NodeMCU znajduje się zasilacz (230V -> 5V). Ponadto, ze skrzynki sterowania bramą wciąż nie wyprowadziłem zewnętrznej anteny, choć robiłem testy z zewnętrzną anteną i w sumie z zewnetrzną anteną działa wciąż gorzej niż wcześniej bez anteny i bez układu NodeMCU. Układ NodeMCU z elektroniki zawiera jeszcze kilka oporników, stabilizator napięcia LM7805 oraz optoizolator PC817, lecz myślę, że żadne z tych elementów elektronicznych nie wpływa na zakłócenia. Najbardziej zastanawiam się nad WiFi oraz zasilaczem, choć WiFi nadaje na 2.4GHz, a nie 433MHz. Ktoś może coś poradzi? Może ktoś spotkał się z czymś podobnym? Być może jest jakiś sposób wykrycia co wpływa na zakłócenie? Pozdrówki!
  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, potrzebuję pomocy w naprawie mojego NodeMCU v3, na płytce eksplodowała jedna część i nie mogę zorientować czy to była dioda czy kondensator. Będę bardzo wdzięczny za link do zakupu nowej części. Pozdrawiam bardzo serdecznie.
  6. Hej, Zacznę od swojego backgroundu w temacie - skończyłem infę dobre kilka lat temu, ale tak naprawdę zgłębiam ten fascynujący świat elektroniki od stosunkowo niedawna. Jestem w trakcie wykonywania projektu - zdalnie sterowanej rolety wewnętrznej w kuchni. Celem nadrzędnym jest wykorzystanie jak najbardziej podstawowych elementów, by żona nie krzyczała, że zagracam jej kuchnię 😉 schemat poglądowy wygląda tak: Oraz filmik jak to wygląda na żywo: Filmik jest nagrany dla poprzedniej wersji, w aktualnej zastąpiłem szybkozłączki lutami oraz dołożyłem 2 kondensatory do układu, jak na schemacie. W kwestii zasilania rozciąłem walający się w domu kabel USB i połączyłem czerwony i czarny kabel, pozostałe tj. białe i zielone uciąłem (nie zabezpieczając ich w żaden sposób). Jako zasilacz użyłem zwykłą ładowarkę do telefonu bodajże Samsunga dającą 2A. Wszystko działało dobrze, zarówno w wersji z filmiku jak i z lutami i kondensatorami. Schody zaczęły się, gdy podłączam przedłużacz usb 5 metrowy (potrzebuję przeciągnąć do bo wtyczkę mam trochę dalej od okna). Właściwie, to próbowałem z dwoma przedłużaczami, również z "aktywnym" (https://allegro.pl/oferta/kabel-usb-5m-przedluzacz-aktywny-9272337651) . Próbowałem również 2 różne łatowarki, bez zmian. Rezultat jest identyczny - wygląda na to, że kontroler nodeMCU się resetuje (nie łączy się do sieci WiFi). Czy dodatkowa ilość kabla powoduje jakieś zakłócenia/spadki napięcia układu? Czy powinienem dorzucić jakiś jeszcze stabilizator do tego układu? Myślałem, że kondensator załatwi tę sprawę, ale nie daje on praktycznie różnicy. Pewnie popełniłem dużo błędów przy tym projekcie, więc jeśli macie jakieś sugestie to chętnie posłucham 🙂
  7. Ostatnio kupiłem moduł NodeMcu V3 udało mi się podłączyć go do Internetu i kanału na ThingSpeak. Teraz chcę do niego podłączyć moduł NRF24l01 tak żeby połączyć to z arduino uno i modułem NRF24l01. Chcę zrobić tak żeby NodeMcu odczytywało dane z trzech czujników DHT22 i wysyłało na ThingSpeak, i do arduino uno poprzez NRF24l01. Tylko mam taki problem, żeby NodeMcu połączyło się z siecią to muszę odpiąć wszystkie czujniki a jak się połączy to można je podpiąć ( żeby wgrać program też trzeba odpiąć czujniki). A drugi problem to taki, że nie wiem jak wysłać i odebrać odczytane temperatury i wilgotności do arduino. Poniżej programy: Odbieranie danych poprzez arduino //Include Libraries #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> //create an RF24 object RF24 radio(9, 8); // CE, CSN //address through which two modules communicate. const byte address[6] = "00001"; void setup() { while (!Serial); Serial.begin(9600); radio.begin(); //set the address radio.openReadingPipe(0, address); //Set module as receiver radio.startListening(); } void loop() { //Read the data if available in buffer if (radio.available()) { char text[11]; radio.read(&text, sizeof(text)); Serial.println(text); } } Wysyłanie danych poprzez NodeMcu //Include Libraries #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> //create an RF24 object RF24 radio(5, 4); // CE, CSN //address through which two modules communicate. const byte address[6] = "00001"; void setup() { radio.begin(); radio.openWritingPipe(address); radio.stopListening(); } void loop() { //Send message to receiver const char text[] = "Hello World"; radio.write(&text, sizeof(text)); delay(1000); } Wysyłanie na kanał ThingSpeak #include "ThingSpeak.h" #include "secrets.h" #include <ESP8266WiFi.h> #include "DHT.h" char ssid[] = "BESKID_MEDIA"; // your network SSID (name) char pass[] = "slowackiego11"; // your network password int keyIndex = 0; // your network key Index number (needed only for WEP) WiFiClient client; unsigned long myChannelNumber = 1202307; const char * myWriteAPIKey = "LG492GYXPS7UXOC0"; // Uncomment one of the lines below for whatever DHT sensor type you're using! //#define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT21 // DHT 21 (AM2301) #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 // Initialize DHT sensor. DHT dht(D6, DHTTYPE); DHT dht1(D7, DHTTYPE); DHT dht2(D8, DHTTYPE); float Temperature; float Humidity; float Temperature1; float Humidity1; float Temperature2; float Humidity2; // Initialize our values int number1; int number2; int number3; int number4; int number5; int number6; String myStatus = ""; void setup() { Serial.begin(115200); // Initialize serial WiFi.mode(WIFI_STA); ThingSpeak.begin(client); // Initialize ThingSpeak pinMode(D6, INPUT); pinMode(D7, INPUT); pinMode(D8, INPUT); dht.begin(); dht1.begin(); dht2.begin(); delay(500); } void loop() { // Connect or reconnect to WiFi if(WiFi.status() != WL_CONNECTED){ Serial.print("Attempting to connect to SSID: "); Serial.println(SECRET_SSID); while(WiFi.status() != WL_CONNECTED){ WiFi.begin(ssid, pass); // Connect to WPA/WPA2 network. Change this line if using open or WEP network Serial.print("."); delay(5000); } Serial.println("\nConnected."); } // set the fields with the values ThingSpeak.setField(1, number1); ThingSpeak.setField(2, number2); ThingSpeak.setField(3, number3); ThingSpeak.setField(4, number4); ThingSpeak.setField(5, number5); ThingSpeak.setField(6, number6); delay(200); // set the status ThingSpeak.setStatus(myStatus); // write to the ThingSpeak channel int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey); if(x == 200){ Serial.println("Channel update successful."); }else{ Serial.println("Problem updating channel. HTTP error code " + String(x)); } Serial.println(Temperature); Serial.println(Temperature1); Serial.println(Temperature2); Temperature = dht.readTemperature(); // Gets the values of the temperature Humidity = dht.readHumidity(); // Gets the values of the humidity Temperature1 = dht1.readTemperature(); // Gets the values of the temperature Humidity1 = dht1.readHumidity(); // Gets the values of the humidity Temperature2 = dht2.readTemperature(); // Gets the values of the temperature Humidity2 = dht2.readHumidity(); // Gets the values of the humidity number1 = Temperature; number2 = Humidity; number3 = Temperature1; number4 = Humidity1; number5 = Temperature2; number6 = Humidity2; delay(10000); // Wait 20 seconds to update the channel again }
  8. Witam. Muszę podłączyć kilka czujników które działają na 5V do nodemcu. Do tego celu chciałem wykorzystać układ MCP3008, podłączając Vcc = 5V, Vref=5V. Czy mogę bezpiecznie podłączyć ten czujnik do nodemcu czy muszę jeszcze coś dodatkowo zrobić ? Może ktoś ma jakiś inny pomysł jak to połączyć z esp?
  9. Witam, głowię się nad paroma rzeczami i postanowiłem dopytać się fachowców. płytka: ESP 8266 Nodemcu v3. czujnik: bme280 i Czujnik deszczu FC-37. Czas pobieram z serwera NTP. Mam małą stację pogodową i pomiary wysyłam na serwer do bazy SQL i wyświetlam na stronie. Wszystko ładnie działa ale potrzebuję to trochę rozbudować i mam mały problem jak to do końca zrobić. ESP obecnie wysyła co 4 minuty przez WiFi dane na serwer i idzie spać na około 3:40m. Przepraszam za jakość zdjęcia, zapodziała mi się wersja img na kompie. Obecnie tak mam to podłączone, zamierzam zasilanie trochę zmienić na 3.3 regulator napięcia ale to jeszcze zobaczę. Póki co chciałbym się dopytać w paru kwestiach: 1. Jak widać pinem GPIO 15 otwieram mosfet, a następnie pobieram dane z czujnika deszczu, problem jest taki, że teraz chciałbym podłączyć moduł sd i potrzebuję GPIO15 do spi. Na dole chciałbym zostawić GPIO 1 i 3 do podłączenia czujnika jakości powietrza. Wyżej mam wolne GPIO 2 i 4 ale przy niskim stanie ESP nie zbootuje. Może użyć jakiś moduł czy coś co pozwoli użyć i podłączyć jeden pin do kilku wejść, nie znam się na tym ale jak ktoś podpowie czego użyć to sobie z tym poradzę. 2. Jak już podłączę moduł sd to chcę zapisywać pomiar na kartę sd w momencie jak WiFi jest wyłączone, a następnie po ponownym podłączeniu wysłać je do bazy i tu mam problem, bo jeszcze nie wiem do końca za co się zabrać. Pytanie mam takie czy da radę podłączyć jeszcze moduł czasu RTC? Wcześniej myślałem, żeby czas mierzyć za pomocą millis od ostatniego zapisu czasu z serwera NTP ale przy uśpieniu deepsleep, millis się ponoć resetuje, może da się zapisywać wartość w pamięci ESP albo zapisywać na sd. Jak widać trochę zielony w tym jestem, ale nie chcę prowadzenia mnie za rękę, jeśli ktoś doradzi lub poda jakąś pomocną stronkę artykuł czy coś co skróci moją drogę do celu to będę bardzo wdzięczny.
  10. Cześć, Niedawno zacząłem się bawić trochę elektroniką i obecnie próbuje zrealizować jeden projekt oparty na ESP8266. Chciałem podłączyć jeden sensor ( dokładnie taki ) do płytki NodeMCU. Chciałbym aby płytka była zasilana przez USB. Mam mały problem z zasilaniem sensora, zgodnie ze specyfikacją może on działać na zasilaniu 10-30V, maksymalnym prądzie do 200mA oraz minimalnym 15mA. Output pinu VIN przy zasilaniu całej płytki przez USB powinien wynosić ok. 5V a natężenie nie powinno przekraczać 500mA. Chciałem zastosować przetwornik step-up (dokładnie taki), który podwyższy napięcie do 12V i takim napięciem zasilać sensor. Czy jest to dobry plan ? Jestem dość mocno początkujący, a nie mogłem znaleźć nigdzie przykładu tego typu zastosowania z pinem VIN. Wielkie dzięki ! :)
  11. Dzień dobry, Zbudowałem prostego pilota, który ma za zadanie sterować kilkoma urządzeniami w pokoju rozsyłając sygnał IR. Schemat projektu wygląda następująco: Aktualnie pilot działa gdy nadajnik jest skierowany w stronę urządzenia oraz znajduje się w odległości nie większej niż 2 metry. Co powinienem zmienić w projekcie, aby uzyskać możliwie jak największy zasięg pilota?
  12. Zacznę od tego że jest to mój pierwszy post tutaj także liczę na konstruktywną krytykę 😄 Chciałem opisać jak zabrałem się za automatyzowanie swojego pokoju. Zaczęło się od tego, że chciałem kupić sobie jakieś inteligentne gniazdka - lecz na budżet studencki jedno gniazdko w cenie ponad 50zł brzmi niezbyt dobrze. Także zacząłem myśleć jak zrobić to samemu no i oczywiście czy wyjdzie taniej korzystając z tego, że siedzę w tematach związanych z elektroniką i arduino. Jak to działa ? Wykorzystane materiały w tym projekcie to: - Moduł z 4 przekaźnikami - Płytka wemos nodemcu - bądź inna dowolna na bazie esp8266 -Zasilacz 5v ( ja użyłem znalezionego w domu zasilacza - recykling hah 😄 ) -przewody silikonowe do łączenia wyjść arduino z wejściami sterowania modułu z przekaźnikami -listwa zaciskowa też w sumie dowolna (także wykorzystana jakaś znaleziona w odmętach szafek) -no i puszka natynkowa do której wszystko się zmieści 😄 - wykorzystałem jeszcze także diodę która zapewniała niewielki spadek napięcia z zasilacza ( zasilacz miał 5,2V i układ miał problem z normalną pracą, musiał być zasilany lekko poniżej 5v) Najpierw skonfigurowałem na platformie https://remoteme.org/ połączenie dzięki któremu będę mógł zarządzać zmiennymi ( w tym przypadku odpowiadającymi za zapalanie się poszczególnych lamp w pokoju za pomocą przekaźników). Platformę te wykorzystywałem już wcześniej do projektów także wiedziałem, że jest to coś czego potrzebuję. Zacząłem od dodania nowego urządzenia. Na kolejnych zrzutach ekranu pokażę jak przejść przez proces dodawania/konfiguracji urządzenia. Następnie przechodzimy do zakładki Variables i tworzymy nową zmienną za pomocą "Add" w prawym górnym rogu. Można stworzyć tyle zmiennych ile będzie potrzebnych - w moim przypadku są to 4 zmienne( 4 przekaźniki, oraz 1 dodatkowa do sterowania wszystkimi na raz) Następnie wracamy do zakładki devices aby dodać zmienne do naszego urządzenia(połączyć je) i wygenerować kod. Dodajemy zmienne które mają sterować wyjściami w danym urządzeniu. Łączymy oczywiście urządzenie do naszej sieci domowej w której będzie odbywać się sterowanie i generujemy nowy token. Tutaj możemy pobrać kod, w tym wypadku używać będę płytki nodemcu(wemos) więc jest to na bazie esp8266. Tutaj jest kod wygenerowany przez stronę- bez żadnych modyfikacji SmartLight-download.rar Tutaj kod po lekkich modyfikacjach (dodanie zmiennych pomocniczych/zadeklarowanie wyjść) SmartLights.rar Taki kod wgrałem na płytkę nodemcu Następnie jak połączyć remote me z google assistant zapytacie ? No ja użyłem do tego https://ifttt.com/ Zaczynamy od tworzenia nowego appletu If - czyli czym będziemy wyzwalać działanie. W tym przypadku będzie to komenda otrzymana przez google assistent. Wpisujemy na jaką komendę ma oczekiwać i co ma odpowiedzieć po jej rozpoznaniu. Teraz wybierzemy co ma się stać gdy rozpozna komendę. W tym momencie musimy wrócić na chwilę do remote me, aby wygenerować link który będzie wyzwalać ifttt Zaznaczamy metodę post następnie kopiujemy link i wklejamy w odpowiednie pole w ifttt Teraz trochę o hardware. To jest moduł przekaźnika i przymocowane do niego nodemcu. Połączenia są następujące Nodemcu moduł D0-> IN1 D1-> IN2 D2-> IN3 D3-> IN4 VIN->VCC GND->GND Moduł razem z zasilaczem przymocowałem do płytki miedzianej aby łatwiej było wszystko montować( w moim przypadku przykręcić do drewnianej belki) Tak się prezentuje zmontowany i zamontowany moduł 😄 Połączenie jest zrobione tak, że w przypadku problemów z internetem/układem dalej można wł/wył światło za pomocą przełącznika na ścianie. Tutaj jeszcze filmik z testowania Mam nadzieję, że ten opis komuś się przyda 😄 Jeżeli czegoś zapomniałem, coś jest źle/za mało wyjaśnione to chętnie poprawię i coś dodam !
  13. Dzień dobry, W swoim pierwszym wpisie, chciałbym przedstawić własną wersję sterownika światła sterowanego za pomocą aplikacji na androida. Sam sterownik składa się z: NodeMCU MODUŁ 2 PRZEKAŹNIKÓW 5V Dwóch przycisków Wspomagając się powyższym rysunkiem, zmontowałem całość korzystając z płytki uniwersalnej. NodeMCU łączy się z lokalną siecią WiFi. Do sterowania wykorzystuje bibliotekę aREST udostępniając funkcje on, off i get przyjmujące jako parametr numer przekaźnika. Kod w wersji skróconej i zdjęcia urządzenia do podejrzenia poniżej. // Rest and esp library #include <ESP8266WiFi.h> #include <aREST.h> // WiFi parameters const char* ssid = "ssid"; const char* password = "password"; const int SWITCH1 = 5; const int SWITCH2 = 16; const int RELAY1 = 12; const int RELAY2 = 14; const unsigned long INTERVAL = 500; bool relay1State = LOW; bool relay2State = LOW; bool switch1State = LOW; bool switch2State = LOW; unsigned long currentMillis = 0; unsigned long switch1Millis = 0; unsigned long switch2Millis = 0; aREST rest = aREST(); const int LISTEN_PORT = 80; WiFiServer server(LISTEN_PORT); int onControl(String value); int offControl(String value); int getControl(String value); void setup(void) { rest.set_id("10"); rest.set_name("Light Switches"); Serial.begin(115200); pinMode(SWITCH1, INPUT); pinMode(SWITCH2, INPUT); pinMode(RELAY1, OUTPUT); pinMode(RELAY2, OUTPUT); digitalWrite(RELAY1, !relay1State); digitalWrite(RELAY2, !relay2State); rest.variable("light1", &relay1State); rest.variable("light2", &relay2State); rest.function("on", onControl); rest.function("off", offControl); rest.function("get", getControl); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("Light Switches connected"); server.begin(); Serial.println("Light Switches address"); Serial.println(WiFi.localIP()); } void loop() { currentMillis = millis(); if (currentMillis - switch1Millis >= INTERVAL && digitalRead(SWITCH1)) { switch1State = !switch1State; if(switch1State==HIGH){ digitalWrite(RELAY1, LOW); relay1State = !LOW; } if(switch1State==LOW){ digitalWrite(RELAY1,HIGH ); relay1State = !HIGH; } switch1Millis = currentMillis; } if (currentMillis - switch2Millis >= INTERVAL && digitalRead(SWITCH2)) { switch2State = !switch2State; if(switch2State==HIGH){ digitalWrite(RELAY2, LOW); relay2State = !LOW; } if(switch2State==LOW){ digitalWrite(RELAY2,HIGH); relay2State = !HIGH; } switch2Millis = currentMillis; } WiFiClient client = server.available(); if (!client) { return; } while (!client.available()) { delay(10); } rest.handle(client); } int onControl(String value) { if (value=="0") { digitalWrite(RELAY1, LOW); relay1State = !LOW; switch1State = HIGH; return 0; } if (value=="1") { digitalWrite(RELAY2, LOW); relay2State = !LOW; switch2State = HIGH; return 0; } return -100; } int offControl(String value) { if (value=="0") { digitalWrite(RELAY1, HIGH); relay1State = !HIGH; switch1State = LOW; return 0; } if (value=="1") { digitalWrite(RELAY2, HIGH); relay2State = !HIGH; switch2State = LOW; return 0; } return -100; } int getControl(String value) { if (value=="0") { return relay1State; } if (value=="1") { return relay2State; } return -100; } Aplikacja składa się z czterech ekranów. Pierwszy to przełączanie żarówki przez przytrzymanie odpowiadającego jej pola na ekranie. Dwa kolejne odpowiadają za włącznie i wyłączenie wszystkich żarówek jednocześnie. Ostatni odpowiada za dodawanie i usuwanie połączeń, czyli wprowadzamy nazwę, adres urządzenia i numer przełącznika. Problemy i dalszy rozwój Jestem zadowolony z działania sterownika jedyny problem, jaki zaobserwowałem to przełączanie się przekaźników podczas podłączania innych urządzeń do przedłużacza, do którego jest wpięty. W aplikacji do bieżącej funkcjonalności chcę dodać włącznie wcześniej zdefiniowanych grup żarówek. I dodać nową funkcjonalności w postaci sterowania taśmami led, możliwość włączenia komputera, a także zakładkę gromadzącą wartości z czujników. Cały kod i aplikacja znajduje się w moim repozytorium
  14. Telegram – darmowy, niekomercyjny bazujący na chmurze obliczeniowej komunikator internetowy. Użytkownicy mogą wysyłać wiadomości, zdjęcia, filmy, naklejki, nagrania oraz pliki różnego typu. Internet rzeczy od dawna wkracza w codzienne życie - inteligentny dom, inteligentny telewizor, a nawet inteligentny czajnik. Podstawą naszych projektów będzie płyta NodeMCU z wbudowanym układem ESP. Jak również małe rzeczy, które ma każdy inżynier elektronik: diody LED, przewody łączące, płytka prototypowa i przewód microUSB do flashowania i zasilania płyty. Schemat podłączenia: Krótka noga diody LED w ziemi, długa szpilka D3. Nie zapominaj, że płyta ma kilka cech w kategorii pinów, więc dołączam pinout. Dodanie nodemcu do Arduino IDE (połączenie pakietu esp8266). Instalacja pakietu ESP8266 będzie konieczna, abyśmy mogli pracować z nodemcu w IDE Arduino. Przed zainstalowaniem pakietu upewnij się, że nie masz zainstalowanej innej wersji. W przeciwnym razie pamiętaj o usunięciu go przed instalacją. A następnie wykonaj proste czynności: Uruchom środowisko programistyczne - Arduino IDE Otwórz ustawienia W polu "Dodatkowe linki do Menedżera płyt" wklej link do pakietu esp8266 http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json Idź do Narzędzia - Płyty- Menedżera płyt Przewiń w dół. Znajdź esp8266. Wybierz wersję 2.3.0. Zainstaluj. W Narzędzia - zakładka wybierz nodemcu. Reszta ustawień płyty zostanie ustawiona automatycznie. Zdjęcia są po-rosyjsku, ale interfejs jest taki sam. Zainstaluj bibliotekę telegram Aby nasz elektroniczny przyjaciel pojawił się na tablicy, będziesz potrzebować biblioteki https://github.com/CasaJasmina/TelegramBot-Library Tworzenie bota telegramu Nadszedł czas, aby stworzyć naszego cyfrowego przyjaciela, który będzie wiernie i łagodnie obsługiwał wszystkie nasze zespoły. Otwórz bot @BotFather. Aby utworzyć nowego bota write /newbot. Postępuj zgodnie z instrukcjami, wybierz nazwę i zaloguj się na nią, a na koniec skopiuj token bota, będziesz potrzebować go podczas flashowania tablicy nodemcu. Oprogramowanie Łączymy potrzebne biblioteki. #include <ESP8266WiFi.h> #include <WiFiClientSecure.h> #include <TelegramBot.h> Wskazujemy pin diody, wifi sieć token bota. #define LED 0 //D3 const char* ssid = "ssid"; const char* password = "password"; const char BotToken[] = "token:token"; Wskazujemy bota WiFiClientSecure net_ssl; TelegramBot bot (BotToken, net_ssl); W void setup ustawiamy szybkość komunikacji z komputerem, spróbujemy połączyć się z Wi-Fi, wpisujemy adres IP urządzenia w sieci, uruchamiamy bota i konfigurujemy pinmode dla diody LED. void setup() { Serial.begin(9600); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println(WiFi.localIP()); bot.begin(); pinMode(LED, OUTPUT); } Patrzymy do void loop. Sprawdzamy, czy mamy nowe wiadomości. message m = bot.getUpdates(); Czytamy wiadomość i robimy odpowiednie żądanie. if (m.text.equals("on")){ digitalWrite(LED, HIGH); bot.sendMessage(m.chat_id, "The Led 1 is now ON"); }else if (m.text.equals("off")){ digitalWrite(LED, LOW); bot.sendMessage(m.chat_id, "The Led 1 is now OFF"); } Szkic: https://drive.google.com/open?id=1QAi0px4sz3RTfgBjZFvs_rP2KBU84z7O Wgrywamy szkic do płyty. Testujemy Gdy, szkic jest na płycie i obwód jest podłączony do źródła prądu, możemy przetestować urządzenie. Wyślijmy “on” lub “off” aby włączyć lub wyłączyć diodę. Druga część artykułu to prototyp domu inteligentnego. Przed rozpoczęciem montażu określmy funkcje tego urządzenia: Kontrola obciążenia AC Sterowanie taśmą LED RGB Informacje o wizycie w lokalu Ekran z notatkami i czasem Informacje o temperaturze, ciśnieniu i wilgotności gleby Pierwszym krokiem w montażu urządzenia wieloskładnikowego będzie praca z chłodzeniem, prototypowaniem i zasilaniem. Zalecam zainstalowanie na chipie radiatore esp12, ponieważ sam układ na płycie nodemcu nagrzewa się nawet bez podłączonych czujników. Planujemy podłączyć dużą liczbę urządzeń I / O i jednocześnie przesyłać dane przez Internet, co bez dodatkowego chłodzenia doprowadzi do awarii. Grzejnik jest mocowany w najprostszy możliwy sposób za pomocą dwustronnej taśmy przewodzącej ciepło (można ją kupić od Chińczyków za 2,5 USD). Jako grzejnik można użyć dowolnego profilu aluminiowego. 2) Dla wygody podłączenia płytki i urządzeń, proponuję podzielić standardową płytkę na części. Bierzemy jedną dużą płytkę i dzielimy ją na pół. Z jednej strony oderwij linię energetyczną. Bierzemy każdy kawałek sklejki i przyklejamy uzyskane części, jak sobie życzysz, ale radzę skupić się na drutach łączących. Dla wygody możesz podpisać linię energetyczną markerem. Najważniejszą częścią przygotowania do montażu - jest zasilianie. Powinno wystarczyć, więc bierzemy ładowarkę na 2 ampery. Wtyczka zasilania powinna być tak umieszczona, abyś mógł wygodnie pracować. Najpierw obróć niepotrzebny przewód USB do zasilacza. Z jednej strony powinna być wtyczka USB, az drugiej dwie nogi z 5 V i ziemią. Dołącz go do linii 5V. OD niej podłącz nodemcu za pomocą czarnego i czerwonego przewodów. 3.3V weźmiemy od płyty, bo ona ma przetwornik napięcia ams1117, który da 800mA, czego nam wystarczy. Weź od płytki 3,3 V i i podłączyć do odpowiedniej linii energetycznej za pomocą czarnych i pomarańczowych przewodów. Prace przygotowawcze zostały zakończone, oznacza to, że nadszedł czas, aby rozpocząć selekcję komponentów w celu rozwiązania tych celów. Zarządzanie gniazdami: aby kontrolować prąd przemienny, potrzebujemy relay. Zarządzanie paskiem LED RGB: aby kontrolować pasek LED, będziemy potrzebować 3 tranzystorów mosfet , 3 rezystorów o 100 om i 3 o 10 kom każdy. Fiksacja ruchu: aby fiksować ruch, potrzebujemy czujnika ruchu PIR. Informacje o temperaturze: do pomiaru temperatury użyjemy czujnika ds18b20. Informacje o ciśnieniu: do pomiaru ciśnienia użyjemy czujnika bmp180. Informacje o wilgotności gleby roślinnej: do pomiaru wilgotności gleby używamy odpowiedniego czujnika. Wyświetl czas i notatki: Aby wyświetlić czas i notatki, potrzebujesz ekranu LCD. Dodatkowe małe rzeczy Problem z breadboardem rozwiązany, ale do niego nadal potrzebne przewody tata-tata i tata-mama. Opornik 4,7 kΩ i pięć diody LED. Wybrano składniki. Łączmy je wszystkie razem. Przed montażem zwracam uwagę na to, że wszystkie moduły będą zasilane 5 woltami, z wyjątkiem ds18b20. Zasilanie uziemienia i taśmy LED muszą być podłączone. Koniecznie sprawdź adres ekranu i2c i adresy czujników temperatury. Oryginalny schemat i obrazek. Czas rzucić szkic na mikrokontroler. Zainstaluj wszystkie niezbędne biblioteki w IDE Arduino. Archiwum biblioteki można pobrać tutaj. Aby zainstalować, po prostu przenieś całą zawartość do folderu z bibliotekami. Uzupełnij adresy czujników temperatury, ekranu, pinów wszystkich modułów, ustawień sieci Wi-Fi, tokena bota. Szkic (nie zapomnij secrerts.h) Teraz, gdziekolwiek jesteś, możesz uzyskać informacje o swoim domu za pomocą telegram bota. Lista działań Relayon - włączyć rele Relayoff - wyłączyć rele Setnote text - zrobić notatkę na lcd Deletenote - usunąć notatkę RGB taśma Red - czerwony Green - zielony Blue - niebieski Off - wyłączyć taśmę Otrzymanie danych Pressure - ciśnienie Temp1 - temperatura pierwszego czujnika Temp2 - temperatura drugiego czujnika Plant - nawilżenie ziemi Last - ostatnia wizyta Timeon - czas uruchomienia systemu Łącząc odrobinę wyobraźni, możesz stworzyć wiele różnych ciekawych urządzeń, a Twój dom będzie naprawdę inteligentny. Na przykład kilka urządzeń z nodeMCU (i dowolną inną odpowiednią płytą) może wysyłać wiadomości o swoich wskaźnikach do telegramu-bota i reagować na te wskaźniki. Na przykład czujnik temperatury napisał do bota, że temperatura w pomieszczeniu wynosi 29 stopni Celsjusza. Urządzenie odpowiedzialne za włączenie wentylatora lub klimatyzatora rozważyło tę informację i zdecydowało włączyć lub wyłączyć chłodzenie, gdy stało się chłodniej. Jako zadanie domowe musisz wykonać automatyczną kontrolę odczytów z czujników, a w przypadku ważnych zdarzeń (gleba stała się sucha lub ktoś przyszedł do twojego domu), aby powiadomić cię przez telegram bota. Na wyniki muszą pisać w komentarzach. To bardzo interesujące, co zrobiłeś.
×
×
  • 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.