Могу ли я управлять Arduino с сервера Apache?

Итак, у меня есть ПК, на котором запущено несколько служб для моего дома. Я пытаюсь немного автоматизировать свой дом и хотел бы управлять различными вещами в доме. Возможно ли управлять Arduino с моего сервера HTML Apache? Я думал о том, чтобы перейти с ПК на Raspberry Pi и затем последовательно подключиться к Arduino, но это кажется излишним.

, 👍0

Обсуждение

вам не нужен Pi, AVR или сетевой адаптер, если вы просто покупаете nodeMCU за 3 доллара. тогда вы можете использовать http, websockets или mqtt, чтобы общаться с ним., @dandavis


2 ответа


1

Если вы подключите «сетевой адаптер» к Arduino, вы сможете запустить TCP-сервер на Arduino. Сервер, сервер telnet или веб-сервер будут прослушивать команды, отправленные с компьютера. В случае веб-сервера вы также можете отправлять команды из веб-браузера. Другой вариант — использовать UDP-связь. Arduino может прослушивать UDP.

Варианты для сети — Ethernet или WiFi. Оба варианта представлены в виде шилдов или модулей. Для Ethernet лучше всего поддерживаются чипы Wiznet 5100 и 5500, а для WiFi наиболее распространенным вариантом является esp8266.

,

1

Если ваш Arduino должен находиться далеко от вашего ПК, то дайте ему какое-то сетевой интерфейс, как предложено в ответе Юрая, вероятно, является лучшим решение. Если, с другой стороны, вы можете иметь Arduino рядом с Для ПК самый простой вариант — использовать USB-подключение.

Вам понадобится какой-то интерпретатор команд на стороне Arduino. Вы можете реализовать свой собственный протокол команд. Для вдохновения взгляните на это простой интерпретатор командной строки Arduino. Или вы можете используйте уже готовый интерпретатор, например Firmata, который использует свой собственный двоичный протокол, если вы найдете поддержку протокола на стороне ПК.

У меня нет опыта общения с Arduino из Apache сервер. Вместо этого я использую сервер Node.js, который кажется более популярный вариант для такого рода работы. Если вы хотите использовать Apache, вам нужно придется посылать команды с него через USB-эмулируемый последовательный порт. Вы возможно, это можно сделать с помощью PHP-скрипта, но учтите, что Arduino сбрасывается каждый раз, когда вы открываете соединение последовательного порта, если вы не поставите конденсатор между RST и +5 В. Или вы можете использовать сервер Node.js на локальный порт и используйте Apache в качестве обратного прокси-сервера.

Приложение: Быстрый поиск в Интернете выявил пару библиотеки, реализующие клиентскую часть Firmata протокол на PHP, а также слайд-презентация, демонстрирующая как использовать один из них.

,