Я работаю над проектом на работе, и у меня возникли небольшие проблемы, у меня есть сервер LAMP с установленным сервером Ubuntu 18.04, на стороне сервера у меня есть сценарий PHP, который реализует данные, полученные от клиента в таблица в базе данных MySQL через URl. Я говорю о клиенте Raspberry P ie 3, подключенном к датчику DHT22 через последовательный порт.
Проблема, с которой я столкнулся сейчас, заключается в том, что у меня совсем нет опыта работы с Python. Я сделал скрипт, который печатает данные с датчика в консоли. Но я понятия не имею, как отправить эти данные от клиента в БД.
Если я собираюсь использовать сценарий PHP, клиенту потребуется распечатать данные в пути URl сценария PHP (например, так: http://192.168.0.101?temp=20.1&hum=30.2), но я надеялся, что ваш парень подскажет мне, как это сделать, или я могу как-нибудь пропустить весь сценарий PHP и реализовать способ подключения к БД и печати данных прямо в таблицу со скриптом Python.
PHP скрипт, который я использую:
<?php
class DBtable {
public $link='';
function __construct($temperature, $humidity) {
$this->connect();
$this->storeInDB($temperature, $humidity);
}
function connect() {
$this->link = mysqli_connect('localhost','Generic_user','Generic_passwd') or die('Cannot connect to DB');
mysqli_select_db($this->link,'DBtable') or die('Cannot choose DB.');
}
function storeInDB($temperature, $humidity) {
$query = "insert into DBtable set Hum='".$humidity."', Temp='".$temperature."'";
$result =mysqli_query($this->link,$query) or die('Errant query: '.$query);
("Data was implemented correct! Temp = '".$temperature."'°C og Hum = '".$humidity."'%'");
}
}
if($_GET['Temp'] != '' and $_GET['Hum'] != '') {
$DBtable=new DBtable($_GET['Temp'],$_GET['Hum']);
}
?>
(Я изменил некоторую информацию по соображениям безопасности, но могу вас заверить, что я ее проверил, и она работает.)
Сценарий изначально был создан для Arduino, но я не смог заставить его работать, поэтому я переключился на платформу Raspberry.
Сценарий Python на клиенте:
import Adafruit_DHT as dht
from time import sleep
DHT = 3
while True:
h,t = dht.read_retry(dht.DHT22, DHT)
print('temp={0:0.1f}*C hum={1:0.1f}%'.format(temperature, humidity))
sleep(1)
Вывод на консоль:
temp=20.1*C hum=30.2%
Тогда возникает вопрос: что мне нужно сделать, чтобы отправить данные в сценарий PHP или, если это не удалось, пропустить часть PHP и использовать Python скрипт напрямую?
Если вам, ребята, нужна дополнительная информация, просто спросите, и я предоставлю как можно лучше. Спасибо!
----- ОБНОВЛЕНИЕ -----
Итак! Я нашел что-то, что могло бы работать, я пытаюсь POST
данные с Requests
. Я делаю сценарий PHP
на сервере, который будет вводить полученные данные в базу данных MySQL. Затем идет тестирование, я собираюсь сообщить вам, ребята, как все прошло.
Если у вас есть какой-либо совет, просто стреляйте, и я все еще буду здесь, если вам нужна дополнительная информация или у вас есть вопросы!