Srial.println and Python

Nik_Frol
Offline
Зарегистрирован: 28.10.2020

Приветствую, ардуинщики!

Есть целая проблема, мешающая реализации одной штуки.

Проблема в выводе значений в Serial.println

То есть в скетче ардуино есть две функции Serial.print которые отправляются на расбери и уже с помощью Python скрипта выводятся в консоль и сохраняются в файл.

Есть одно НО, ардуино отправляет их одновременно на пайтон и в консоли показывается значение той же переменной но не значения датчика света.

Если есть кто либо подскажите как можно сделать отправку по отдельности на пайтон? 

Python:

#!/usr/bin/env python3
import serial
import time
import datetime

f = open("/home/pi/Desktop/test.txt", "a")
if __name__ == '__main__':
ser = serial.Serial('/dev/ttyACM0', 9600)
ser.flush()

while True:

if ser.in_waiting > 0:
line = ser.readline().decode('CP866').rstrip()
timeAll = time.localtime(time.time())
if timeAll.tm_sec == 0 or timeAll.tm_sec == 10 or timeAll.tm_sec == 20 or timeAll.tm_sec == 30 or timeAll.tm_sec == 40 or timeAll.tm_sec == 50:
f = open("/home/pi/Desktop/testn2.txt", "a")

print("Light: " + (str(line)))
st = "Time: " + str(timeAll.tm_hour) + ":" + str(timeAll.tm_min) + ":" + str(timeAll.tm_sec)
print(st)

f.write("Light: ")
f.write(str(line))
f.write("\n")
f.write("Time: ")
f.write(str(timeAll.tm_hour))
f.write(":")
f.write(str(timeAll.tm_min))
f.write(":")
f.write(str(timeAll.tm_sec))
f.write("\n")

f.close()
time.sleep(1)

Arduino

int i = 542;
#define PIN_PHOTO_SENSOR A0
void setup() { 
  Serial.begin(9600);
}
void loop() {
  int value_light = analogRead(PIN_PHOTO_SENSOR);
  Serial.println(value_light);
  delay(1000);
  Serial.println(i);
}

 

Nik_Frol
Offline
Зарегистрирован: 28.10.2020

До изменения: 

Вывод: 

Light: 700

Time: 14:52:48

 

После изменения (Выводится только значение переменной i):

Light: 542 (Значение переменной)

Time: 14:52:48

b707
Offline
Зарегистрирован: 26.05.2017

Nik_Frol - вы можете написать четко и ясно - в чем проблема?

Изложите, как должно работать, как оно работает на самом деле - и чем первое отличается от второго?