Нужна помощь в реализации следующей идеи: Исходные данные: -Имею стационарный компьютер, хочу написать простенькую базу данных в MySQL или какой другой (посоветуйте). Имею домашнюю WIFI сеть Имею роутер TP-Link MR3020 Наконец имею Arduino Mega 2560 c различными шилдами и сенсорами. Помогите в реализации идеи управления выводами arduino с использованием вышеуказанного. Например: В базу данных вносится перечень комнатных растений и назначается время их полива, то есть имеем базу данных,состоящую из 2-х компонентов - таблицу растений с уникальным ID и таблицу назначенных событий. Идея - при наступлении указанного в базе данных времени полива того или иного растения с компьютера отправляется управляющая команда, принимается WIFI роутером, соединенным с serial port ардуино, декодируется и преобразуется в выходной управляющий сигнал на пинах ардуино.
Из просторов интернета как идею нашел следующее: В имеющийся у меня роутер требуется загрузить некую программу-сервер, которая будет открывает соединение на определенном порту и находится в ожидании соединения с программой (базой данных ?), установленной на компьютере и которой нужно указать обращение в порт роутера. После установки соединения управляющий код, пришедший от стационарного компьютера будет перенаправлен роутером в COM-порт, к которому подключена Adruino. Простите за непрофессионализм. Но идея плотно засела в голове, а значит должна быть решена.
Я конечно всё понимаю, но MySQL тут никак не катит, ну вообще незачем. Это гвозди микроскопом. При этом идея не полноценная. Вы же руками будете ко всем растениям помпы проводить и т.д. Если бы тут был бы элемент ИИ хоть какой-нибудь, с шасси. При этом взять дешевый хостинг с MySQL в данном случае будет намного лучше, если даже использовать её, т.к. открывается возможность управления с веб-интерфейса.
Для вэб-интерфейса MySQL нафиг не нужен, для хранения нескольких чисел eeprom контроллера более чем достаточно. Другое дело, если просто хочется с базой данных повозиться на примере реальной задачи.
Уважаемый Мегакотейка я именно и хочу попытаться реализовать управление с персонального компьютера посредством использования базы данных конечным устройством на микроконтроллере Arduino. Не важно в конце концов что конечное устройство будет делать - цветы поливать или еще что. Мне нужно реализовать взаимодействие стационарного компа с установленной на нем БД-программой клиентом с микроконтроллером, к которому подключен WIFI роутер, на который нужно загрузить некую программу-сервер и все это заставить между собой общаться по WIFI.
Эту задачу очень легко решить. Допустим вы имеете компьютер с установленной системой Windows и установленным сервером Apache, PHP, Mysql на нем. Это может быть Denwer либо другой пакет. Допустим к компьютеру подключен роутер, чтобы можно было управлять базой данных. В базе данных хранятся настройки для работы с Ардуино. Так как у нас установлен сервер, можно выполнять на нем различные скрипты. Ставим планировщик их полным полно для Windows, можно использовать внутренний. Рекомендую использовать Xstarter, он отлично зарекомендовал себя. 1. Ставим задачу (Выполнять запрос каждые 1 минуту) Запрос может быть следущего вида. http://192.168.0.1/?date=2015-11-01&time=07:30 = http://192.168.0.1/index.php?date=2015-11-01&time=07:30 Каждую минут планировщик будет выполнять запрос на компьютере. Можно создать файл start.vbs: Код (Text): Query="date="&Year(Now)&"-"&Month(Now)&"-"&Day(Now)&"&time="&Hour(Now)&":"&Minute(Now) set http = CreateObject("microsoft.xmlhttp") http.open "GET","http://192.168.0.1/?"&Query, false http.send Это VBS скрипт - Visual Basic Script, аналог bat файлу только с большими возможностями. 2. Мы отправили запрос на сервер. Теперь его нужно обработать. Обрабатывает его все тот же индексный файл index.php. Мы пишем скрипт на php, который лезет в базу данных Mysql и смотрит, что же запланировано на ?date=2015-11-01&time=07:30, если такая запись имеется в базе то, даем команду на ComPort, можно это сделать путем Код (Text): $get_date=htmlspecialchars($_GET["date"); $get_time=htmlspecialchars($_GET["time"); //Перед началом нужно вывести команду из базы данных, как работать и как подключать почитайте $sql="select * from db_arduino_rus where Cdate='$get_date' and Ctime='$get_time'"; $result=mysql_query($sq); while ($row=mysql_fetch_array($resul)) { $command=$row["Command"]; } <?php include 'php_serial.class.php'; $serial = new PhpSerial; $serial->deviceSet("COM1"); $serial->confBaudRate(9600); $serial->confParity("none"); $serial->confCharacterLength(8); $serial->confStopBits(1); $serial->confFlowControl("none"); $serial->deviceOpen(); $serial->sendMessage($command); ?> Вот с помощью PHP мы послали команду на Com Port. Дальше все зависит от фантазии. Если операционная система Linux или другое семейство UNIX можно использовать Cron планировщик.... Существует еще Mysql планировщик... Либо можно написать программу на любом языке программирования. Pascal, C++ и т.д и по таймеру проверять записи в базе данных....