Indholdsfortegnelse:
- Trin 1: Tryk på knappen til Arduino
- Trin 2: Arduino til hindbær
- Trin 3: Kode på serversiden
- Trin 4: Konfigurer websted
![Ring på nettet !: 4 trin Ring på nettet !: 4 trin](https://i.howwhatproduce.com/images/001/image-2697-136-j.webp)
Video: Ring på nettet !: 4 trin
![Video: Ring på nettet !: 4 trin Video: Ring på nettet !: 4 trin](https://i.ytimg.com/vi/noytZdKPno4/hqdefault.jpg)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
![Image Image](https://i.howwhatproduce.com/images/001/image-2697-138-j.webp)
![](https://i.ytimg.com/vi/9Jq9KA99mws/hqdefault.jpg)
![Trykknap til Arduino Trykknap til Arduino](https://i.howwhatproduce.com/images/001/image-2697-139-j.webp)
Ring the Web er til at påvirke websteder fra lokale/rigtige steder.
Mere info om det:
makker.hu/RingTheWeb/
Du skal bruge:
- 1 trykknap
- 10k modstand
- Arduino (enhver type)
- kabler
- lille computer med lav effekt - i dette tilfælde en RPi
- adgang til en server eller computer med offentlig IP med node.js
- internet side
Trin:
- Trykknap til arduino
- Arduino til hindbær
- Hindbær til server
- Websted til server
Trin 1: Tryk på knappen til Arduino
Først skal du bruge en Arduino og en trykknap!
Enhver type af dem er mulig, det er op til dig at vælge.
For at forbinde dem, følg venligst den officielle knap -tutorial til Arduino.
Her er Arduino -koden:
// Arduino -kode til læsning af en digital pin og sende værdi til den serielle port
// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // åbne seriel port pinMode (8, INPUT); // tilslut trykknap til Pin 8} int -tæller = 0; // noget brugt senere tomrumsløjfe () {if (digitalRead (8) == 1) {// tjek pin 8 -status Serial.write ("8"); } forsinkelse (100); tæller ++; hvis (tæller = 20) {// hver 20x100 = 2000ms -> tæller = 0; Serial.write ("0"); // sender en "jeg er eksisterende" -meddelelse til serveren}} // det er alt!
Trin 2: Arduino til hindbær
![Arduino til hindbær Arduino til hindbær](https://i.howwhatproduce.com/images/001/image-2697-140-j.webp)
Nu kan vi slutte Arduino til en computer. I dette tilfælde bruger vi en hindbær på grund af dets lave strømforbrug.
Tilslut det via USB eller direkte med RX-TX benene, beskrevet her.
Installer derefter node.js og npm som beskrevet her. Nøgleordene er:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
og så
sudo apt -get install -y nodejs
Npm (Node.js's pakkehåndtering) har brug for socket.io-klient- og serielportmoduler, så installer dem:
npm installer socket.io-klient
npm installer serieport
Åbn og gem en something.js -fil med følgende kode:
// initialiser socket.io -forbindelsen:
var socket; var io = require ('socket.io-klient'); socket = io ("https://yourserver.com:port"); // hvis forbindelsen til serveren er vellykket: socket.on ('connect', function () {socket.send ("jeg er her!"); console.log ("forbundet til serveren");}); // initialiser den serielle portkommunikation, NB /dev = ttyACM0 kan ændres: var SerialPort = require ('serialport'); var serialPort = ny SerialPort ('/dev/ttyACM0', {baudRate: 9600}); // Hvis noget kommer fra Arduino, sender forskellige meddelelser // til serveren i henhold til det serialPort.on ('data', funktion (data) {console.log ('Data:', data.toString ('ascii')); if (data.indexOf ('8')! ==-1) {socket.send ('/RingTheBell 1');} if (data.indexOf ('0')! ==-1) {socket. send ('/client1 1');}}); // Læs tilgængelige data - jeg tror, det ikke er nødvendigt serialPort.on ('læsbar', funktion () {console.log ('Data:', port.read ());});
Nu skal du også konfigurere serversiden node.js -kode, indtil du kan starte og teste scriptet ved
node./something.js
Hvis der er noget galt, så lad mig det vide!
Trin 3: Kode på serversiden
![Kode på serversiden Kode på serversiden](https://i.howwhatproduce.com/images/001/image-2697-141-j.webp)
På serversiden har vi brug for node.js med socket.io -server.
Så tilføj det med:
npm installer socket-io
Derefter har du brug for et lignende script til koden på 2. trin, med den forskel, at den venter på forbindelser, og hvis de er til stede, sender den enhver besked sendt fra klienten til alle klienter, i dette sag, til webstedsbrugere …
Så åbn en serverscript.js med følgende:
var http = require ('http'), io = require ('socket.io'); // åbne en minimal http -server. socket.io har brug for det. var server = http.createServer (function (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('hej');}); // Tænd TCP -stikket - sæt din port! server.listen (7004, function () {console.log ("TCP -server kører på port 7004");}); // analyser tcp -meddelelser var socket = io.listen (server); socket.on ('forbindelse', funktion (klient, rinfo) {client.broadcast.emit ('system', 'nogen tilsluttet …'); client.on ('meddelelse', funktion (hændelse) {console.log (hændelse); // udsende enhver meddelelse til alle tilsluttede brugere! socket.emit ('besked', begivenhed);}); klient.on ('alle', funktion (begivenhed) {}); klient.on ('afbryd', function () {socket.emit ('meddelelse', 'nogen afbrudt …');});});
Prøv at teste det med
node./serverscript.js
Hvis klienten også kører, skal du se deres kommunikation på begge konsoller. I hvert fald disse:
Data: 0
-fortæller periodisk systemet, at Arduino-> Hindbær-> serverkommunikation fungerer.
og
Data: 8
- fortæller, at knappen er tændt.
Trin 4: Konfigurer websted
![Konfigurer websted Konfigurer websted](https://i.howwhatproduce.com/images/001/image-2697-142-j.webp)
Nu er vi klar med de 75%!
Afslut det hårde arbejde med inkluder koden til webstedet.
Det er nemt.
Først skal du inkludere socket.io -klienten:
opret derefter meddelelsesanalysatorsystemet:
var socket;
socket = io ("din server.com:port"); socket.on ('connect', function () {socket.send ('anonym klient - en webstedsbruger - er tilsluttet!'); socket.on ('meddelelse', funktion (msg) {// hvis du vil se hver besked, bare kommenter det: // console.log (msg); hvis (msg == "/RingTheBell 1") // her kommer koden, der skal bruges til at udtrykke trykknaphændelsen: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "#000";}, 1000);}; hvis (msg == "/client1 1") {// her kan du placere noget som reagerer på den tilsluttede klientstatus};});
Voilá!
parat.
Anbefalede:
UK Ring Video Doorbell Pro, der arbejder med mekanisk klokke: 6 trin (med billeder)
![UK Ring Video Doorbell Pro, der arbejder med mekanisk klokke: 6 trin (med billeder) UK Ring Video Doorbell Pro, der arbejder med mekanisk klokke: 6 trin (med billeder)](https://i.howwhatproduce.com/images/001/image-277-j.webp)
UK Ring Video Doorbell Pro, der arbejder med mekanisk klokke: **************************************** **************** Vær opmærksom på, at denne metode kun fungerer med vekselstrøm lige nu.Jeg vil opdatere, hvis/når jeg finder en løsning til dørklokker, der bruger jævnstrømI mellemtiden, hvis du har en jævnstrøm levering, skal du ikke
Lydstyrkeindikator Neopixel Ws2812 LED Ring & Arduino: 8 trin
![Lydstyrkeindikator Neopixel Ws2812 LED Ring & Arduino: 8 trin Lydstyrkeindikator Neopixel Ws2812 LED Ring & Arduino: 8 trin](https://i.howwhatproduce.com/images/001/image-1645-j.webp)
Lydstyrkeindikator Neopixel Ws2812 LED Ring & Arduino: I denne vejledning lærer vi, hvordan man laver en volumenindikator ved hjælp af en Neopixel Ws2812 LED -ring og arduino. Se videoen
DIY MIDI CONTROLLER USB Plug & Play (UPGRADE NEOPIXEL RING): 12 trin
![DIY MIDI CONTROLLER USB Plug & Play (UPGRADE NEOPIXEL RING): 12 trin DIY MIDI CONTROLLER USB Plug & Play (UPGRADE NEOPIXEL RING): 12 trin](https://i.howwhatproduce.com/images/002/image-3660-j.webp)
DIY MIDI CONTROLLER USB Plug & Play (UPGRADE NEOPIXEL RING): Lidenskabelig MAO og elektronisk musik, men også at se, at det var muligt at oprette et personlig Midi -interface, jeg lavede mine6 Potentiometre og 12 knapper (on / off), men for at gøre stedet vanskeligere at det allerede var, jeg ville tilføje visuel indikation
M5StickC ESP32 & NeoPixels LED Ring Tilfældig farve: 7 trin
![M5StickC ESP32 & NeoPixels LED Ring Tilfældig farve: 7 trin M5StickC ESP32 & NeoPixels LED Ring Tilfældig farve: 7 trin](https://i.howwhatproduce.com/images/002/image-4687-j.webp)
M5StickC ESP32 & NeoPixels LED Ring Tilfældig farve: I dette projekt lærer vi, hvordan man viser en tilfældig farve på NeoPixels LED Ring ved hjælp af et M5StickC ESP32 board. Se videoen
DIY gitterbundet inverter (leverer ikke nettet) UPS -alternativ: 7 trin (med billeder)
![DIY gitterbundet inverter (leverer ikke nettet) UPS -alternativ: 7 trin (med billeder) DIY gitterbundet inverter (leverer ikke nettet) UPS -alternativ: 7 trin (med billeder)](https://i.howwhatproduce.com/images/001/image-407-52-j.webp)
DIY Grid Tied Inverter (ikke Feed the Grid) UPS -alternativ: Dette er et opfølgende indlæg fra min anden Instructable om at lave en grid tie inverter, der ikke føder tilbage til nettet, da det nu altid er muligt at gøre dette i visse områder som et DIY -projekt, og nogle steder tillader det ikke at fodre der ind