Отправка JSON строки с Python на Arduino

Решил написать программу которая из базы данных sqlite берет строку в виде {"comand": "forward", "go": 100} и в Python преобразует ее в json. После отправляет json строку в Serial port Ардуины, где в свою очередь проходит десериализация. Код для Ардуины и Python:

Python:

import serial
import json
import sqlite3
from sqlite3 import Error

ser = serial.Serial(port='COM7',baudrate=115200)
ser.flush()

VA_CMD_LIST_Answer ={
}
def viewA():
  CMD ={
  } 
  try:
      Сonnection = sqlite3.connect('CommandB.db')
      cursor = Сonnection.cursor()
      print("Подключен к SQLite")
      cursor.execute("SELECT only,name,answer FROM cmd;")
      all_results = cursor.fetchall()
      for x in all_results:
          if x[0] == 2:
              CMD[x[1]] = x[2]
      return CMD
  except sqlite3.Error as error:
      print("Ошибка при работе с SQLite", error)
  finally:
      if Сonnection:
          Сonnection.close()
          print("Соединение с SQLite закрыто")

VA_CMD_LIST_Answer.update(viewA())

for x in VA_CMD_LIST_Answer.items():
  print(x[1])
  ser.write(str.encode(json.dumps(x[1])))

Arduino:

#include <ArduinoJson.h>
StaticJsonDocument<256> com;
String comand = "";

void setup() {
  pinMode( 2 , OUTPUT );
  Serial.begin(115200);
}

void loop() {  
if (Serial.available())
  {
    DeserializationError error = deserializeJson(com, Serial);
    if (error) {
      Serial.print(F("deserializeJson() failed: "));
      Serial.println(error.f_str());
      digitalWrite( 2 , LOW );
    } 
    else
    { 
      comand = com["comand"].as<String>();
      digitalWrite( 2 , HIGH );
    }
  } 
}

Но сколько бы я не пытался отправлять разные строки с Python, лампочка на Arduino так и не загоралась. Тестил разные способы отправки json строки в порт, но итог был таким же. Может я неправильно использую pyserial и json, поэтому прошу помочь с этим.


Ответы (0 шт):