Spisu treści:
- Krok 1: Przycisk do Arduino
- Krok 2: Arduino do Raspberry
- Krok 3: Kod po stronie serwera
- Krok 4: Skonfiguruj stronę internetową
Wideo: Zadzwoń do sieci!: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Ring the Web służy do wpływania na strony internetowe z lokalnych/rzeczywistych miejsc.
Więcej informacji na ten temat:
makker.hu/RingTheWeb/
Będziesz potrzebował:
- 1 przycisk
- rezystor 10k
- Arduino (dowolny typ)
- kable
- mały, energooszczędny komputer - w tym przypadku RPi
- dostęp do serwera lub komputera z publicznym IP z node.js
- Strona internetowa
Kroki:
- Przycisk do arduino
- Arduino do Maliny
- Raspberry do serwera
- Strona do serwera
Krok 1: Przycisk do Arduino
Najpierw potrzebujesz Arduino i przycisku!
Każdy ich rodzaj jest możliwy, wybór należy do Ciebie.
Aby je podłączyć, postępuj zgodnie z oficjalnym samouczkiem dotyczącym przycisków Arduino.
Oto kod Arduino:
// Kod Arduino do odczytu cyfrowego pinu i wysłania wartości do portu szeregowego
// Balázs Kovács, 2018. void setup () { Serial.begin(9600); // otwórz port szeregowy pinMode(8, INPUT); // podłącz przycisk do Pinu 8 } int counter = 0; // coś użytego później void loop() { if(digitalRead(8) == 1) { // sprawdź pin 8 status Serial.write("8"); } opóźnienie(100); licznik++; if(counter=20) { // co 20x100=2000ms -> licznik = 0; Serial.write("0"); // wysyła wiadomość "istnieję" do serwera } } // to wszystko!
Krok 2: Arduino do Raspberry
Teraz możemy podłączyć Arduino do komputera. W tym przypadku używamy Raspberry ze względu na niski pobór mocy.
Podłącz go przez USB lub bezpośrednio z pinami RX-TX, opisanymi tutaj.
Następnie zainstaluj node.js i npm zgodnie z opisem tutaj. Słowa kluczowe to:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
i wtedy
sudo apt-get install -y nodejs
Npm (menedżer pakietów Node.js) wymaga modułów socket.io-client i serialport, więc zainstaluj je:
npm zainstaluj socket.io-client
npm zainstaluj port szeregowy
Otwórz i zapisz plik coś.js z następującym kodem:
// zainicjuj połączenie socket.io:
gniazdo var; var io = require('socket.io-client'); socket = io("https://yourserver.com:port"); // jeśli połączenie z serwerem powiodło się: socket.on('connect', function(){ socket.send("jestem!"); console.log("połączony z serwerem"); }); // zainicjuj komunikację portu szeregowego, NB /dev=ttyACM0 można zmienić: var SerialPort = require('serialport'); var serialPort = new SerialPort('/dev/ttyACM0', { szybkość transmisji: 9600 }); // Jeśli coś pochodzi z Arduino, wysyła różne komunikaty // do serwera zgodnie z tym 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){ gniazdo. wyślij('/klient1 1'); } }); // Odczytaj dostępne dane - myślę, że nie jest to konieczne serialPort.on('readable', function() { console.log('Data:', port.read()); });
Teraz powinieneś również skonfigurować kod node.js po stronie serwera, do tego czasu możesz uruchomić i przetestować skrypt poprzez
węzeł./coś.js
Jeśli coś jest nie tak, daj mi znać!
Krok 3: Kod po stronie serwera
Po stronie serwera potrzebujemy node.js z serwerem socket.io.
Więc dodaj to z:
npm zainstaluj gniazdo-io
Następnie będziesz potrzebował skryptu podobnego do kodu w kroku 2, z tą różnicą, że czeka na połączenia, a jeśli są obecne, to roześle każdą wiadomość wysłaną od klienta do wszystkich klientów, w tym przypadku, do użytkowników serwisu…
Więc otwórz serverscript.js z następującymi elementami:
var http = wymagaj('http'), io = wymagaj('socket.io'); // otwórz minimalny serwer http. socket.io tego potrzebuje. var server = http.createServer(function(req, res) { res.writeHead(200, { 'Content-Type': 'text/html' }); res.end('hello'); }); // włącz gniazdo tcp - ustaw swój port! server.listen(7004, function() { console.log("Serwer TCP uruchomiony na porcie 7004"); }); // analizuj komunikaty tcp var socket=io.listen(server); socket.on('połączenie', function(klient, rinfo) { client.broadcast.emit('system', 'ktoś podłączony…'); client.on('wiadomość', function(event){ console.log(event // rozgłaszaj dowolny komunikat do wszystkich podłączonych użytkowników! socket.emit('wiadomość', zdarzenie); }); client.on('everybody', function(event){ });client.on('disconnect', function(){ socket.emit('wiadomość', 'ktoś odłączony…'); }); });
Spróbuj to przetestować za pomocą
węzeł./serverscript.js
Jeśli klient też działa, powinieneś zobaczyć ich komunikację na obu konsolach. Przynajmniej te:
Dane: 0
- okresowo informuje system, że działa komunikacja Arduino->Raspberry->serwer.
oraz
Dane: 8
- mówi, że przycisk jest włączony.
Krok 4: Skonfiguruj stronę internetową
Teraz jesteśmy gotowi z 75%!
Zakończ ciężką pracę z dołączeniem kodu do strony internetowej.
To jest łatwe.
najpierw dołącz klienta socket.io:
następnie stwórz system analizatora komunikatów:
gniazdo var;
socket = io("yourserver.com:port"); socket.on('connect', function() { socket.send('anonimowy klient - użytkownik serwisu - jest podłączony!'); socket.on('wiadomość', function (msg) { // jeśli chcesz zobaczyć każdą wiadomość, po prostu odkomentuj ją: // console.log(msg);if (msg == "/RingTheBell 1") // oto kod używany do wyrażenia zdarzenia przycisku: { document.body.style.background = "#ccc"; setTimeout(function() { document.body.style.background = "#000"; }, 1000); }; if (msg == "/client1 1") { // tutaj możesz coś umieścić który reaguje na stan podłączonego klienta }; });
Voila!
gotowy.
Zalecana:
Transmisja danych NBIoT Jak korzystać z osłon opartych na modemie BC95G - test UDP i sygnalizacja stanu sieci: 4 kroki
Transmisja danych NBIoT Jak korzystać z osłon opartych na modemie BC95G - Test UDP i sygnalizacja stanu sieci: O projektach: Przetestuj możliwości sieciowe NB IoT i transmisję surowych danych UDP za pomocą xyz-mIoT przez tarczę itbrainpower.net wyposażoną w modem Quectel BC95G. Wymagany czas: 10-15 minut.Trudność: średniozaawansowany.Uwaga: umiejętności lutowania są wymagane
Blokowanie reklam w całej sieci za pomocą Raspberry Pi: 4 kroki
Blokowanie reklam w całej sieci za pomocą Raspberry Pi: Ciesz się czystszą, szybszą siecią i blokuj irytujące reklamy w całej sieci domowej dzięki Pi-hole i Raspberry Pi
Podłącz ESP8266 do sieci WIFI: 3 kroki
Podłącz ESP8266 do sieci WIFI: W poprzednim artykule omawiałem, jak zrobić ESP8266 jako punkt dostępowy. A w tym artykule pokażę jak podłączyć ESP8266 do sieci Wi-Fi (uczynienie ESP8266 jako klientem). Przed przystąpieniem do samouczka upewnij się, że dodałeś ESP82
Kontroluj diodę LED z sieci Wi-Fi! SPEEEduino V1.1: 4 kroki (ze zdjęciami)
Kontroluj diodę LED z sieci Wi-Fi! SPEEEduino V1.1: Co to jest SPEEEduino? SPEEEduino to płyta mikrokontrolera obsługująca Wi-Fi oparta na ekosystemie Arduino, stworzona dla nauczycieli. SPEEEduino łączy w sobie formę i mikrokontroler Arduino z ESP8266 Wi-Fi SoC, dzięki czemu
Dioda LED na sieci AC: 3 kroki
Dioda LED na sieci AC: Ważne: Próbuj tylko wtedy, gdy jesteś biegły w pracy z siecią AC Prosty schemat obwodu dla pojedynczej diody LED na sieci AC 110 V lub 230 V, a nawet baterii DC