Метеостанция на Orange Pi Zero ч.2

Данные температурного датчика

Итак, нашёл код на питоне, который позволяет читать получать данные с одного датчика, в первой строчке нужно изменить адрес датчика (пока это всё наработки):

tfile=open("/sys/bus/w1/devices/28-000000d7970b/w1_slave")
ttext=tfile.read()
tfile.close()
temp=ttext.split("\n")[1].split(" ")[9]
temperature=float(temp[2:])/1000
print temperature

Таких программ много на гитхабе)
Попробуем теперь добавить часть кода, чтобы данные температуры отправлялись
на сайт и добавлялись в базу данных.

По этой ссылке находится код, который позволяет отправлять данные с датчиков через Gmail аккаунт, т.е по почте, возможно пригодится, оставлю пока здесь)

 

Скрипт на отправку методом POST:

Продолжаем, вот код на питоне, которые отправляет данные методом POST php скрипту:

import urllib2, urllib
mydata=[('temperature','1'),('humidity','2')]    #The first is the var name the second is the value
mydata=urllib.urlencode(mydata)
path='http://localhost/new.php'    #the url you want to POST to
req=urllib2.Request(path, mydata)
req.add_header("Content-type", "application/x-www-form-urlencoded")
page=urllib2.urlopen(req).read()
print page

Отлично, вот ссылка на Python код для отправки данных с модулей DS18B20 на сайт Thingspeak, мы как раз его немного и подправим на свой вариант (пока пользуюсь вариантами, написанными выше).

Пока простой вариант, имена моих датчиков – 28-00000a38eba3 и 28-00000a39e66f

Я соединил вместе два этих кода, указав в них id моих датчиков, и теперь моя метеостанция действительно подключается к базе данных и отправляет туда данные:

Данные системы:

В данный момент значения второго температурного датчика отображаются в столбце Humidity, то, что данные отображаются по разному – такие параметры столбцов были заданы во время создания таблицы)

Автозагрузка

Теперь запустим сделаем так, чтобы наша программка запускалась при старте и в фоновом режиме. Вот команды, чтобы она работала в фоновом режиме:

sudo nohup python XXX.py &  –запускает в фоновом режиме скипт + отображает номер PID

ps -e  — посмотреть все запущенные программы

Для того, чтобы запускать её при старте, я её добавил в crontabe, но запускаться скрипт не начал, идём дальше. Получилось сделать автозапуск добавлением следующий строчки в файл:

sudo nano /etc/rc.local

(sleep 10;/usr/bin/python /t1/send6.py)&       t1 это папка, где лежит скрипт send6.py

Кто-то считает, что это не очень изящное решение, но работает) Вроде видел ещё добавляют в .bashrc, это из простых решений.

 

Дальше я настроил доступ к Wifi с помощью программы:

nmtui 

Заработало, проверил, при запуске спустя некоторое время начинает отправлять данные на сайт, всё работает, теперь о внешнем виде – нужен кейс и powerbank и скорей всего солнечная батарея)

 

 

 

 

Please follow and like us:
0
Метеостанция на Orange Pi Zero ч.2

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

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

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