5 #include "pico/stdlib.h"
6 #include "hardware/uart.h"
11 #define PARITY UART_PARITY_NONE
13 #define UART_TX_PIN 16
14 #define UART_RX_PIN 17
16 #define MAX_COMMAND_LENGTH 32
24 void set_power_state(char relay, bool on) {
51 char command_string[MAX_COMMAND_LENGTH + 1];
52 command_string[0] = 0;
55 uart_init(UART_ID, 9600);
56 gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);
57 gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);
59 uart_set_hw_flow(UART_ID, false, false);
60 uart_set_format(UART_ID, DATA_BITS, STOP_BITS, PARITY);
67 gpio_set_dir(PINA, GPIO_OUT);
68 gpio_set_dir(PINB, GPIO_OUT);
69 gpio_set_dir(PINC, GPIO_OUT);
70 gpio_set_dir(PIND, GPIO_OUT);
81 read_word(UART_ID, word, 9, &eol);
83 if (strcmp(word, "on") == 0) {
85 uart_puts(UART_ID, "Missing argument: n");
88 relay = uart_getc(UART_ID);
90 set_power_state(relay, true);
91 } else if (strcmp(word, "off") == 0) {
93 uart_puts(UART_ID, "Missing argument: n");
96 relay = uart_getc(UART_ID);
98 set_power_state(relay, false);
99 } else if (strcmp(word, "temps") == 0) {
100 uart_puts(UART_ID, "Not implemented yet");