Искал для себя скрипт для записи данных датчика в базу MySQL.
Готового решения не нашел.
Скомпилировал сам из разных частей кода на просторах интернета.
Задача - записать данные DS18b20 в базу MySQL.
База состоит из следующих полей:
id - номер записи
date - дата и время внесения записи
hostname - имя esp8266
dsw1 - значение температуры
В дальнейшем использую для построения графиков средствами jpgraph.
Имеем:
esp8266 - WeMOS D1
прошивка - версия PRO
сервер на Linux - Apache, MySQL, PHP
Скрипт
<?PHP
// Используем curl для получения странички /sensors
$ch = curl_init('http://192.168.111.180/sensors' );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// В переменную $page пишем содержание странички /sensors
$page = curl_exec($ch);
curl_close($ch);
// В массив $dat записываем данные разделенные «;», т.е. пару «имя_сенсора:его_значение»
$dat = explode(";", $page);
// В массивы $hn и $dsw записываем данные из массива $dat, разделяя эти данные (разделитель «:»)
$hn = explode(":", $dat[0]);
$dsw = explode(":", $dat[1]);
// Записываем значения переменных:
// имя хоста - $hn[1]
// значение датчика - $dsw[1]
//ip address MySQL server
$dbhost = "localhost";
//MySQL user name
$dbuser = «XXXX»;
//MySQL user password
$dbpass = «XXXX»;
//MySQL database name
$dbname = "esp_home";
$link = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname,$link);
mysql_query("INSERT INTO esp_test (hostname, dsw1) VALUES ('$hn[1]', $dsw[1])");
?>
Код далек от оптимизированного и элегантного, но работает.
В случае добавления датчиков код дописывается.
Также из массивов можно вытаскивать имена датчиков и их значения парами и при условии наличия в базе полей с такими же именами автоматически их туда засовывать.
Сам не программист, решил задачу как смог.