Ключевое ?лово

vk

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Софт:обсуждение программного обеспечения для умного дома
  • Страница:
  • 1
  • 2
  • 3
  • 4
  • 5

ТЕМА: Php скрипты для esp8266

Php скрипты для esp8266 13 Апр 2015 00:02 #3299

  • ZyyyRu
  • ZyyyRu аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 79
  • Спасибо получено: 19
  • Репутация: 5
В данной тебе буду писать и также обсуждать скрипты для приема данных от ESP8266
Под спойлером будут все ссылки на скрипты
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

FAQ
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

Данный раздел в доработке будет добавляться информация и обновляться Шапка.
Последнее редактирование: 28 Апр 2015 21:50 от ZyyyRu.
Администратор запретил публиковать записи гостям.
Спасибо сказали: vovusya

Php скрипты для esp8266 28 Апр 2015 20:06 #3700

  • ZyyyRu
  • ZyyyRu аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 79
  • Спасибо получено: 19
  • Репутация: 5
рабочий код для записи данных полученых с esp8266 с Бета тест версии прошивки esp8266 0.1.1 передачу осуществляется по протоколу MajorDoMo
сам код скрипта
<?php
define ("MYSQL_HOST"    ,'localhost');
define ("MYSQL_LOGIN"   ,'user');
define ("MYSQL_PASSWORD",'pass');

 
@mysql_connect(MYSQL_HOST, MYSQL_LOGIN, MYSQL_PASSWORD)
or die("Connect SQL error!");
     $db = filter_input(INPUT_GET, 'idesp', FILTER_SANITIZE_MAGIC_QUOTES);
        if(!$db){
           $db = 'dubmon';
        }
    define ("MYSQL_DATABASE",$db);
$db_name = MYSQL_DATABASE;
 
@mysql_select_db($db_name) or die("Select DB error!");
 
/**
 * Create Table Query by tableName
 * @param string $tableName Table name
 * @return string
 */
function GetCreateTableQuery($tableName)
{
   $create_table = <<<LABEL
CREATE TABLE `$tableName`
(`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT ,
`value` char(20) COLLATE utf8_bin NOT NULL,
`date` DATETIME NOT NULL ,
PRIMARY KEY ( `id` ) ,
UNIQUE (
`id`
)) ENGINE = MYISAM;
LABEL;
 
   return $create_table;
}
 
/**
 * Simple validation
 * @param mixed $paramValue input parameter
 * @return bool
 */
function IsValidValue($paramValue)
{
   if (empty($paramValue))
      return false;
   
   return true;
}
 
/**
 * Проверка параметров на соответствие с ожидаемыми параметрами
 * Чтобы не заздавать ненужных таблиц
 * @param string $key Param key
 * @return bool
 */
function IsValidKey($key)
{
   $arrayKey = array("hostname", "idesp", "dhtt1", "dhth1", "dhtt2", "dhth2", "bmpt", "bmpp", "light", "dsw1", "dsw2", "dsw3", "dsw4", "dsw5", "dsw6", "dsw7", "dsw8", "dsw9", "freemem", "ver", "vdd", "gpiout14", "wanip", "uptime");
   
   if (in_array($key, $arrayKey))
      return true;
   
   if (preg_match('/^dsw\d/',$key))
      return true;
   
   return false;
}
 
foreach(array_keys($_REQUEST) as $key)
{
   if (!IsValidKey($key))
   {
      // название параметра не прошло проверку: переходим к следующему параметру
      echo "Key: " . $key . " not valid<br />";
      continue;
   }
   
   $value = $_REQUEST[$key];
   if (!IsValidValue($value))
   {
      // Пустое значение. При вставке в таблицу произойдет ошибка т.к. поле в таблице NOT NULL
      // переходим к следующему сенсору
      echo "Ошибка: Значение " . $key . "пустое!<br />";
      continue;
   }
   
   // формируем запрос к бд на вставку записи в таблицу
   $sql="INSERT INTO `". $key . "` (`id`, `value`,`date`) VALUES (NULL,'" . $value . "', NOW());";
   echo $sql . "<br />";
   
   if($result = mysql_query($sql) === false)
   {
      $create_table = GetCreateTableQuery($key);
      if($result = mysql_query($create_table) === false)
      {
         die("CREATE TABLE ERROR! - " . $key);
      }
      else mysql_query($sql);
   }
}
?>
а также код странички для теста
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>test form</title>
</head>
<body>
   <div style="border:1px solid #000000;padding:0.5em;">
      <h3>Тест формы получения данных с датчиков</h3>
      <form action="index.php" method="post">
         <label for="idesp">idesp: id устройства</label><input type="text" id="idesp" name="idesp" /><br />
         <label for="hostname">hostname: имя устройства</label><input type="text" id="hostname" name="hostname" /><br />
         <label for="dhtt1">dhtt1: данные с датчика DHT 1</label><input type="text" id="dhtt1" name="dhtt1" /><br />
         <label for="dhth1">dhth1: данные с датчика DHT 1</label><input type="text" id="dhth1" name="dhth1" /><br />
         <label for="dhtt2">dhtt2: данные с датчика DHT 2</label><input type="text" id="dhtt2" name="dhtt2" /><br />
         <label for="dhth2">dhth2: данные с датчика DHT 2</label><input type="text" id="dhth2" name="dhth2" /><br />
         <label for="bmpt">bmpt: данные с датчика BMP</label><input type="text" id="bmpt" name="bmpt" /><br />
         <label for="bmpp">bmpp: данные с датчика BMP</label><input type="text" id="bmpp" name="bmpp" /><br />
         <label for="dswX">dswX: данные с датчиков ds18b20(X -номер датчика)</label><input type="text" id="dswX" name="dswX" /><br />
         <label for="dswX">dsw2: данные с датчиков ds18b20(X -номер датчика)</label><input type="text" id="dsw2" name="dsw2" /><br />
         <label for="light">light: данные с датчика BH1750</label><input type="text" id="light" name="light" /><br />
         <input type="submit" value="Test" />
      </form>
   </div>
</body>
</html>
Код полностью рабочий но перед подключением нового мудуля требуеться создать базу с именем (id) модуля
Последнее редактирование: 28 Апр 2015 21:46 от ZyyyRu.
Администратор запретил публиковать записи гостям.
Спасибо сказали: vovusya

Php скрипты для esp8266 28 Апр 2015 20:22 #3702

  • ZyyyRu
  • ZyyyRu аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 79
  • Спасибо получено: 19
  • Репутация: 5
Скрипт для перенаправление POST Запросов
<?php
header('Location:http://192.168.1.1/objects/', true, 307); 
?>
Может понадобовиться как для перенаправления так и для копирования запросов на другой сервер
Администратор запретил публиковать записи гостям.

Php скрипты для esp8266 04 Май 2015 09:22 #3908

  • gagarin74
  • gagarin74 аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Сообщений: 27
  • Спасибо получено: 1
  • Репутация: 1
Должно быть примерно так так и добавить данный скрипт в крон
header('Location:http://192.168.88.65/restart', true, 307);

ребят помогите с перезагрузкой. Как запустить удаленно модуль на перезагрузку.данная конструкция не работает
Администратор запретил публиковать записи гостям.

Php скрипты для esp8266 04 Май 2015 11:06 #3911

  • ZyyyRu
  • ZyyyRu аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 79
  • Спасибо получено: 19
  • Репутация: 5
gagarin74
Если у esp отвалилась веб морда тоесть ты туда по ip зайти не можешь то такие скрипты тебе не помогут я как вариант на даный момент вижу только 1 ставить реле на питание и подключать к тому через што можно удалено управлять например ( arduino с ethernet, сигнализация, сервер или пк, и т.д.
Только что проверил данный php скрипт высавил его в задачи на запуск каждые на 10 мин и все успешно работает.
Последнее редактирование: 04 Май 2015 11:16 от ZyyyRu.
Администратор запретил публиковать записи гостям.

Php скрипты для esp8266 04 Май 2015 18:19 #3937

  • gagarin74
  • gagarin74 аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Сообщений: 27
  • Спасибо получено: 1
  • Репутация: 1
я очень рад за Вас,но у меня данная конструкция не работает.Веб морда доступна.но время работы не изменилось. через браузер http://192.168.88.65/restart срабатывает как надо
Администратор запретил публиковать записи гостям.
  • Страница:
  • 1
  • 2
  • 3
  • 4
  • 5
Модераторы: FlyRouter, Dolfik
Время создания страницы: 0.125 секунд

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.