Obsah:

Prsten na webu!: 4 kroky
Prsten na webu!: 4 kroky

Video: Prsten na webu!: 4 kroky

Video: Prsten na webu!: 4 kroky
Video: ШАГ 4. Как заполнить на Бенефиты по Ю4Ю правильно? Пошаговая инструкция. Заполняем вместе. 2024, Listopad
Anonim
Image
Image
Tlačítko na Arduino
Tlačítko na Arduino

Ring the Web slouží k ovlivňování webových stránek z místních/skutečných míst.

Více informací o tom:

makker.hu/RingTheWeb/

Budeš potřebovat:

  • 1 tlačítko
  • 10k odpor
  • Arduino (jakýkoli typ)
  • kabely
  • malý počítač s nízkým výkonem - v tomto případě RPi
  • přístup k serveru nebo počítači s veřejnou IP pomocí node.js
  • webová stránka

Kroky:

  1. Tlačítko na arduino
  2. Arduino na Raspberry
  3. Malina na server
  4. Web na server

Krok 1: Tlačítko na Arduino

Nejprve potřebujete Arduino a tlačítko!

Je možný jakýkoli typ, je jen na vás, který si vyberete.

Chcete -li je připojit, postupujte podle oficiálního tutoriálu k tlačítkům Arduina.

Zde je kód Arduino:

// Arduino kód pro čtení digitálního pinu a odeslání hodnoty na sériový port

// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // otevřete sériový port pinMode (8, INPUT); // připojení tlačítka na Pin 8} int counter = 0; // něco použitého později void loop () {if (digitalRead (8) == 1) {// kontrola pinu 8 stav Serial.write ("8"); } zpoždění (100); čítač ++; if (counter = 20) {// každých 20x100 = 2000ms -> counter = 0; Serial.write ("0"); // odešle na server zprávu „Existuji“}} // To je vše!

Krok 2: Arduino na Raspberry

Arduino na Raspberry
Arduino na Raspberry

Nyní můžeme Arduino připojit k počítači. V tomto případě používáme Raspberry, kvůli jeho nízké spotřebě energie.

Připojte jej přes USB nebo přímo pomocí pinů RX-TX, popsaných zde.

Poté nainstalujte node.js a npm, jak je popsáno zde. Klíčová slova jsou:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

a pak

sudo apt -get install -y nodejs

NPM (správce balíčků Node.js) potřebuje moduly socket.io-client a serialport, proto je nainstalujte:

npm install socket.io-client

npm nainstalovat serialport

Otevřete a uložte soubor something.js s následujícím kódem:

// inicializace připojení socket.io:

var zásuvka; var io = require ('socket.io-client'); socket = io ("https://yourserver.com:port"); // pokud je připojení k serveru úspěšné: socket.on ('connect', function () {socket.send ("jsem tady!"); console.log ("připojeno k serveru");}); // inicializace komunikace sériového portu, NB /dev = ttyACM0 lze změnit: var SerialPort = require ('serialport'); var serialPort = new SerialPort ('/dev/ttyACM0', {baudRate: 9600}); // Pokud něco pochází z Arduina, odešle na server různé zprávy // podle toho 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. odeslat ('/client1 1');}}); // Čtení dostupných dat - myslím, že to není nutné serialPort.on ('readable', function () {console.log ('Data:', port.read ());});

Nyní byste měli také nastavit kód node.js na straně serveru, dokud skript můžete spustit a otestovat pomocí

uzel./something.js

Pokud je něco špatně, dejte mi prosím vědět!

Krok 3: Kód na straně serveru

Kód na straně serveru
Kód na straně serveru

Na straně serveru potřebujeme node.js se serverem socket.io.

Přidejte jej tedy pomocí:

npm install socket-io

Potom budete potřebovat podobný skript jako kód ve 2. kroku s tím rozdílem, že čeká na připojení, a pokud jsou přítomni, bude vysílat jakoukoli zprávu odeslanou z klienta všem klientům v tomto případ uživatelům webu…

Otevřete tedy servercript.js s následujícím postupem:

var http = vyžadovat ('http'), io = require ('socket.io'); // otevřete minimální server http. socket.io to potřebuje. var server = http.createServer (funkce (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('ahoj');}); // zapněte zásuvku tcp - nastavte svůj port! server.listen (7004, function () {console.log ("TCP server běžící na portu 7004");}); // analyzovat zprávy tcp var socket = io.listen (server); socket.on ('connection', function (client, rinfo) {client.broadcast.emit ('system', 'somebody connected …'); client.on ('message', function (event) {console.log (event); // vyslat jakoukoli zprávu všem připojeným uživatelům! socket.emit ('message', event);}); client.on ('everyone', function (event) {}); client.on ('disconnect', function () {socket.emit ('message', 'somecon disconneted …');});});

Zkuste to vyzkoušet pomocí

uzel./serverscript.js

Pokud klient běží také, měli byste vidět jeho komunikaci na obou konzolách. Alespoň tyto:

Údaje: 0

-pravidelně říká systému, že komunikace serveru Arduino-> Raspberry-> funguje.

a

Údaje: 8

- říká, že tlačítko je zapnuté.

Krok 4: Konfigurace webových stránek

Konfigurovat web
Konfigurovat web

Nyní jsme připraveni na 75%!

Dokončete náročnou práci zahrnutím kódu pro web.

Je to snadné.

nejprve zahrňte klienta socket.io:

pak vytvořte systém analyzátoru zpráv:

var zásuvka;

socket = io ("váš server.com:port"); socket.on ('connect', function () {socket.send ('anonym client - a website user - is connected!'); socket.on ('message', function (msg) {// if you want to see každou zprávu, stačí ji odkomentovat: // console.log (msg); if (msg == "/RingTheBell 1") // here comes the code to use for Expressing the pushbutton event: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "#000";}, 1000);}; if (msg == "/client1 1") {// zde můžete něco umístit který reaguje na stav připojeného klienta};});

Voilá!

připraven.

Doporučuje: