...

четверг, 18 июля 2019 г.

[Из песочницы] Датчик температуры и влажности на ардуино с отправкой и отрисовкой графика (Часть1)

<?php
/**
 * @param string            $message
 * @param PDOException|null $exception
 */
function writeMessage($message, $exception = null)
{
    $logfile = '/var/www/html/data/arduino.log';
    $datetime = date('d.m.Y H:i:s', time());

    if ($exception !== null) {
        $message .= ': ' . $exception->getFile() . ' (line: ' . $exception->getLine() . ') - ' . $exception->getMessage();
    }

    file_put_contents($logfile, '[' . $datetime . '] ' . $message."\n", FILE_APPEND);
}

/* Подключение к базе данных MySQL с помощью вызова драйвера */
$dsn = 'mysql:dbname=greenhouse;host=localhost';
$user = 'arduino';
$password = 'парол';

try {
    $dbh = new PDO($dsn, $user, $password, [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
    ]);
} catch (PDOException $e) {
    writeMessage('Произошла ошибка', $e);
}

try {
    $sth = $dbh->prepare('INSERT INTO data (sensor, temperature, humidity, created_at) VALUES (?, ?, ?, NOW())');
    $sth->execute(['grass', $_REQUEST['temp'], $_REQUEST['hum']]);

} catch (PDOException $e) {
    writeMessage('Произошла ошибка', $e);
}


Let's block ads! (Why?)

Комментариев нет:

Отправить комментарий