Obsah:
- Krok 1: Tlačítko na Arduino
- Krok 2: Arduino na Raspberry
- Krok 3: Kód na straně serveru
- Krok 4: Konfigurace webových stránek
Video: Prsten na webu!: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
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:
- Tlačítko na arduino
- Arduino na Raspberry
- Malina na server
- 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
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
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
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:
Jak jsem vytvořil košík s ovocem pomocí „webu“ve Fusion 360?: 5 kroků
Jak jsem vytvořil košík s ovocem pomocí „webu“ve Fusion 360 ?: Před několika dny jsem si uvědomil, že jsem nepoužil " Žebra " funkce Fusion 360. Tak mě napadlo použít ho v tomto projektu. Nejjednodušší aplikace " Žebra " funkce může mít podobu košíku s ovocem, že? Podívejte se, jak používat
Připojení vašeho Raspberry Pi k webu: 9 kroků
Připojení vašeho Raspberry Pi k webu: V této lekci se naučíte, jak vytvořit webovou stránku, shromažďovat data pomocí celosvětového webu a používat API k odesílání obrázků na Tumblr a Twitter
Vytvoření prvního webu: 10 kroků
Vytvoření prvního webu: V tomto kurzu se naučíte vytvářet základní webovou stránku, která bude obsahovat propojený seznam stylů a interaktivní soubor javascript
DIY nositelný prsten LED: 4 kroky
DIY Wearable Ring LED: Dobrý den, před několika měsíci jsem postavil svůj první SMD PCB, takže bych se s vámi chtěl podělit o své zkušenosti. Navrhneme kruhový PCB se 4 ČERVENÝMI LED diodami, tuto desku lze použít jako indikátor nebo jen jako dekorace na Halloween :). Zkontrolujte kouzlo
Přidání virtuálního webu Drupal do plně oddělené farmy Drupal: 3 kroky
Přidání virtuálního webu Drupal do plně oddělené farmy Drupal: Drupal je systém pro správu obsahu (CMS). Jedním z jeho charakteristických rysů je snadná správa několika webů z jedné kódové základny - tolik vychvalované farmy Drupal. Tento instruktáž bude zaměřen na to, aby vám pomohl vytvořit plně oddělenou s