დარეკეთ ინტერნეტში!: 4 ნაბიჯი
დარეკეთ ინტერნეტში!: 4 ნაბიჯი
Anonim
Image
Image
პუშბუტონი არდუინოსკენ
პუშბუტონი არდუინოსკენ

ინტერნეტში დარეკვა მიზნად ისახავს საიტებზე ზემოქმედებას ადგილობრივი/რეალური ადგილებიდან.

მეტი ინფორმაცია ამის შესახებ:

makker.hu/RingTheWeb/

Შენ დაგჭირდება:

  • 1 ღილაკი
  • 10k რეზისტორი
  • არდუინო (ნებისმიერი ტიპის)
  • კაბელები
  • პატარა, დაბალი სიმძლავრის კომპიუტერი - ამ შემთხვევაში RPi
  • სერვერზე ან კომპიუტერზე წვდომა საჯარო IP- ით node.js
  • ვებგვერდი

ნაბიჯები:

  1. Pushbutton არდუინოს
  2. არდუინო ჟოლოსკენ
  3. ჟოლო სერვერზე
  4. საიტი სერვერზე

ნაბიჯი 1: დააჭირეთ ღილაკს არდუინოს

პირველ რიგში გჭირდებათ Arduino და ღილაკი!

მათი ნებისმიერი ტიპი შესაძლებელია, თქვენ ირჩევთ.

მათი დასაკავშირებლად, მიჰყევით Arduino- ს ოფიციალურ ღილაკს.

აქ არის Arduino კოდი:

// არდუინოს კოდი ციფრული პინის წასაკითხად და მნიშვნელობის გაგზავნის სერიულ პორტში

// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // სერიული პორტის pinMode (8, INPUT) გახსნა; // დააკავშირეთ ღილაკი Pin 8} int counter = 0; // რაღაც მოგვიანებით გამოყენებული void loop () {if (digitalRead (8) == 1) {// შეამოწმეთ pin 8 სტატუსი Serial.write ("8"); } დაყოვნება (100); მრიცხველი ++; if (counter = 20) {// ყოველ 20x100 = 2000ms -> counter = 0; Serial.write ("0"); // აგზავნის შეტყობინებას "მე ვარ" სერვერზე}} // ეს არის ყველაფერი!

ნაბიჯი 2: არდუინო ჟოლოსკენ

არდუინო ჟოლოსკენ
არდუინო ჟოლოსკენ

ახლა ჩვენ შეგვიძლია Arduino- ს კომპიუტერთან დაკავშირება. ამ შემთხვევაში ჩვენ ვიყენებთ ჟოლოს, მისი დაბალი ენერგომოხმარების გამო.

შეაერთეთ იგი USB- ით ან უშუალოდ აქ აღწერილი RX-TX ქინძისთავებით.

შემდეგ დააინსტალირეთ node.js და npm როგორც აქ აღწერილია. საკვანძო სიტყვებია:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

და მერე

sudo apt -get install -y nodejs

Npm (Node.js- ის პაკეტის მენეჯერი) საჭიროებს socket.io-client და serialport მოდულებს, ამიტომ დააინსტალირეთ ისინი:

npm დააინსტალირეთ socket.io-client

npm დააინსტალირეთ სერიული პორტი

გახსენით და შეინახეთ something.js ფაილი შემდეგი კოდით:

// socket.io კავშირის ინიციალიზაცია:

var სოკეტი; var io = მოითხოვს ('socket.io-client'); სოკეტი = io ("https://yourserver.com:port"); // თუ სერვერთან კავშირი წარმატებულია: socket.on ('Connect', function () {socket.send ("მე აქ ვარ!"); console.log ("დაკავშირებულია სერვერთან");}); // სერიული პორტის კომუნიკაციის ინიციალიზაცია, NB /dev = ttyACM0 შეიძლება შეიცვალოს: var SerialPort = მოითხოვს ('სერიული პორტი'); var serialPort = ახალი SerialPort ('/dev/ttyACM0', {baudRate: 9600}); // თუ რამე მოდის არდუინოდან, აგზავნის სხვადასხვა შეტყობინებებს // სერვერზე მის მიხედვით serialPort.on ('მონაცემები', ფუნქცია (მონაცემები) {console.log ('მონაცემები:', data.toString ('ascii')); if (data.indexOf ('8')! ==-1) {socket.send ('/RingTheBell 1');} if (data.indexOf ('0')! ==-1) {სოკეტი გაგზავნა ('/client1 1');}}); // არსებული მონაცემების წაკითხვა - მე ვფიქრობ, რომ ეს არ არის აუცილებელი serialPort.on ('იკითხება', ფუნქცია () {console.log ('მონაცემები:', port.read ());});

ახლა თქვენ ასევე უნდა დააყენოთ სერვერის გვერდი node.js კოდი, მანამდე თქვენ შეგიძლიათ დაიწყოთ და შეამოწმოთ სკრიპტი

კვანძი./რამე.ჯ.ს

თუ რამე არასწორია, გთხოვთ შემატყობინოთ!

ნაბიჯი 3: სერვერის კოდი

სერვერის კოდი
სერვერის კოდი

სერვერის მხრიდან ჩვენ გვჭირდება node.js socket.io სერვერით.

ასე რომ დაამატეთ:

npm დააინსტალირეთ socket-io

შემდეგ თქვენ დაგჭირდებათ კოდის მსგავსი სკრიპტი მე -2 საფეხურზე, იმ განსხვავებით, რომ ის ელოდება კავშირებს და თუ ისინი იმყოფებიან, ის გადასცემს კლიენტისგან გაგზავნილ ნებისმიერ შეტყობინებას ყველა კლიენტს, ამ შემთხვევაში, ვებგვერდის მომხმარებლებისთვის…

ასე რომ, გახსენით serverscript.js შემდეგით:

var http = მოითხოვს ('http'), io = მოითხოვს ('socket.io'); // გახსენით მინიმალური http სერვერი. socket.io სჭირდება. var server = http.createServer (ფუნქცია (მოთხოვნა, რეს) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('გამარჯობა');}); // ჩართეთ tcp სოკეტი - დააყენეთ თქვენი პორტი! server.listen (7004, ფუნქცია () {console.log ("TCP სერვერი მუშაობს პორტზე 7004");}); // tcp შეტყობინებების გაანალიზება var socket = io.listen (სერვერი); socket.on ('კავშირი', ფუნქცია (კლიენტი, rinfo) {client.broadcast.emit ('სისტემა', 'ვიღაც დაკავშირებულია …'); client.on ('შეტყობინება', ფუნქცია (მოვლენა) {console.log (მოვლენა); // ნებისმიერი შეტყობინების გადაცემა ყველა დაკავშირებულ მომხმარებელზე! ფუნქცია () {socket.emit ('შეტყობინება', 'ვიღაც გათიშულია …');});});

სცადეთ მისი გამოცდა

კვანძი./serverscript.js

თუ კლიენტიც მუშაობს, თქვენ უნდა ნახოთ მათი კომუნიკაცია ორივე კონსოლზე. მინიმუმ ესენი:

მონაცემები: 0

-პერიოდულად ეუბნება სისტემას, რომ მუშაობს Arduino-> ჟოლო-> სერვერის კომუნიკაცია.

და

მონაცემები: 8

- ამბობს, რომ ღილაკი ჩართულია.

ნაბიჯი 4: ვებსაიტის კონფიგურაცია

ვებსაიტის კონფიგურაცია
ვებსაიტის კონფიგურაცია

ახლა ჩვენ მზად ვართ 75% -ით!

დაასრულეთ რთული სამუშაოები, შეიყვანეთ ვებსაიტის კოდი.

ადვილია.

პირველი, ჩართეთ socket.io კლიენტი:

შემდეგ შექმენით შეტყობინებების ანალიზატორის სისტემა:

var სოკეტი;

სოკეტი = io ("Yourerver.com:port"); socket.on ('დაკავშირება', ფუნქცია () {socket.send ('ანონიმური კლიენტი - ვებგვერდის მომხმარებელი - დაკავშირებულია!'); socket.on ('შეტყობინება', ფუნქცია (msg) {// თუ გინდათ რომ ნახოთ ყველა შეტყობინება, უბრალოდ გაუკეთეთ კომენტარი: // console.log (msg); თუ (msg == "/RingTheBell 1") // აქ მოდის კოდი, რომელიც გამოსაყენებელია ღილაკზე დაჭერის მოვლენის გამოსახატავად: {document.body.style.background = "#ccc"; setTimeout (ფუნქცია () {document.body.style.background = "#000";}, 1000);}; თუ (msg == "/client1 1") {// აქ შეგიძლიათ განათავსოთ რამე რომელიც რეაგირებს დაკავშირებული კლიენტის სტატუსზე};});

ვაილაá

მზად არის.

გირჩევთ: