Satura rādītājs:
- 1. solis: spiediet pogu Arduino
- 2. solis: Arduino uz aveņu
- 3. darbība: servera puses kods
- 4. darbība: konfigurējiet vietni
Video: Zvaniet tīmeklī!: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Ring the Web ir paredzēts vietņu ietekmēšanai no vietējām/reālām vietām.
Vairāk informācijas par to:
makker.hu/RingTheWeb/
Jums būs nepieciešams:
- 1 spiedpoga
- 10k rezistors
- Arduino (jebkura veida)
- kabeļi
- mazs, mazjaudas dators - šajā gadījumā RPi
- piekļuve serverim vai datoram ar publisku IP ar node.js
- mājas lapā
Soļi:
- Spiediet pogu arduino
- Arduino uz aveņu
- Aveņu uz serveri
- Vietne uz serveri
1. solis: spiediet pogu Arduino
Vispirms jums ir nepieciešams Arduino un spiedpoga!
Jebkurš no tiem ir iespējams, tas ir atkarīgs no jums.
Lai tos savienotu, lūdzu, izpildiet Arduino oficiālo pogu apmācību.
Šeit ir Arduino kods:
// Arduino kods digitālās tapas lasīšanai un vērtības nosūtīšanai uz seriālo portu
// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // atvērt seriālo portu pinMode (8, INPUT); // savienot spiedpogu ar Pin 8} int counter = 0; // kaut kas lietots vēlāk void loop () {if (digitalRead (8) == 1) {// pārbaudīt pin 8 statusu Serial.write ("8"); } kavēšanās (100); skaitītājs ++; ja (skaitītājs = 20) {// ik pēc 20x100 = 2000ms -> skaitītājs = 0; Serial.write ("0"); // nosūta serverim ziņojumu "es esmu esošs"}} // tas arī viss!
2. solis: Arduino uz aveņu
Tagad mēs varam savienot Arduino ar datoru. Šajā gadījumā mēs izmantojam aveņu, jo tai ir zems enerģijas patēriņš.
Pievienojiet to, izmantojot USB vai tieši ar šeit aprakstītajām RX-TX tapām.
Pēc tam instalējiet node.js un npm, kā aprakstīts šeit. Atslēgvārdi ir:
čokurošanās -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
un tad
sudo apt -get install -y nodejs
Npm (Node.js pakotņu pārvaldniekam) ir nepieciešami socket.io-client un serialport moduļi, tāpēc instalējiet tos:
npm instalējiet socket.io-client
npm instalējiet seriālo portu
Atveriet un saglabājiet failu something.js ar šādu kodu:
// inicializējiet socket.io savienojumu:
var ligzda; var io = pieprasīt ('socket.io-client'); ligzda = io ("https://yourserver.com:port"); // ja savienojums ar serveri ir veiksmīgs: socket.on ('connect', function () {socket.send ("es esmu šeit!"); console.log ("savienots ar serveri");}); // inicializēt seriālā porta sakarus, NB /dev = ttyACM0 var mainīt: var SerialPort = need ('serialport'); var serialPort = jauns SerialPort ('/dev/ttyACM0', {baudRate: 9600}); // Ja kaut kas nāk no Arduino, tas nosūta dažādus ziņojumus // uz serveri atbilstoši tam serialPort.on ('dati', funkcija (dati) {console.log ('Dati:', data.toString ('ascii')); if (data.indexOf ('8')! ==-1) {socket.send ('/RingTheBell 1');} if (data.indexOf ('0')! ==-1) {socket. sūtīt ('/client1 1');}}); // Lasīt pieejamos datus - es domāju, ka tas nav nepieciešams serialPort.on ('lasāms', function () {console.log ('Dati:', port.read ());});
Tagad jums jāiestata arī servera puses mezgls node.js, līdz varat sākt un pārbaudīt skriptu
mezgls./ kaut kas.js
Ja kaut kas nav kārtībā, lūdzu, informējiet mani!
3. darbība: servera puses kods
Servera pusē mums ir nepieciešams node.js ar socket.io serveri.
Tāpēc pievienojiet to:
npm instalējiet socket-io
Tad jums būs nepieciešams līdzīgs skripts kodam otrajā solī, ar atšķirību, ka tas gaida savienojumus, un, ja tie ir klāt, tas pārraidīs visus ziņojumus, kas no klienta nosūtīti visiem klientiem. gadījumā vietnes lietotājiem …
Tātad, atveriet servercript.js ar sekojošo:
var http = prasīt ('http'), io = pieprasīt ('socket.io'); // atvērt minimālu http serveri. socket.io to vajag. var server = http.createServer (funkcija (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('sveiki');}); // ieslēdz tcp ligzdu - iestatiet portu! server.listen (7004, function () {console.log ("TCP serveris, kas darbojas 7004. portā");}); // analizēt tcp ziņojumus var socket = io.listen (serveris); socket.on ('savienojums', funkcija (klients, rinfo) {client.broadcast.emit ('sistēma', 'kāds pievienots …'); client.on ('ziņojums', funkcija (notikums) {console.log (notikums); // pārraidīt jebkuru ziņojumu visiem saistītajiem lietotājiem! socket.emit ('ziņojums', notikums);}); client.on ('ikviens', funkcija (notikums) {}); client.on ('atvienot', function () {socket.emit ('message', 'somebody disconneted …');});});
Mēģiniet to pārbaudīt ar
mezgls./serverscript.js
Ja klients arī darbojas, jums vajadzētu redzēt viņa saziņu abās konsolēs. Vismaz šie:
Dati: 0
-periodiski paziņo sistēmai, ka Arduino-> Raspberry-> servera sakari darbojas.
un
Dati: 8
- norāda, ka poga ir ieslēgta.
4. darbība: konfigurējiet vietni
Tagad mēs esam gatavi ar 75%!
Pabeidziet smago darbu, iekļaujot vietnes kodu.
Tas ir viegli.
vispirms iekļaujiet socket.io klientu:
pēc tam izveidojiet ziņojumu analizatora sistēmu:
var ligzda;
ligzda = io ("yourserver.com:port"); socket.on ('connect', function () {socket.send ('anonīms klients - vietnes lietotājs - ir pievienots!'); socket.on ('message', function (msg) {// ja vēlaties redzēt katru ziņojumu, vienkārši noņemiet komentārus: // console.log (msg); if (msg == "/RingTheBell 1") // šeit ir kods, kas jāizmanto spiedpogu notikuma izpausmei: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "#000";}, 1000);}; if (msg == "/client1 1") {// šeit jūs varat ievietot kaut ko kas reaģē uz saistītā klienta statusu};});
Voila!
gatavs.
Ieteicams:
Akustiskā levitācija ar Arduino Uno soli pa solim (8 soļi): 8 soļi
Akustiskā levitācija ar Arduino Uno soli pa solim (8 soļi): ultraskaņas skaņas pārveidotāji L298N līdzstrāvas adaptera strāvas padeve ar vīriešu līdzstrāvas tapu Arduino UNOBreadboard un analogie porti koda konvertēšanai (C ++)
Tīmeklī savienots digitālais pulkstenis: 7 soļi
Interneta savienots digitālais pulkstenis: vietnē Amazon atrasts digitālais pulkstenis 10 USD vērtībā. Tagad pielāgojiet to, lai iegūtu laiku no interneta
Tīmeklī savienots SMART LED animācijas pulkstenis ar tīmekļa vadības paneli, sinhronizēts laika serveris: 11 soļi (ar attēliem)
Tīmeklī savienots SMART LED animācijas pulkstenis ar tīmekļa vadības paneli, sinhronizēts laika serveris: šī pulksteņa stāsts sniedzas tālu-vairāk nekā 30 gadus. Mans tēvs aizsāka šo ideju, kad man bija tikai 10 gadu, ilgi pirms gaismas diožu revolūcijas - atpakaļ, kad gaismas diodes ir 1/1000 to pašreizējā apžilbinošā spožuma. Patiesa
Iegūstiet bezmaksas bezvadu tīmekli savā Motorola/nextel/boost tālrunī: 6 soļi
Iegūstiet bezmaksas bezvadu tīmekli savā Motorola/nextel/boost tālrunī: Šodien es jums iemācīšu, kā savā bezmaksas tālrunī/motorola/boost tālrunī iegūt bezmaksas bezvadu tīmekli
Izveidojiet tīmeklī savienotu robotu (par aptuveni 500 USD) (izmantojot Arduino un Netbook): 6 soļi (ar attēliem)
Izveidojiet tīmeklī savienotu robotu (par aptuveni 500 ASV dolāriem) (izmantojot Arduino un Netbook): šī pamācība parādīs, kā izveidot savu tīmekļa savienoto robotu (izmantojot Arduino mikrokontrolleri un Asus eee datoru). Kāpēc vēlaties Web Savienots robots? Protams, lai spēlētu. Vadiet savu robotu no visas istabas vai pāri skaitam