Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 21.01.2017
Сообщений: 22
1

Прошу совета в альтруистическом начале

10.10.2017, 16:41. Показов 577. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Я простой электрик простой провинциальной котельной. Интернет на рабочем месте я раздаю всем и бесплатно. Линукс начал изучать с нового 2017 года. Кстати с Orange PI у меня сервер, PHP 7.0 обработчик установлен, есть несколько самосозданных страничек. Это управление светом и другими нагрузками дома, то есть как в PHP сделать кнопку и чтоб она работала я смог. Смогу и большее, но без Вашей помощи, сообщество, уйдёт куча времени. А хочу я сделать доброе дело производству. Мне по работе часто приходится лезть под напряжение с клещ-метром в руках, чтоб мониторить ток сетевых насосов. Я подумал... Фиг с ним, кину витопарный кабель на подстанцию, возьму ардуинку, или даже ораньж пай зеро, и сделаю измеритель напряжения, научу его передавать на сервер данные, а на сервере понятную страницу, чтоб было наглядно и на любом смартфоне в браузере работало.
Друзья, Вы не подумайте, что я ради коммерческой выгоды. Это всё совершенно бесплатно, то есть на свои деньги ради своего же блага и блага других работников.
А теперь к сути. Я никак не могу разобраться, с чего начать? Сперва вопрос такой. Есть у меня страница управления света дома. Но у меня пока не хватает знаний, как сделать индикатор состояния, то есть свет вкл или выкл.
Вопрос два. Как передавать с устройства-измерителя на сервер, как оформить страницу(без свистелок и перделок, пусть костыль, но простой и понятный)?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2017, 16:41
Ответы с готовыми решениями:

Прошу совета по оптимизации условия If
Всем доброго времени суток! Php занимаюсь совсем мало. Пусть кому-то вопрос покажется совсем...

Прошу совета опытных людей о создании сайта
Здравствуйте товарищи. У вас тут в ветке «PHP для начинающих» какие то вопросы серьезные, не как...

Прошу совета
Опишу вкратце, что хотелось бы иметь и спрошу, возможно ли это и насколько трудновыполнимо....

Прошу совета по хранение в БД
Доброго времени суток, прошу совета по хранению данных, подскажите пожалуйста как лучше хранить...

19
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
10.10.2017, 17:05 2
Варианта два:
1) кто-то серверу передает новое состояние ра каждое изменерие и сервер соответственно его показывает.
2) сервер сам спрашивает состояние
0
0 / 0 / 0
Регистрация: 21.01.2017
Сообщений: 22
10.10.2017, 19:57  [ТС] 3
Этот кто то будет либо ардуиной с инет шилдом, либо ораньж пай дешёвенькая, типа зеро, но тогда на ней можно будет тот же апач поднять.
По перовму варианту плюсы/минусы, ну и по второму каковы?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
10.10.2017, 21:54 4
Цитата Сообщение от buratini Посмотреть сообщение
По перовму варианту плюсы/минусы, ну и по второму каковы?
1) Более красивое решение, но в реализации будет посложнее. Нужно будет предусмотреть вариант что сервер не смог успешно принять запрос и повторять в этом случае. Авторизацию было бы добавить неплохо.
Ну и самое тяжелое это собственно получение показаний датчика. Идеально будет если датчик о изменении своего состояния сможет как-то оповещать, иначе придется самому периодически опрашивать и крон тут по моему не подойдет, из-за минимального интервала в 1 минуту. Поэтому нужен долгоживущий процесс. На php можно реализовать, но это так себе, я бы попробовал для этой цели go. Этот процесс надо мониторить, чтоб поднять если упал.
2) Проще реализовать, для небольшого числа пользователей в принципе пойдет
0
0 / 0 / 0
Регистрация: 21.01.2017
Сообщений: 22
10.10.2017, 22:47  [ТС] 5
У меня число пользователей вряд ли превысит 20 человек. Это ещё небольшое число пользователей?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
10.10.2017, 23:58 6
buratini, зависит от мощности оборудования и числа запросов в единицу времени.
0
0 / 0 / 0
Регистрация: 21.01.2017
Сообщений: 22
12.10.2017, 18:20  [ТС] 7
У меня Orange Pi Pc Plus, запросов в секунду не могу сказать сколько, пока я и три-четыре человека.
Для начала хотел бы разобраться, как в PHP получить онлайн вывод на страницу состояния. То есть PHP выполняет условие по опросу пина, если 0, то он выводит на экран "откл", а если 1, то, соответственно, "вкл". Можно пример сценария?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
12.10.2017, 21:30 8
Цитата Сообщение от buratini Посмотреть сообщение
То есть PHP выполняет условие по опросу пина, если 0, то он выводит на экран "откл", а если 1, то, соответственно, "вкл". Можно пример сценария?
PHP
1
echo check_state() ? 'вкл' : 'откл';
0
0 / 0 / 0
Регистрация: 21.01.2017
Сообщений: 22
12.10.2017, 21:54  [ТС] 9
Прошу прощения, немного некорректно сформулировал.
PHP выполняет скрипт
Bash
1
cat /sys/class/gpio/gpio3/value
если результат 0, то на страницу должно быть выведено "откл", если 1, то "вкл"
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
12.10.2017, 22:09 10
PHP
1
echo file_get_contents('/sys/class/gpio/gpio3/value') ? 'вкл' : 'откл';
0
0 / 0 / 0
Регистрация: 21.01.2017
Сообщений: 22
12.10.2017, 22:19  [ТС] 11
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
<title>Свет огорода</title>
<head>
<meta http-equiv="Refresh" content="<?=$delay?>" />
</head>
<body>
<?php
header("Content-Type: text/html; charset=utf-8");
header('Refresh: 30; url=' .$_SERVER['PHP_SELF']);
?>
<form action="" method="post">
<input type="submit" name="rele1" value="включить свет">
<input type="submit" name="rele1off" value="выключить свет">
<?php
echo file_get_contents(' /sys/class/gpio/gpio71/value') ? 'вкл' : 'откл';
?>
Вывода на странице никакого, что я не так сделал?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
12.10.2017, 22:26 12
Цитата Сообщение от buratini Посмотреть сообщение
что я не так сделал?
Пробел лишний в имени файла ' /sys/class/gpio/gpio71/value'
Отправка заголовков после начала вывода тела ответа
И отображение ошибок желательно включить, если это еще не сделано
1
0 / 0 / 0
Регистрация: 21.01.2017
Сообщений: 22
12.10.2017, 22:50  [ТС] 13
Исправил всё, что Вы сказали, но теперь всё время высвечивается "вкл"
Хотя
Bash
1
cat
проверяю, меняется 0 на 1
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
12.10.2017, 23:06 14
PHP
1
2
<?php
var_dump(file_get_contents('/sys/class/gpio/gpio71/value'));
что выведет?
0
0 / 0 / 0
Регистрация: 21.01.2017
Сообщений: 22
12.10.2017, 23:10  [ТС] 15
вывело //string(2) "0 "
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
12.10.2017, 23:14 16
PHP
1
echo file_get_contents('/sys/class/gpio/gpio71/value') === "0 " ? 'откл' : 'вкл';
1
0 / 0 / 0
Регистрация: 21.01.2017
Сообщений: 22
13.10.2017, 09:46  [ТС] 17
так же, вкл всё время, независимо от состояния.

Добавлено через 18 минут
PHP
1
echo file_get_contents('/sys/class/gpio/gpio71/value') < "1" ? 'откл' : 'вкл' ;
Вот в таком варианте заработало как надо, спасибо за подсказку в верном направлении

Добавлено через 9 часов 25 минут
Но остался осадочек... Теперь, если нажать на кнопку один раз и действие выполнится, но состояние так и остаётся не обновлённое. Если нажать кнопку ещё раз или перезагрузить страницу вручную-состояние меняется. Поискал, как бы малой кровью перезагрузить содержимое только данного скрипта... всё не то.
Существует же простое решение?
0
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
13.10.2017, 09:49 18
buratini, ajax
0
0 / 0 / 0
Регистрация: 21.01.2017
Сообщений: 22
13.10.2017, 09:56  [ТС] 19
поиск выдаёт мне очень сложные и громоздкие примеры.
Если не затруднит, то можно простой пример?
0
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
13.10.2017, 10:22 20
buratini, https://ruseller.com/lessons.php?id=1452&rub=32
0
13.10.2017, 10:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2017, 10:22
Помогаю со студенческими работами здесь

Прошу совета по устраненению следов sql-иньекции
Всем здравия. Я являюсь полуадмином одного из сайтов по спортивной тематике. Почему полуадмин? Да...

Синхронизация двух сайтов(прошу совета)
Доброго времени суток! Вопрос в следующем: нужно сделать что бы при изменении информации на одном...

Прошу совета по REST API
Скажите, укладывается ли в рамки философии RESTfull (или даже API в целом) передача данных в теле...

Прошу совета
Уважаемые мастера. Помогите советом чайнику... У меня форум на ruhelp.com. Почему то и Гугль...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru