Srial.println and Python
- Войдите на сайт для отправки комментариев
Пнд, 07/12/2020 - 08:09
Приветствую, ардуинщики!
Есть целая проблема, мешающая реализации одной штуки.
Проблема в выводе значений в 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);
}
До изменения:
Вывод:
Light: 700
Time: 14:52:48
После изменения (Выводится только значение переменной i):
Light: 542 (Значение переменной)
Time: 14:52:48
Nik_Frol - вы можете написать четко и ясно - в чем проблема?
Изложите, как должно работать, как оно работает на самом деле - и чем первое отличается от второго?