Inhoudsopgave:
- Stap 1: Drukknop naar Arduino
- Stap 2: Arduino naar Raspberry
- Stap 3: Server-side code
- Stap 4: Website configureren
Video: Bel het web!: 4 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Ring the Web is bedoeld voor het beïnvloeden van websites van lokale/echte plaatsen.
Meer info erover:
makker.hu/RingTheWeb/
Je hebt nodig:
- 1 drukknop
- 10k weerstand
- Arduino (elk type)
- kabels
- kleine, energiezuinige computer - in dit geval een RPi
- toegang tot een server of computer met een openbaar IP-adres met node.js
- website
Stappen:
- Drukknop naar arduino
- Arduino naar framboos
- Framboos naar server
- Website naar server
Stap 1: Drukknop naar Arduino
Eerst heb je een Arduino en een drukknop nodig!
Elk type van hen is mogelijk, het is aan jou om te kiezen.
Volg de officiële knop-tutorial van Arduino om ze aan te sluiten.
Hier is de Arduino-code:
// Arduino-code voor het lezen van een digitale pin en het verzenden van waarde naar de seriële poort
// Balázs Kovács, 2018. void setup () { Serial.begin (9600); // open de seriële poort pinMode (8, INPUT); // sluit de drukknop aan op Pin 8 } int counter = 0; // iets gebruikt later void loop () {if (digitalRead (8) == 1) { // controleer pin 8 status Serial.write ("8"); } vertraging(100); teller++; if(counter=20) {// elke 20x100=2000ms -> counter = 0; Serieel.schrijven("0"); // stuurt een "ik ben bestaand" bericht naar de server } } // dat is alles!
Stap 2: Arduino naar Raspberry
Nu kunnen we Arduino op een computer aansluiten. In dit geval gebruiken we een Raspberry, vanwege het lage stroomverbruik.
Sluit hem aan via USB of rechtstreeks met de RX-TX-pinnen, zoals hier beschreven.
Installeer vervolgens node.js en npm zoals hier beschreven. De trefwoorden zijn:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
en dan
sudo apt-get install -y nodejs
Npm (de pakketbeheerder van Node.js) heeft socket.io-client en serialport-modules nodig, dus installeer ze:
npm install socket.io-client
npm seriële poort installeren
Open en bewaar een something.js-bestand met de volgende code:
// initialiseer de socket.io-verbinding:
var-aansluiting; var io = vereisen('socket.io-client'); socket = io("https://uwserver.com:poort"); // als de verbinding met de server succesvol is: socket.on('connect', function(){ socket.send("ik ben hier!"); console.log("verbonden met de server");}); // initialiseer de seriële poortcommunicatie, NB /dev=ttyACM0 kan worden gewijzigd: var SerialPort = required('serialport'); var serialPort = nieuwe SerialPort('/dev/ttyACM0', {baudRate: 9600}); // Als iets van de Arduino komt, stuurt het verschillende berichten // naar de server volgens het 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. send('/client1 1'); } }); // Lees gegevens die beschikbaar zijn - ik denk dat het niet nodig is serialPort.on('readable', function () { console.log('Data:', port.read());});
Nu moet u ook de server-side node.js-code instellen, totdat u het script kunt starten en testen door:
knooppunt./iets.js
Als er iets mis is, laat het me weten!
Stap 3: Server-side code
Aan de serverkant hebben we node.js nodig met socket.io-server.
Dus voeg het toe met:
npm socket-io installeren
Dan heb je een soortgelijk script nodig als de code in de 2e stap, met het verschil dat het wacht op verbindingen, en als ze aanwezig zijn, zal het elk bericht uitzenden dat van de client naar alle clients wordt verzonden, in deze geval, aan de gebruikers van de website…
Open dus een serverscript.js met het volgende:
var http = vereisen('http'), io = vereisen('socket.io'); // open een minimale http-server. socket.io heeft het nodig. var server = http.createServer(function(req, res) { res.writeHead(200, { 'Content-Type': 'text/html' }); res.end('hallo'); }); // zet tcp-socket aan - stel je poort in! server.listen(7004, function() { console.log("TCP-server draait op poort 7004"); }); // analyseer tcp-berichten 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); // zend elk bericht uit naar alle verbonden gebruikers! socket.emit('message', event); }); client.on('everybody', function(event){ }); client.on('disconnect', function(){ socket.emit('message', 'iemand heeft de verbinding verbroken…'); }); });
Probeer het eens met
node./serverscript.js
Als de client ook actief is, zou u hun communicatie op beide consoles moeten zien. Deze tenminste:
Gegevens: 0
- vertelt het systeem periodiek dat de Arduino->Raspberry->servercommunicatie werkt.
en
Gegevens: 8
- geeft aan dat de knop is ingeschakeld.
Stap 4: Website configureren
Nu zijn we klaar met de 75%!
Rond het harde werk af met de code voor de website.
Het is makkelijk.
neem eerst de socket.io-client op:
maak vervolgens het systeem voor het analyseren van berichten:
var-aansluiting;
socket = io("uwserver.com:poort"); socket.on('connect', function () { socket.send('anonym client - a website user - is connected!'); socket.on('message', function (msg) { // if You want to see elk bericht, verwijder het commentaar: // console.log(msg); if (msg == "/RingTheBell 1") // hier komt de code die moet worden gebruikt voor het uitdrukken van de drukknopgebeurtenis: { document.body.style.background = "#ccc"; setTimeout(function() { document.body.style.background = "#000"; }, 1000); }; if (msg == "/client1 1") { // hier kun je iets plaatsen die reageert op de status van de verbonden client }; });
Voila!
klaar.
Aanbevolen:
Raspberry Pi Oled-klok Bekijk het, hoor het en voel het: 5 stappen (met afbeeldingen)
Raspberry Pi Oled Clock Watch It Hear It and Feel It: dit is een slimme klok die de tijd op een OLED-display weergeeft en je kunt ook de tijd horen op verschillende tijdsintervallen die hulpvol zijn voor blinden en het verandert ook de led-kleur met de tijd zoals licht in de schemering licht in de avond wordt oranje naar geel en houdt van t
Schrijf het ! Maak het ! Deel het!: 4 stappen
Schrijf het ! Maak het ! Deel het!: Mijn leerlingen hebben Lego gebruikt om creativiteit toe te voegen aan hun schrijven, de organisatie van het schrijven en om hun werk digitaal te presenteren met hun familie en met hun leeftijdsgenoten in de klas
Hoe muziek te krijgen van BIJNA ELKE (Haha) website (zolang je het kunt horen, kun je het krijgen Ok prima als het in Flash is ingesloten, kun je dat misschien niet) BEWERKT !!!!! Info toegevoegd: 4 stappen
Hoe muziek te krijgen van BIJNA ELKE (Haha) website (zolang je het kunt horen, kun je het krijgen … Ok prima als het in Flash is ingesloten, kun je dat misschien niet) BEWERKT !!!!! Toegevoegde info: als je ooit naar een website gaat en een nummer speelt dat je leuk vindt en wilt, dan is hier de instructie voor jou, niet mijn schuld als je iets verknoeit (de enige manier waarop het zal gebeuren is als je dingen begint te verwijderen zonder reden )ik heb muziek kunnen krijgen voor
Instructies voor het voltooien van de mock-up van het ontwerp van de rupsschuif voor het heffen/verlagen van in het midden gemonteerde voetsteunen op elektrische rolstoelen - Ajarnpa
Instructies voor het voltooien van de mock-up van het ontwerp van de rupsschuif voor het omhoog/omlaag brengen van in het midden gemonteerde voetsteunen op elektrische rolstoelen: in het midden gemonteerde voetsteunen kunnen omhoog worden gebracht om onder de zitting goed te worden opgeborgen en omlaag om te worden ingezet. Een mechanisme voor onafhankelijke bediening van het opbergen en plaatsen van de voetsteun is niet inbegrepen in elektrische rolstoelen op de markt, en PWC-gebruikers hebben de behoefte geuit
Waterdichte luidsprekers die drijven - "Het drijft, het draagt en het rockt de noten!": 7 stappen (met afbeeldingen)
Waterdichte luidsprekers die drijven - "It Floats, It Totes and It Rocks the Notes!": Dit waterdichte luidsprekerproject is geïnspireerd op vele reizen naar de Gila-rivier in Arizona (en SNL's "I'm on a Boat!" ). We zullen de rivier afdrijven of lijnen aan de kust bevestigen zodat onze drijvers vlak bij onze camping blijven. Iedereen he