Ten dokument zawiera instrukcje dzięki którym możliwe jest uruchomienie programu na płytce ArduinoUno oraz opis użytego protokołu komunikacyjnego wraz z przykładami.
Komunikacja z komputerem odbywa się po przez wykorzystanie portu szeregowego, to obsługi protokołu można wykorzystać każdy terminal portu szeregowe. Dostępnę są takie rowziązania jak:
- ArduinoIDE - Serial Monitor
- Tera Term
- Putty
Prędkość tranmisji obecnie ustawiona jest na 115200 ale można ją zmienić w kodzie plik src/main.cpp
.
...
// the setup function runs once when you press reset or power the board
void setup()
{
// initialize serial communication at 115200 bits per second:
Serial.begin(115200);
while (!Serial)
{
; // wait for serial port to connect. Needed for native USB, on LEONARDO, MICRO, YUN, and other 32u4 based boards.
}
...
❗Każda z ramek ma taki sam format przesyłanych wiadomości. Wiadomość zaczyna się od znaku $<
następnym elementem jest typ obbieranej ramki obecnie są dwa:
DF
- ramka szybkaDP
- ramka pomp
Po typie ramki pojawia się znak ?
a następnie przekazywane są dane, zależności od typu ramki dane różnią się. Wiadomość zakończona jest znakami >&
.
Opis ramki szybkiej DF
$<DF?PH:{Czujnik PH},TEMP:{Czujnik temperatury},GS:{Czujnik tlenu}>&
Wartości otrzymywane z czujników ({Czujnik PH}
, {Czujnik temperatury}
,oraz {Czujnik tlenu}
)są podawane z dokładnością do trzeciego miejsca po przecinku.
Przykład:
$<DF?PH:1.736,TEMP,21.997,GS:1.210>&
Opis ramki szybkiej DP
$<DP?1:{Pompa 1},2:{Pompa 2},3:{Pompa 3},4:{Pompa 4}>&
- mininlana wartość - 0
- maksymalna wartość - 255
Wartości otrzymywane z pomp ({Pompa 1}
,{Pompa 2}
,{Pompa 3}
,oraz {Pompa 4}
), z zakresu 0-255
są tak naprawdę odzwierciedleniem wartości zadanych przez użytkownika, jest to ramka barzdziej pomocnicza.
Przykład:
$<DP?1:25,2:137,3:151,4:92>&
Komenda pomocy - zwaraca informacje o wszystkich dotępnych komendach przydatna do pobranie informacji w przypadku braku dostepu do dokumentacji
Przykład:
?
Odpowiedź:
Lista dostepnych komend
❗❗❗ Wszystkie wysyłane komendy funckyjne musi poprzedzać dodanie CMD
.
Komenda ramki szybkiej - wyłącza oraz włącza wysyłanie danych szybkich domyślnie włączona
CMD,DEBUG_FAST,{on/off}
Argument | Zakres wartości | Opis argumentów |
---|---|---|
{on/off} | 0 / 1 | 0 (wyłączone) lub 1 (włączone) |
Przykład:
CMD,DEBUG_FAST,1 // Włączenie ramki szybkiej
Komenda ramki szybkiej - wyłącza oraz włącza wysyłanie danych z pomp domyślnie włączona
CMD,DEBUG_PUMP,{on/off}
Argument | Zakres wartości | Opis argumentów |
---|---|---|
{on/off} | 0 / 1 | 0 (wyłączone) lub 1 (włączone) |
Przykład:
CMD,DEBUG_PUMP,0 // Wyłączenie ramki pomp
Komenda ustawia prędkość silnika pomp
Pompy mogą pracować w dwie strony, o kierunku ruchu decyduje wartość pompy może być dodatnia lub ujemna
CMD,SET_PUMP,{n},{x}
Argument | Zakres wartości | Opis argumentów |
---|---|---|
{n} | 0 - 3 | pompy są ponumerowane od 0 do 3 |
{x} | -255 - 255 | -255 (minimalna wartość), 0 (wyłączone), 255 (maksymalna wartość) |
Przykład:
CMD,SET_PUMP,2,-170 // Ustawienie pompy nr 2 na wartość -170
CMD,SET_PUMP,1,0 // Ustawienie pompy nr 1 na wartość 0 (wyłączenie)
CMD,SET_PUMP,3,255 // Ustawienie pompy nr 3 na wartość 255 (maksymalna wartość)
MIT