Skocz do zawartości
Ważne ogłoszenie » Kliknij i sprawdź informacje o nowym forum! Czytaj dalej... ×
emiks

Edytowanie zmiennych za pomocą SerialPort

Recommended Posts

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.

Udostępnij ten post


Link to post
Share on other sites

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 

Udostępnij ten post


Link to post
Share on other sites

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.

Udostępnij ten post


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

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

×