Turinys:
- 1 žingsnis: paspauskite mygtuką „Arduino“
- 2 žingsnis: Arduino į avietę
- 3 veiksmas: serverio pusės kodas
- 4 veiksmas: sukonfigūruokite svetainę
Video: Skambinkite žiniatinklyje !: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
„Ring the Web“skirtas paveikti svetaines iš vietinių/tikrų vietų.
Daugiau informacijos apie tai:
makker.hu/RingTheWeb/
Jums reikės:
- 1 mygtukas
- 10k rezistorius
- Arduino (bet kokio tipo)
- kabeliai
- mažas, mažos galios kompiuteris - šiuo atveju RPi
- prieiga prie serverio ar kompiuterio su viešu IP su node.js
- Interneto svetainė
Žingsniai:
- Mygtukas į arduino
- Arduino į avietę
- Avietė į serverį
- Svetainė į serverį
1 žingsnis: paspauskite mygtuką „Arduino“
Pirmiausia jums reikia „Arduino“ir mygtuko!
Bet koks jų tipas yra įmanomas, jūs turite pasirinkti.
Norėdami juos sujungti, vadovaukitės oficialia „Arduino“mygtukų pamoka.
Čia yra „Arduino“kodas:
// „Arduino“kodas, skirtas skaitmeniniam kaiščiui skaityti ir reikšmei siųsti į nuoseklųjį prievadą
// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // atidaryti nuoseklųjį prievadą pinMode (8, INPUT); // prijungti mygtuką prie kaiščio 8} int counter = 0; // kažkas naudojamas vėliau void loop () {if (digitalRead (8) == 1) {// patikrinkite 8 kaiščio būseną Serial.write ("8"); } uždelsimas (100); skaitiklis ++; if (skaitiklis = 20) {// kas 20x100 = 2000ms -> skaitiklis = 0; Serial.write („0“); // siunčia serveriui pranešimą „aš esu“}} // tai viskas!
2 žingsnis: Arduino į avietę
Dabar galime prijungti „Arduino“prie kompiuterio. Šiuo atveju mes naudojame avietę dėl mažos energijos sąnaudos.
Prijunkite jį per USB arba tiesiogiai su čia aprašytais RX-TX kaiščiais.
Tada įdiekite node.js ir npm, kaip aprašyta čia. Raktiniai žodžiai yra šie:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
ir tada
sudo apt -get install -y nodejs
Npm („Node.js“paketų tvarkytojui) reikia „socket.io-client“ir „serialport“modulių, todėl įdiekite juos:
npm įdiegti socket.io-client
npm įdiegti serijinį prievadą
Atidarykite ir išsaugokite failą something.js naudodami šį kodą:
// inicijuoti socket.io ryšį:
var lizdas; var io = reikalauti ('socket.io-client'); lizdas = io ("https://yourserver.com:port"); // jei ryšys su serveriu sėkmingas: socket.on ('connect', function () {socket.send ("aš čia!"); console.log ("prijungtas prie serverio");}); // inicijuoti serijinio prievado ryšį, NB /dev = ttyACM0 galima pakeisti: var SerialPort = reikalauja ('serialport'); var serialPort = naujas SerialPort ('/dev/ttyACM0', {baudRate: 9600}); // Jei kažkas ateina iš „Arduino“, siunčia skirtingus pranešimus // į serverį pagal tai serialPort.on ('duomenys', funkcija (duomenys) {console.log ('Duomenys:', data.toString ('ascii')); if (data.indexOf ('8')! ==-1) {socket.send ('/RingTheBell 1');} if (data.indexOf ('0')! ==-1) {socket. siųsti ('/client1 1');}}); // Skaityti turimus duomenis - manau, kad tai nėra būtina serialPort.on ('readable', function () {console.log ('Data:', port.read ());});
Dabar taip pat turėtumėte nustatyti serverio pusės node.js kodą, kol galėsite pradėti ir išbandyti scenarijų
mazgas./kažkas.js
Jei kažkas negerai, praneškite man!
3 veiksmas: serverio pusės kodas
Serverio pusėje mums reikia node.js su socket.io serveriu.
Taigi pridėkite jį:
npm įdiegti „socket-io“
Tada jums reikės panašaus scenarijaus į kodą antrame žingsnyje, tik tuo atveju, kai jis laukia prisijungimo, o jei jie bus, tai transliuos bet kokį iš kliento išsiųstą pranešimą visiems klientams. atveju, svetainės vartotojams …
Taigi, atidarykite servercript.js, atlikdami šiuos veiksmus:
var http = reikalauti ('http'), io = reikalauti ('socket.io'); // atidaryti minimalų http serverį. lizdas.io to reikia. var serveris = http.createServer (funkcija (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('labas');}); // įjunkite tcp lizdą - nustatykite savo prievadą! server.listen (7004, function () {console.log ("TCP serveris, veikiantis 7004 prievade");}); // analizuoti tcp pranešimus var socket = io.listen (serveris); socket.on („ryšys“, funkcija (klientas, rinfo) {client.broadcast.emit („sistema“, „kažkas prijungtas …“); client.on („pranešimas“, funkcija (įvykis) {console.log (įvykis); // transliuokite bet kokį pranešimą visiems prijungtiems vartotojams! socket.emit ('pranešimas', įvykis);}); client.on ('visiems', funkcija (įvykis) {}); client.on ('atsijungti', function () {socket.emit ('pranešimas', 'kažkas atjungtas …');});});
Pabandykite tai išbandyti
mazgas./serverscript.js
Jei klientas taip pat veikia, turėtumėte matyti jo bendravimą abiejose konsolėse. Bent jau šie:
Duomenys: 0
-periodiškai praneša sistemai, kad „Arduino“-> „Raspberry“-> serverio ryšys veikia.
ir
Duomenys: 8
- sako, kad mygtukas įjungtas.
4 veiksmas: sukonfigūruokite svetainę
Dabar mes pasiruošę 75%!
Užbaikite sunkų darbą įtraukdami svetainės kodą.
Tai lengva.
pirmiausia įtraukite „socket.io“klientą:
tada sukurkite pranešimų analizatoriaus sistemą:
var lizdas;
lizdas = io ("tavo serveris.com: uostas"); socket.on ('connect', function () {socket.send ('anoniminis klientas - svetainės vartotojas - prijungtas!'); socket.on ('message', function (msg) {// jei norite pamatyti kiekvieną pranešimą, tiesiog nekomentuokite jo: // console.log (msg); if (msg == "/RingTheBell 1") // čia pateikiamas kodas, naudojamas norint išreikšti mygtuko įvykį: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "#000";}, 1000);}; if (msg == "/client1 1") {// čia galite ką nors įdėti kuri reaguoja į prijungto kliento būseną};});
Voilá!
pasiruošę.
Rekomenduojamas:
„Arduino“automobilių atbulinės eigos įspėjimo sistema - Žingsniai po žingsnio: 4 žingsniai
„Arduino“automobilių atbulinės eigos įspėjimo sistema | Žingsniai po žingsnio: Šiame projekte aš suprojektuosiu paprastą „Arduino“automobilio atbulinės eigos stovėjimo jutiklio grandinę, naudodamas „Arduino UNO“ir ultragarsinį jutiklį „HC-SR04“. Ši „Arduino“pagrįsta automobilio atbulinės eigos įspėjimo sistema gali būti naudojama autonominei navigacijai, robotų diapazonui ir kitiems diapazonams
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su nuotraukomis): 6 žingsniai
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su paveikslėliais): norite Helovino metu išgąsdinti savo draugus ir sukelti riksmą? O gal tiesiog norite padaryti gerą išdaigą? Šis iššokantis „Zombies“ekranas gali tai padaryti! Šioje instrukcijoje aš išmokysiu jus, kaip lengvai padaryti iššokančius zombius naudojant „Arduino“. HC-SR0
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): 8 žingsniai
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): ultragarsiniai garso keitikliai L298N nuolatinės srovės adapterio maitinimo šaltinis su vyrišku nuolatinės srovės kaiščiu „Arduino UNOBreadboard“Kaip tai veikia: pirmiausia įkelkite kodą į „Arduino Uno“(tai yra mikrovaldiklis su skaitmeniniu ir analoginiai prievadai kodui konvertuoti (C ++)
Skambinkite pjezo skambesiu su „Blynk“ir „XinaBox“: 9 žingsniai
Skambinkite pjezo skambesiu su „Blynk“ir „XinaBox“: valdykite bet kurį 5 V elementą naudodami „Blynk“ir „xChips“. Šis projektas skamba „Piezo Buzzer“iš mano telefono
Namų automatika: skambinkite aliarmu ir rodykite LCD ekrane, kai temperatūra viršija slenkstinę vertę: 5 žingsniai
Namų automatika: skambinkite aliarmu ir rodykite LCD ekrane, kai temperatūra viršija slenkstinę vertę: Šiame tinklaraštyje bus parodyta, kaip sukurti namų automatikos sistemą, kuri pradės skambėti, kai temperatūra pasieks didesnę nei užprogramuota slenkstinė vertė. LCD ekrane ir toliau bus rodoma esama patalpos temperatūra ir reikalingi veiksmai