emiks Napisano Marzec 13, 2018 Udostępnij Napisano Marzec 13, 2018 Witam. Chciałbym edytować zmienne za pomocą SerialPort i nie wiem jak się do tego zabrać Arduino Mega jest spięte z Raspberry. Pi służy jako serwer MySQL do przechowywania danych z czujników. Skrypt w Pythonie na Pi pobiera dane z czujników poprzez Serial Port i zapisuje je w bazie. Teraz chciałbym pobrać z bazy : byte godzina_ON = 00; // godzina uruchomienia przekaznika byte minuta_ON = 01; // miniuta uruchomienia przekaznika byte godzina_OFF = 23; // godzina wylaczenia przekaznika byte minuta_OFF = 45; // minuta wylaczenia przekaznika i wysłać poprzez Uart do Arduino w którym już takie zmienne są zadeklarowane. Mógłby mi ktoś podpowiedzieć jak zrealizować powyższe założenie. Cytuj Link do komentarza Share on other sites More sharing options...
Jamik Marzec 13, 2018 Udostępnij Marzec 13, 2018 Jeśli problemem jest odbiór danych przez Arduino, to proponuję przeczytać to: https://forbot.pl/blog/kurs-arduino-uart-komunikacja-z-komputerem-pc-zmienne-id3836 1 Cytuj Link do komentarza Share on other sites More sharing options...
emiks Marzec 13, 2018 Autor tematu Udostępnij Marzec 13, 2018 Dokładnie chodzi mi o transmisje dwukierunkową zawartą w tym artykule z tym że tam jest opisane : if(Serial.available() > 0) { //Czy Arduino odebrano dane //Jeśli tak, to odczytujemy je do znaku końca linii i zapisz w zmiennej odebraneDane odebraneDane = Serial.readStringUntil('\n'); if (odebraneDane == "zielona") { //Jeśli odebrano słowo "zielona" digitalWrite(zielona, HIGH); //To włączamy diodę zieloną delay(1000); digitalWrite(zielona, LOW); } if (odebraneDane == "czerwona") { //Jeśli odebrano słowo "czerwona" digitalWrite(czerwona, HIGH); //To włączamy diodę czerwoną delay(1000); digitalWrite(czerwona, LOW); Taki przykład nie jest problemem nie mam pomysłu jak uruchomić/wyłączyć przekaźnik jak edytować te zmienne: byte godzina_ON = 00; // godzina uruchomienia przekaznika byte minuta_ON = 01; // miniuta uruchomienia przekaznika byte godzina_OFF = 23; // godzina wylaczenia przekaznika byte minuta_OFF = 45; // minuta wylaczenia przekaznika Cytuj Link do komentarza Share on other sites More sharing options...
Jamik Marzec 13, 2018 Udostępnij Marzec 13, 2018 Wysyłasz po jednym bajcie godzinę, minutę, godzinę, minutę, a w Arduino odczytujesz za pomocą void loop() { if (Serial.available() > 0) { godzina_ON = Serial.read(); minuta _ON = Serial.read(); godzina_OFF = Serial.read(); minuta_OFF = Serial.read(); } } Można też odczytać je inaczej, ale to jest chyba przejrzyste i proste. 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
kaczakat Marzec 25, 2018 Udostępnij Marzec 25, 2018 To co napisał Jamik oczywiście zadziała, ale jak chcesz uniknąć przypadkowych wartości to można zastosować coś takiego: https://www.forbot.pl/forum/topics74/komunikacja-kilka-liczb-rzeczywistych-arduino-pc-vt15338.htm?sid=3e2eb6499eea4ba3edef412099f8c66e - nie chcę przepisywać postu, problem był podobny. 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!