Оглавление:
- Шаг 1: кнопка для Arduino
- Шаг 2: Arduino для Raspberry
- Шаг 3. Серверный код
- Шаг 4. Настройте веб-сайт
Видео: Звоните в Интернет!: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Ring the Web предназначена для воздействия на веб-сайты из местных / реальных мест.
Подробнее об этом:
makker.hu/RingTheWeb/
Вам понадобиться:
- 1 кнопка
- Резистор 10к
- Ардуино (любого типа)
- кабели
- маленький маломощный компьютер - в данном случае RPi
- доступ к серверу или компьютеру с публичным IP с помощью node.js
- Веб-сайт
Шаги:
- Кнопка для Arduino
- Arduino на Raspberry
- Малина на сервер
- Веб-сайт на сервер
Шаг 1: кнопка для Arduino
Для начала вам понадобится Arduino и кнопка!
Возможны любые из них, выбор за Вами.
Для их подключения следуйте официальному руководству по кнопкам Arduino.
Вот код Arduino:
// Код Arduino для чтения цифрового вывода и отправки значения в последовательный порт
// Балаж Ковач, 2018. void setup () {Serial.begin (9600); // открываем последовательный порт pinMode (8, INPUT); // подключаем кнопку к выводу 8} int counter = 0; // что-то использованное позже void loop () {if (digitalRead (8) == 1) {// проверяем состояние вывода 8 Serial.write ("8"); } задержка (100); счетчик ++; if (counter = 20) {// каждые 20x100 = 2000 мс -> counter = 0; Serial.write («0»); // отправляет на сервер сообщение "я существую"}} // вот и все!
Шаг 2: Arduino для Raspberry
Теперь мы можем подключить Arduino к компьютеру. В этом случае мы используем Raspberry из-за его низкого энергопотребления.
Подключите его через USB или напрямую к контактам RX-TX, описанным здесь.
Затем установите node.js и npm, как описано здесь. Ключевые слова:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
а потом
sudo apt-get install -y nodejs
Npm (диспетчер пакетов Node.js) нужны модули socket.io-client и serialport, поэтому установите их:
npm установить socket.io-client
npm установить последовательный порт
Откройте и сохраните файл something.js со следующим кодом:
// инициализируем соединение socket.io:
var socket; var io = require ('socket.io-client'); socket = io ("https://yourserver.com:port"); // если соединение с сервером прошло успешно: socket.on ('connect', function () {socket.send ("я здесь!"); console.log ("connected to the server");}); // инициализируем связь через последовательный порт, NB / dev = ttyACM0 можно изменить: var SerialPort = require ('serialport'); var serialPort = новый SerialPort ('/ dev / ttyACM0', {baudRate: 9600}); // Если что-то приходит от Arduino, отправляет разные сообщения // на сервер в соответствии с этим serialPort.on ('data', function (data) {console.log ('Data:', data.toString ('ascii')); if (data.indexOf ('8')! == - 1) {socket.send ('/ RingTheBell 1');} if (data.indexOf ('0')! == - 1) {socket. send ('/ client1 1');}}); // Считываем доступные данные - я думаю, в этом нет необходимости serialPort.on ('readable', function () {console.log ('Data:', port.read ());});
Теперь вы должны также настроить код node.js на стороне сервера, пока вы не можете запустить и протестировать скрипт с помощью
узел./something.js
Если что-то не так, дайте мне знать!
Шаг 3. Серверный код
На стороне сервера нам понадобится node.js с сервером socket.io.
Так что добавьте это с помощью:
npm установить socket-io
Затем вам понадобится сценарий, аналогичный коду на 2-м шаге, с той разницей, что он ждет соединений, и если они есть, он будет транслировать любое сообщение, отправленное от клиента всем клиентам, в этом случае, пользователям веб-сайта…
Итак, откройте servercript.js следующим образом:
var http = require ('http'), io = require ('socket.io'); // открываем минимальный http-сервер. socket.io это нужно. var server = http.createServer (функция (req, res) {res.writeHead (200, {'Content-Type': 'text / html'}); res.end ('hello');}); // включаем сокет tcp - устанавливаем порт! server.listen (7004, function () {console.log ("TCP-сервер, работающий на порту 7004");}); // анализировать tcp-сообщения var socket = io.listen (server); socket.on ('соединение', функция (клиент, rinfo) {client.broadcast.emit ('система', 'кто-то подключился…'); client.on ('сообщение', функция (событие) {console.log (событие); // рассылаем любое сообщение всем подключенным пользователям! socket.emit ('message', event);}); client.on ('allbody', function (event) {}); client.on ('disconnect', function () {socket.emit ('сообщение', 'кто-то отключился …');});});
Попробуйте проверить это с помощью
узел./serverscript.js
Если клиент тоже работает, вы должны увидеть его общение на обеих консолях. По крайней мере, эти:
Данные: 0
- периодически сообщает системе, что связь с сервером Arduino-> Raspberry-> работает.
а также
Данные: 8
- сообщает, что кнопка включена.
Шаг 4. Настройте веб-сайт
Теперь мы готовы с 75%!
Завершите тяжелую работу включением кода для веб-сайта.
Это просто.
сначала включите клиент socket.io:
затем создайте систему анализатора сообщений:
var socket;
socket = io ("yourserver.com:port"); socket.on ('connect', function () {socket.send ('анонимный клиент - пользователь веб-сайта - подключен!'); socket.on ('message', function (msg) {// если Вы хотите увидеть каждое сообщение, просто раскомментируйте его: // console.log (msg); if (msg == "/ RingTheBell 1") // вот код, который будет использоваться для выражения события нажатия кнопки: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "# 000";}, 1000);}; if (msg == "/ client1 1") {// здесь можно что-нибудь разместить который реагирует на статус подключенного клиента};});
Вуаля!
готов.
Рекомендуемые:
Интернет-радио BOSEBerry Pi: 4 шага (с изображениями)
Интернет-радио BOSEBerry Pi: я люблю слушать радио! Я использовал DAB-радио в своем доме, но обнаружил, что прием был немного неоднородным, а звук продолжал прерываться, поэтому я решил создать свое собственное интернет-радио. У меня дома сильный сигнал Wi-Fi, и цифровой братан
Интернет-сервопривод: 3 шага
Интернет-сервопривод: ВВЕДЕНИЕ Я люблю кормить птиц в своем саду, но, к сожалению, черная крыса также пользуется этим. Поэтому я придумал, как не дать крысам поедать птичий корм. Черная крыса активна только в темноте, поэтому нам нужно закрыть би
Arduino Uno + ESP8266 ESP-01 Включение лампы через Интернет (не LAN WIFI): 3 шага
Arduino Uno + ESP8266 ESP-01 Включение лампы через Интернет (не через LAN WIFI): Включите лампу через веб-сайт на любом устройстве с помощью веб-браузера на этом устройстве, даже если вы находитесь далеко от лампы. Вы можете получить доступ к веб-сайту через свой ноутбук, смартфон или что-то еще с веб-браузером, установленным на этом устройстве
УМНЫЙ ИНТЕРНЕТ-ПЕРЕКЛЮЧАТЕЛЬ: 4 шага
УМНЫЙ ИНТЕРНЕТ-ПЕРЕКЛЮЧАТЕЛЬ: С помощью всего нескольких компонентов вы можете построить этот очень умный интернет-коммутатор. Возможно, он не первый, но он самый умный !! Проблема с этими устройствами всегда заключается в сложности подключения к Wi-Fi. Его действительно просто подключить, накануне
Пузырьковая машина, управляемая через Интернет: 4 шага (с изображениями)
Пузырьковая машина, управляемая через Интернет: всем известно, что выдувание пузырей - это очень весело, но это может быть тяжелой работой. Мы можем решить эту проблему, просто построив машину для мытья пузырей, управляемую через Интернет, делегируя усилия и получая при этом все плоды. Что касается стационара, вы можете проверить