Skocz do zawartości

Edytowanie zmiennych za pomocą SerialPort


Pomocna odpowiedź

Napisano

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.

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 

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.

  • 2 tygodnie później...

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...