Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03
Ring the Web é para afetar sites de lugares locais / reais.
Mais informações sobre isso:
makker.hu/RingTheWeb/
Você precisará:
- 1 botão de pressão
- Resistor de 10k
- Arduino (qualquer tipo)
- cabos
- computador pequeno e de baixo consumo - neste caso, um RPi
- acesso a um servidor ou computador com IP público com node.js
- local na rede Internet
Passos:
- Botão para arduino
- Arduino para Framboesa
- Framboesa para o servidor
- Site para servidor
Etapa 1: Botão para Arduino
Primeiro você precisa de um Arduino e um botão!
Qualquer tipo deles é possível, cabe a Você escolher.
Para conectá-los, siga o tutorial do botão oficial do Arduino.
Aqui está o código do Arduino:
// Código Arduino para ler um pino digital e enviar valor para a porta serial
// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // abre a porta serial pinMode (8, INPUT); // conecta o botão ao pino 8} int counter = 0; // algo usado posteriormente void loop () {if (digitalRead (8) == 1) {// verificar o status do pino 8 Serial.write ("8"); } atraso (100); contador ++; if (contador = 20) {// a cada 20x100 = 2.000 ms -> contador = 0; Serial.write ("0"); // envia uma mensagem "eu sou existente" para o servidor}} // isso é tudo!
Etapa 2: Arduino para framboesa
Agora podemos conectar o Arduino a um computador. Neste caso utilizamos um Raspberry, devido ao seu baixo consumo de energia.
Conecte-o via USB ou diretamente com os pinos RX-TX, descritos aqui.
Em seguida, instale node.js e npm conforme descrito aqui. As palavras-chave são:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
e então
sudo apt-get install -y nodejs
O Npm (gerenciador de pacotes do Node.js) precisa dos módulos socket.io-client e serialport, então instale-os:
npm install socket.io-client
npm install serialport
Abra e salve um arquivo something.js com o seguinte código:
// inicializa a conexão socket.io:
var socket; var io = require ('socket.io-client'); socket = io ("https://yourserver.com:port"); // se a conexão com o servidor for bem-sucedida: socket.on ('conectar', function () {socket.send ("estou aqui!"); console.log ("conectado ao servidor");}); // inicializa a comunicação da porta serial, NB / dev = ttyACM0 pode ser alterado: var SerialPort = require ('serialport'); var serialPort = new SerialPort ('/ dev / ttyACM0', {baudRate: 9600}); // Se algo vem do Arduino, envia mensagens diferentes // para o servidor de acordo com serialPort.on ('dados', função (dados) {console.log ('Dados:', dados.toString ('ascii')); if (data.indexOf ('8')! == - 1) {socket.send ('/ RingTheBell 1');} if (data.indexOf ('0')! == - 1) {socket. send ('/ client1 1');}}); // Ler os dados disponíveis - acho que não é necessário serialPort.on ('readable', function () {console.log ('Data:', port.read ());});
Agora você deve configurar o código node.js do lado do servidor também, até que você possa iniciar e testar o script
node./something.js
Se algo estiver errado, por favor me avise!
Etapa 3: Código do lado do servidor
No lado do servidor, precisamos do servidor node.js com socket.io.
Portanto, adicione-o com:
npm instalar socket-io
Então, você precisará de um script semelhante ao código da 2ª etapa, com a diferença de que ele aguarda as conexões e, se estiverem presentes, transmitirá qualquer mensagem enviada do cliente para todos os clientes, neste caso, para os usuários do site …
Portanto, abra um serverscript.js com o seguinte:
var http = requer ('http'), io = requer ('socket.io'); // abre um servidor http mínimo. socket.io precisa disso. var server = http.createServer (function (req, res) {res.writeHead (200, {'Content-Type': 'text / html'}); res.end ('hello');}); // liga o soquete tcp - define sua porta! server.listen (7004, function () {console.log ("servidor TCP em execução na porta 7004");}); // analisa mensagens tcp var socket = io.listen (servidor); socket.on ('conexão', função (cliente, rinfo) {cliente.broadcast.emit ('sistema', 'alguém conectado…'); cliente.on ('mensagem', função (evento) {console.log (evento); // transmitir qualquer mensagem para todos os usuários conectados! socket.emit ('mensagem', evento);}); cliente.on ('todos', função (evento) {}); cliente.on ('desconectar', function () {socket.emit ('mensagem', 'alguém desconectou …');});});
Experimente testá-lo com
node./serverscript.js
Se o cliente também estiver em execução, você deverá ver a comunicação em ambos os consoles. Pelo menos estes:
Dados: 0
- informa periodicamente ao sistema que a comunicação do Arduino-> Raspberry-> servidor está funcionando.
e
Dados: 8
- indica que o botão está ativado.
Etapa 4: configurar o site
Agora estamos prontos com os 75%!
Conclua o trabalho árduo com a inclusão do código para o site.
É fácil.
primeiro, inclua o cliente socket.io:
em seguida, crie o sistema analisador de mensagens:
var socket;
socket = io ("yourserver.com:port"); socket.on ('conectar', função () {socket.send ('cliente anônimo - um usuário do site - está conectado!'); socket.on ('mensagem', função (msg) {// se você deseja ver cada mensagem, apenas descomente: // console.log (msg); if (msg == "/ RingTheBell 1") // aqui vem o código a ser usado para expressar o evento de botão: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "# 000";}, 1000);}; if (msg == "/ client1 1") {// aqui você pode colocar algo que reage ao status do cliente conectado};});
Voilá!
pronto.
Recomendado:
Ligue o LED pela Internet [MagicBlocks]: 10 etapas
Ligue o LED através da Internet [MagicBlocks]: Este tutorial irá ensiná-lo a controlar o LED em seu Magicbit usando Magicblocks
Atollic TrueStudio-Ligue o LED pressionando o botão usando STM32L100: 4 etapas
Atollic TrueStudio-Ligue o LED pressionando o botão usando STM32L100: Neste tutorial do STM32, vou falar sobre como ler um pino GPIO do STM32L100, então aqui farei um LED na placa brilhar apenas pressionando o botão
Ligue um LED com Watson Conversation: 6 etapas
Ligue um LED com Watson Conversation: O que você precisa: Kit Zagros Artificial Intelligence Raspberry Pi
Ligue um celular / telefone móvel com bateria externa ou rede elétrica: 3 etapas
Alimentar um celular / telefone móvel com bateria externa ou rede elétrica .: Introdução. Essa ideia só funcionará com telefones ou tablets se a bateria for removível. Observar a polaridade é importante, é claro. Tenha cuidado para não danificar seu dispositivo por descuido. Se você não tiver certeza de sua capacidade de fazer isso
Ligue e desligue o computador com o Google Home e Blynk: 6 etapas
Ligue e desligue o computador com o Google Home e Blynk: Olá pessoal, bem-vindos a este tutorial! Desta vez, mostrarei como ligar o computador com o Google HomeBEWARE !! LEIA ISSO !!: 1. Certifique-se de isolar o conexões! Eu escolhi imprimir um caso em 3D para corrigir este problema 2. Se você conectar a energia t