Skocz do zawartości

Stacja pogodowa Arduino jak przesłac dane za pomocą NodeMCU wifi ESP82


Mrpatryk

Pomocna odpowiedź

Witam , zbudowałem prostą stację pogodowa (zegar, data, pomiar cisnienia,wilgotnosci,,temperatury, oraz odczyt z sensora wody) do tego mam wyświetlacz 4x20, chciałbym wszystko umieścić w bazie danych mysql. Wszystko jest zbudowane na arduino nano V3. Pytanie następujące. Jak podłączyć do arduino moduł  WIFI ESP8266 NODEmcu V3 tak żeby nie wgrywać w niego programu aby wszystko zostało na arduino nano a moduł służył tylko do wysyłania danych do mysql.?? Jest taka możliwość? Jak już niektórzy z forum wiedza, ogarnąłem przesyłanie do bazy za pomocą samego modułu danych 🙂 Zalezy mi teraz tylko na przesłaniu danych bez przenoszenia programu na moduł. Pod które piny można się wpiąć by przesłać te dane ? 

ktoś ma jakiś pomysł ? Można by było po rx,tx się podłączyć ? i przesyłać po porcie szeregowym ? ale w tedy trzeba by było odbierać i dzielić jakoś odebrane bity jeśli dobrze rozumiem.

zaś wolał bym jakoś inaczej tego dokonać by arduino odczytywało dane a esp wysyłał je do mysql . bez konieczności przesyłania danych serialportem,

Link do komentarza
Share on other sites

Możesz użyć UART, niestety nano ma tylko 1, dlatego testowanie będzie utrudnione, bo ten jest używany do wgrywania szkiców i podglądu co się dzieje w procku. Jakbyś użył np. Arduino Micro, to ten ma do komunikacji i wgrywania UART na USB, a drugi jako Serial1 na pinach TX/RX, byłoby łatwiej. Wysyłać dane na serial jest prosto, trudniej odbierać i obrabiać. Tego musisz się nauczyć. W przykładach Arduino jest serial event. To czy użyjesz ESP-ESP, NANO-UNO, czy ESP-NANO jest obojętne, każdy zadziała tak samo. Można alternatywnie użyć softowego UART po stronie NANO, I2C, SPI, czy zupełnie wymyślonego przez Ciebie. Powodzenia.

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

Nie szukaj nic o połączeniu ESP-Arduino tylko o komunikacji między dwoma Arduino, napisałem Ci przecież, że jaki moduł to nie ma znaczenia, Arduino załatwia podstawowe przekazanie danych po stronie sprzętowej niezależnie czy używasz UNO, ESP,  ARM,  musisz nauczyć odbierać i obrabiać dane przylatujące na UART, czyli parsowania: 

Weźmiesz sobie jakikolwiek projekt wykorzystujący UART i przyjrzysz się szczególnie odbieraniu danych i masz tutorial - coś z GSM, BT, GPS, również ESP jako modem WIFI.

Link do komentarza
Share on other sites

W ramach przypomnienia: w celu uzyskania wielkiej litery najlepiej na klawiaturze wcisnąć dany klawisz w połączeniu z Shift (można również stosować Caps Lock, ale to mniej wygodne rozwiązanie). Dodatkowo warto pamiętać, że przed znakami przecinka i kropki nie stawiamy spacji (sytuacja ma się identycznie w przypadku znaków zapytania oraz wykrzykników). Naprawdę warto poświecić te 5 sekund, aby post był napisany poprawnie - aż chce się wtedy odpowiadać i pomagać 😉

Link do komentarza
Share on other sites

Sorka Admin 🙂 . A więc tak, udało się przesłać dane za pomocą portu szeregowego, po tx i rx. Natomiast problem mam taki ze co nowe odświeżanie Loop'a na NodeMCU wifi ESP82 wyświetla wartości po 4/5 linijek, dubluje, krzaczy, itp. Problem jest z odebraniem czy z wysyłaniem ? Na arduino wysyłam niecałą jedną linijkę liczb oraz jedną nazwę... Jest możliwość ze NodeMCU wyświetla tak jak by kilka linijek które siedzą na serial porcie ? 

Dobra, udało się uzyskać liczby z arduino nano  i teraz borykam się z problemem podzielenia stringa  tak by odczytać te liczby i zapisać do zmiennych int.

Link do komentarza
Share on other sites

1 godzinę temu, Mrpatryk napisał:

Jakiej lini ? którego kodu ? 

No właśnie - to prawdopodobnie była ironia ze strony @kaczakat, który chciał Ci delikatnie zasugerować, że jak pytasz o to gdzie leży problem z Twoim programem to warto byłoby ten program pokazać innym... Jak inaczej ktoś ma Ci doradzić? 😉

A jak już się tak "czepiam pisowni" to... spacje przed znakami zapytania to też "złoooo". Nie zwracam uwagi złośliwie, zwyczajnie zastanawia mnie dlaczego sporo osób popełnia taki błąd. Przecież podczas "ręcznego pisania" nie robi się takiego odstępu 😉

Link do komentarza
Share on other sites


#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266WiFi.h>
const char* ssid= "********";
const char* password = "********";
const int httpPort = 80;
const char* host = "***************"; //IP serwera z MySQL

  String incomingByte =" ";

void setup() {

 Serial.begin(9600);
 WiFi.begin(ssid, password);  
 while (WiFi.status() != WL_CONNECTED) {
   delay(500);
   Serial.print(".");
 }
Serial.println(WiFi.localIP());
}
void loop() {
  Serial.flush();
 if ( Serial.available ( ) > 0 ) { 
 
 incomingByte = Serial.readStringUntil('.') ; 


//Serial . print ( "Otrzymałem:" ) ; 
Serial . println ( incomingByte ) ; 

} 
 


  WiFiClient client; //wysylanie do PHP i MySQL
  if (!client.connect(host, httpPort)) {
   Serial.println("connection failed");
   
 }
 else
 {
//String url = "/esp.php?";
  // url += "id=1"; 
  // url += "&t="; 

  // url += "&h="; 

// client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n");  
 }
 delay(1000);               
}

taki kodzik mam na nodemcu-wifi-esp8266, wszystko jest w jednym ciągu znaków . Jak podzielić ten ciąg i przypisać do danych zmiennych ? 

Link do komentarza
Share on other sites

Nie, używałem swojej kuli. W 35 linii powinna być obsługa czas oparta chociaż o millis(), wywal delay(). Jak używasz flush() to jest to raczej używane do upewnienia się, że zanim wykonasz kolejny krok bufor nadawczy zostanie wysłany zanim np. zanim uśpisz urządzenie. Właśnie na tym polega problem odbioru, do niego powinieneś być gotowy zawsze. Nie zajrzałeś do przykładu z serial event. Widać, że kursu Arduino co najmniej nie zakończyłeś z sukcesem.  A ktoś się napracował, by nie było pierwszych 100 pytań o rzeczy oczywiste. Ewentualnie przejdź go jeszcze raz: https://forbot.pl/blog/kurs-arduino-ii-wielozadaniowosc-opoznienia-z-millis-id18418.

@deshipu, a co do offtopu to w książkach przynajmniej pilnują by nie zaczynać nowej linii od znaku  ! lub ? z poprzedniego zdania. A teraz zdarza w artykułach elektronicznych, że nad tym już nie panują i wychodzi im to bokiem - robią jednocześnie sierotkę/wdowę ze znaku interpunkcyjnego.

 

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.