Skocz do zawartości

Pomocna odpowiedź

Dobra, ponownie pojawił się problem, którego nie jestem w stanie naprawić. Połączyłem ze sobą Arduino z NodeMCU (bez konwertera poziomów logicznych) i wszystko działało pięknie do pewnego czasu (mogłem postawić serwer i po prostu przesłać dane z Arduino do NodeMCU). Jednakże z niewiadomych mi przyczyn nagle wszystko przestało działać. Chciałem więc wrócić do podstaw i po prostu przesłać jakikolwiek tekst z Arduino do NodeMCU i już nie zadziałało. (Płytka była ustawiana jako Generic 8266 oraz NodeMCU 1.0 z polecenia @Belferek, bo powiem szczerze nie widziałem tej opcji, i na żadnej już mi nie działa nawet proste przesyłanie danych tak jak we wcześniejszym poście). 

Próbowałem zmontować nawet prosty konwerter poziomów logicznych z wykorzystaniem dzielnika napięć do którego łącznie wykorzystałem 6 rezystorów 1kR (po 3 na piny RX i TX) i również nic to nie pomogło. Sprawdziłem napięcia jakie wychodzą z Arduino po przejściu przez dzielnik napięć i dla pinu D6, który idzie do RX NodeMCU daje ok 3.3V, ale dla pinu D5 Arduino po przejściu przez dzielnik daje wartość około 0.12V. Sprawdziłem więc ile V da ten pin bez dzielnika i daje w granicach 4.7V, a D6 daje około 5V (Za żadne skarby nie wiem czemu daje taką niską wartość).  

Link to post
Share on other sites

Udało mi się naprawić. Spróbowałem połączyć Arduino i NodeMCU trochę innym sposobem niż podałem powyżej. Znalazłem poradnik i go wykorzystałem. Dla potomnych. Schemat:

image.thumb.png.b88b9ad94b1efac4bdb442b1aa396557.png

Kod Arduino: 

#include <SoftwareSerial.h>

SoftwareSerial espSerial(5, 6);
String str;
int count = 0;

void setup(){
  Serial.begin(9600);
  espSerial.begin(9600);
  delay(2000);
}
void loop()
{
  count++;
  str = String("coming from arduino: ")+String(count);
  espSerial.write(count);
  delay(1000);
}

Kod NodeMCU:

#include <SoftwareSerial.h>
SoftwareSerial Arduino(D6, D5);

int count;
void setup() {
  Serial.begin(9600);
  Arduino.begin(9600);
}
void loop() { // run over and over
  if (Arduino.available() > 0) {
    count = Arduino.read();
  Serial.println(count);
    
  }
}

PS: Hindusi są dobrzy w te klocki 😅. Większość poradników stworzona przez nich. 

Link to post
Share on other sites
8 godzin temu, Krst0 napisał:

PS: Hindusi są dobrzy w te klocki 😅. Większość poradników stworzona przez nich.

Hindusi są dobrzy w te i inne klocki od dawna, tylko dopiero ostatnio zasypali YT tutorialami 😉 jak przełkniesz angielski akcent, to można znaleźć naprawdę sporo wnikliwych materiałów.

Link to post
Share on other sites
16 minut temu, Belferek napisał:

Przeczytaj ciekawy artykuł: zobacz

Akurat rozumiem o co chodzi z tą konwersją stanów logicznych, jednakże zastanawia mnie multum tutoriali bazujących i pracujących bez tego konwertera. Zamówić go i tak zamówię, żeby było wedle sztuki. 😉

Link to post
Share on other sites

Po pierwsze najgorszym rozwiązaniem jest zastosowanie potencjometru.Potencjometr to taki element w którym szczególnie uwidaczniają się wady rezystorów.Starzenie się elementu jest bardzo szybkie co powoduje zmiany rezystancji.W związku z tym twoja kalibracja jest dobra na dość krótki czas by nie powiedzieć na bardzo krótki czas.Przewożenie skalibrowanego czujnika spowoduje  jego dekalibrację.Po drugie zapoznaj się jakie zjawisko wykorzystuje się w takim czujniku. Na egzaminie ktoś zada z głupia frant pytanie o zjawisko i co wtedy.Jak już będziesz wiedział jakie zjawisko jest wykorzystywane to dowiesz się,że nie tylko te gazy wymienione w fig.3 będą oddziaływać na czujnik.Musisz wiedzieć co mierzy czujnik a mierzy sumę wszystkich gazów będących w powietrzu.Zadaj sobie pytanie jaka będzie wartość odczytu jeśli wilgotność powietrza będzie znacznie wyższa niż 65% albo znacznie niższa.Na tym forum już komuś doradzałem co ma zrobić i wystarczy odnaleźć moje posty w tej sprawie(czujnik MQ135). Do tego masz napisać zapewne program obsługujący czujnik oraz użytkownika.Przy odrobinie szczęścia myślowego(możesz przejść w stan iluminacji) możesz dowiedzieć się na jak niskim poziomie rozwoju jest ziemska cywilizacja. 

Link to post
Share on other sites
1 godzinę temu, szymonw napisał:

Po pierwsze najgorszym rozwiązaniem jest zastosowanie potencjometru.Potencjometr to taki element w którym szczególnie uwidaczniają się wady rezystorów.Starzenie się elementu jest bardzo szybkie co powoduje zmiany rezystancji.W związku z tym twoja kalibracja jest dobra na dość krótki czas by nie powiedzieć na bardzo krótki czas.Przewożenie skalibrowanego czujnika spowoduje  jego dekalibrację.Po drugie zapoznaj się jakie zjawisko wykorzystuje się w takim czujniku. Na egzaminie ktoś zada z głupia frant pytanie o zjawisko i co wtedy.Jak już będziesz wiedział jakie zjawisko jest wykorzystywane to dowiesz się,że nie tylko te gazy wymienione w fig.3 będą oddziaływać na czujnik.Musisz wiedzieć co mierzy czujnik a mierzy sumę wszystkich gazów będących w powietrzu.Zadaj sobie pytanie jaka będzie wartość odczytu jeśli wilgotność powietrza będzie znacznie wyższa niż 65% albo znacznie niższa.Na tym forum już komuś doradzałem co ma zrobić i wystarczy odnaleźć moje posty w tej sprawie(czujnik MQ135). Do tego masz napisać zapewne program obsługujący czujnik oraz użytkownika.Przy odrobinie szczęścia myślowego(możesz przejść w stan iluminacji) możesz dowiedzieć się na jak niskim poziomie rozwoju jest ziemska cywilizacja. 

Jeśli chodzi o rezystor i potencjometr to zapewne masz rację, dlatego zdecydowałem się dodatkowo na zakup konwertera poziomów logicznych. O zjawisko jakie zachodzi to ja wiem na czym to polega, bardzo dużo o tym czytałem, ale mimo wszystko raczej nie zdecyduję na uwzględnianie wilgotności, bo w samej pracy piszę o tym, że projekt ten należy traktować w kategorii ciekawostki i wyników nie należy traktować jako wyrocznię ze względu na reaktywność na inne gazy. Pisałem o tym zresztą w nieco wcześniejszych postach, że wynik dot. stężenia CO może być zakłamany, bo ktoś na czujnik podał przeogromne stężenia gazu z zapalniczki (tak to ja wcześniej 🤡).

Link to post
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

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.