FlyingDutch Maj 16, 2018 Udostępnij Maj 16, 2018 Ok, dzięki, nie zacieły się. Tylko chodzi o to, że program piszę na adruino, a ESP wykorzystuje tylko jako wifi. Komendy AT. nie mogę znaleźć przykłady jak takiego stringa( strone html) wysłać. Cześć, ja bym napisał "web server" (w Arduino) na ESP8266, a UART'a użył do komunikacji między tym serwerem a ATmegą (do wysyłania komend odebranych przez stronę WWW na tym serwerze). Pozdrawiam Cytuj Link do komentarza Share on other sites More sharing options...
zioloiso Maj 16, 2018 Autor tematu Udostępnij Maj 16, 2018 OK, postawiłem stronę w html bezpośrednio na ESP, działa w przeglądarce, teraz potrzebuje info jak przesłać kilka zmienny z arduino do ESP przez uart. Strona ma tylko wyświetlać info, nic nie sterować. 1 Cytuj Link do komentarza Share on other sites More sharing options...
FlyingDutch Maj 16, 2018 Udostępnij Maj 16, 2018 OK, postawiłem stronę w html bezpośrednio na ESP, działa w przeglądarce, teraz potrzebuje info jak przesłać kilka zmienny z arduino do ESP przez uart. Strona ma tylko wyświetlać info, nic nie sterować. Gratulacje, zrobione samemu lepiej smakuje 😉 W tych linkach znajdziesz przykłady kodu do takiej komunikacji: https://forum.arduino.cc/index.php?topic=441146.0 https://forum.arduino.cc/index.php?topic=480247.0 https://forum.arduino.cc/index.php?topic=441146.0 http://randomnerdtutorials.com/sending-data-from-an-arduino-to-the-esp8266-via-serial/ https://arduino.stackexchange.com/questions/40116/serial-communication-between-esp8266-and-arduino-uno?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa 1 Cytuj Link do komentarza Share on other sites More sharing options...
zioloiso Maj 18, 2018 Autor tematu Udostępnij Maj 18, 2018 Odpoczywam chwilowo od komunikacja, ponieważ przyszła tarcza do serw i odziwo wsadziłem ją w mega + zasilanie i działa 🙂 Nie musiałem się umęczyć. Czekam na żyroskop, że sprawdzić. Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
FlyingDutch Maj 18, 2018 Udostępnij Maj 18, 2018 Odpoczywam chwilowo od komunikacja, ponieważ przyszła tarcza do serw i odziwo wsadziłem ją w mega + zasilanie i działa 🙂 Nie musiałem się umęczyć. Czekam na żyroskop, że sprawdzić. Cześć, z żyroskopem będzie najtrudniejsza część. Czy zamierzasz użyć filtru Kalmana, tak jak opisywało kilku kolegów przed Tobą na forum. Patrz linki: https://www.forbot.pl/forum/topics50/mpu6050-calkowanie-sygnalu-zyroskopu-vt15207.htm https://www.forbot.pl/forum/topics50/filtr-kalmana-model-stanowy-dla-pomiaru-zyroskop-magnetometr-vt14669.htm A tutaj teoria: https://forbot.pl/blog/filtr-kalmana-w-praktyce-3-przyklady-z-kodami-id7342 https://forbot.pl/blog/filtr-kalmana-teorii-praktyki-1-id2855 Pozdrawiam Cytuj Link do komentarza Share on other sites More sharing options...
zioloiso Maj 19, 2018 Autor tematu Udostępnij Maj 19, 2018 Witam, żyroskop narazie będę wykorzystywał tylko do zwalniania modelu i do skręcania o określoną ilość stopni. Ruszyłem komunikacje. Na str wyświetlam dane ze struct 😃 wysyłam dane z atmega do esp, ale nie pokrywają się, jakby się dane przesuwały. jakaś porada? ATMEga: //komunikacja Arduino z ESP8266 struct Dane { float x; float y; float z; float wilgotnosc; float temperatura; int air; int gaz; int szybkosc; bool alarm; }; Dane dane; //timery #include <Timers.h> Timer ms25; Timer ms100; Timer ms1000; void setup() { //uart Serial.begin(115200); Serial3.begin(115200); //timery ms25.begin( 25 ); ms100.begin( 100 ); ms1000.begin( 1000 ); } void loop() { //timer 1s if( ms1000.available() ) { dane.x = 1; dane.y = 1; dane.z = 1; dane.wilgotnosc = 60; dane.temperatura = 22; dane.air = 20; dane.gaz = 30; dane.szybkosc = 120; dane.alarm = false; const char* wys = (const char*) &dane; for( int i = 0; i < sizeof(dane); i++ ) Serial3.print( *wys++); Serial3.println(); ms1000.restart(); } } ESP: #include <ESP8266WiFi.h> #include <ESP8266WebServer.h> const char* ssid = "asd"; // SSID sieci WiFi const char* password = "12345678"; // hasło do WiFi //numer portu serwera www const unsigned int port = 80; // ustaw port serwera ESP8266WebServer server(port); //komunikacja Arduino z ESP8266 struct Dane { float x; float y; float z; float wilgotnosc; float temperatura; int air; int gaz; int szybkosc; bool alarm; }; Dane dane; void setup() { //ustaw szybkość portu szeregowego Serial.begin(115200); //włącz WiFi WiFi.mode(WIFI_STA); //tryb STATION WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { // czekaj na połączenie z WiFi delay(500); Serial.print("."); } //wypisz przydzioleny IP i MAC dla tego urządzenia Serial.println(""); Serial.println("WiFi połączone"); Serial.println(WiFi.localIP()); Serial.println(WiFi.macAddress()); //uruchom serwery www server_on(); } void loop(){ server.handleClient(); if (Serial.available() > sizeof( dane )) { char* odbr = ( char* ) &dane; for (int i = 0; i < sizeof( dane ); i++) *odbr++ = Serial.read(); Serial.read(); } } String Head_HTML() { String head = "<!DOCTYPE html>\n"; head += "<html>"; head += "<head>"; head += "<title>STRAZNIK_DOMU</title>"; head += "<meta charset=\"utf-8\">"; head += "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">"; head += "<link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css\" >"; head += "</head>"; head += "<body style=\"text-align: center;color: white; background: black;font-size: 1.5em;\">\n"; return head; } String Foot_HTML() { String foot = ""; foot += "<p>zioloiso © 2018</p></td></tr>"; foot += "</body>\n"; foot += "</html>\n"; return foot; } String Page_HTML(){ String page = ""; page += "<p><h3><b>DANE ZE STRAZNIKA</b></h3></p></br>\n"; page += "<p><h3>Wilgotnosc: "+ String( dane.wilgotnosc ) +"%, Temperatura: "+ String( dane.temperatura ) +"*C </h3></p>\n"; page += "<p><h3>Zyroskop[ x = "+ String( dane.x ) +" | y = "+ String( dane.y ) +" | z = "+ String( dane.z ) +" ] </h3></p>\n"; page += "<p><h3>Stezenie gazow latwopalnych: "+ String( dane.gaz ) +"% </h3></p>\n"; page += "<p><h3>Stezenie substacji latwopalnych i dymu: "+ String( dane.air ) +"% </h3></p>\n"; page += "<p><h3>Predkosc poruszania straznika: "+ String( dane.air ) +"% </h3></p>\n"; page += "<p><h3> Alarm: "+ String( dane.alarm ) +" </h3></p></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br>\n"; return page; } String WebPage(){ return Head_HTML()+Page_HTML()+Foot_HTML(); } void server_on( void ){ //adres główny server.on("/", [](){ server.send(200, "text/html", WebPage()); }); server.begin(); // Start serwera www } Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Maj 19, 2018 Udostępnij Maj 19, 2018 Bo int intowi nierówny - w Arduino ma 16 bitów a w ESP 32 bity. Nie wiem jak z kompatybilnością floatów, ale zamiast int użyj int16_t albo int32_t. 1 Cytuj Link do komentarza Share on other sites More sharing options...
zioloiso Maj 19, 2018 Autor tematu Udostępnij Maj 19, 2018 Ok, poprawiłem strukturę, ale dane dalej się przesuwają ;/ O jak wywaliłem boola to jest ok 😃 Teraz czaje. Podobno warto jeszcze checksum zrobić. Cytuj Link do komentarza Share on other sites More sharing options...
zioloiso Czerwiec 23, 2018 Autor tematu Udostępnij Czerwiec 23, 2018 Zajmuje się aktualnie żyroskopem i niestety ma problemy z nim. Odczyt danych jest jakby z kosmosu, liczby skaczą nawet gdy się nie rusza. Korzystam z bibliotek p. Jarzębskiego. Spotkał się ktoś z takim problemem? Skaczą nawet po setkami. Zapisuje je to flotów. Interesuje mnie odczyt stopni od włączenia modelu(Żyroskopu). Cytuj Link do komentarza Share on other sites More sharing options...
zioloiso Czerwiec 30, 2018 Autor tematu Udostępnij Czerwiec 30, 2018 Doradzi ktoś jaką bibliotekę wybrać, gdy program wykonuje się np 2 ms lub 4 ms. Na gołym programie jest ok, ale gdy we wale do kodu wszystko co chce to zaczyna głupieć ten odczyt. Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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!