Orange Pi Zero – данные из C в Python

Данные в разных программах

Настраивая датчики, возникла ситуация, когда одни датчики хорошо работают на Python, другие же никак не получается на нём запустить, а вот на C они работают)

Всё классно, но моя программа, которая отправляет данные в базу данных, написано на Python, а датчик влажности работает на С, необходимо сделать так, чтобы показания датчика влажности передавались программе на Python, чтобы они собственно со всей массой данных отправлялись.

После долгих поисков и исследований в интернете, нашлось достаточно большое количество способов реализации данной задачи, например:

  • использование Pipes, как я понимаю это основной метод действия в таких ситуациях.

При реализации разных вариантов постоянно возникали сложности, но в итоге всё таки получилось решить задачу:

В файл dht.c, прямо после printf (“Humidity = %.1f ……… “) я добавил:

FILE *fp;

fp = fopen(“file.txt”, “w”);

if(fp == NULL)

exit(-1);

fprinf (fp, “%.1f %.1f %.1f”, h, c, f);

fclose(fp);

Теперь наши данные записываются в файл file.txt , который лучше бы создать.

Дальше, создаём файл open.py

import time

import string

import re

while True:

with open(‘file.txt’) as fp:

for line in fp:

a,b,c = str(line).split()

print a,b,c

time.sleep(5)

Итак, как только у меня появится возможность, я добавлю этот раздел в программу, которая отправляет данные, и она тоже начнёт отправлять ещё и влажность) Если датчик перестанет отправлять данные, то строчка в файле не изменится, и об этом узнать можно будет только анализируя данные, постараюсь этот момент предусмотреть каким-то образом, возможно добавив timestamp в показания датчика.

 

Please follow and like us:
0
Orange Pi Zero – данные из C в Python

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Перейти к верхней панели