תוכן עניינים:

צלצל לאינטרנט !: 4 שלבים
צלצל לאינטרנט !: 4 שלבים

וִידֵאוֹ: צלצל לאינטרנט !: 4 שלבים

וִידֵאוֹ: צלצל לאינטרנט !: 4 שלבים
וִידֵאוֹ: חושף לכם סוד ענק!!🍦😌 2024, נוֹבֶמבֶּר
Anonim
Image
Image
כפתור לחיצה לארדואינו
כפתור לחיצה לארדואינו

Ring the Web מיועד להשפעה על אתרים ממקומות מקומיים/אמיתיים.

מידע נוסף בנושא:

makker.hu/RingTheWeb/

אתה תצטרך:

  • כפתור אחד
  • נגד 10k
  • ארדואינו (כל סוג)
  • כבלים
  • מחשב קטן, בעל הספק נמוך - במקרה זה RPi
  • גישה לשרת או למחשב עם IP ציבורי עם node.js
  • אתר אינטרנט

שלבים:

  1. כפתור לחיצה לארדואינו
  2. ארדואינו עד פטל
  3. פטל לשרת
  4. אתר לשרת

שלב 1: כפתור לחיצה לארדואינו

ראשית אתה צריך ארדואינו ולחצן לחיצה!

כל סוג שלהם אפשרי, זה תלוי בך לבחור.

לחיבורם, אנא עקוב אחר מדריך הכפתורים הרשמי של Arduino.

להלן קוד הארדואינו:

// קוד Arduino לקריאת סיכה דיגיטלית ושליחת ערך ליציאה הטורית

// Balázs Kovács, 2018. הגדרת חלל () {Serial.begin (9600); // לפתוח pinMode יציאה טורית (8, INPUT); // חבר כפתור לחיצה לפין 8} int counter = 0; // משהו המשמש מאוחר יותר לולאת חלל () {if (digitalRead (8) == 1) {// לבדוק סיכה 8 סטטוס Serial.write ("8"); } עיכוב (100); מונה ++; אם (מונה = 20) {// כל 20x100 = 2000ms -> מונה = 0; Serial.write ("0"); // שולח הודעה "אני קיים" לשרת}} // זה הכל!

שלב 2: ארדואינו עד פטל

ארדואינו עד פטל
ארדואינו עד פטל

כעת נוכל לחבר את ארדואינו למחשב. במקרה זה אנו משתמשים בפטל בגלל צריכת החשמל הנמוכה שלו.

חבר אותו באמצעות 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 = require ('socket.io-client'); socket = io ("https://yourserver.com:port"); // אם החיבור לשרת מצליח: socket.on ('התחבר', פונקציה () {socket.send ("אני כאן!"); console.log ("מחובר לשרת");}); // לאתחל את תקשורת היציאה הטורית, ניתן לשנות את NB /dev = ttyACM0: var SerialPort = require ('serialport'); var serialPort = SerialPort חדש ('/dev/ttyACM0', {baudRate: 9600}); // אם משהו מגיע מהארדואינו, שולח הודעות שונות // לשרת לפיו 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) {שקע. שלח ('/client1 1');}}); // קרא נתונים זמינים - אני חושב שזה לא הכרחי serialPort.on ('קריא', פונקציה () {console.log ('Data:', port.read ());});

כעת עליך להגדיר גם את קוד node.js בצד השרת עד שתוכל להתחיל ולבדוק את הסקריפט על ידי

צומת./something.js

אם משהו לא בסדר, אנא יידע אותי!

שלב 3: קוד בצד השרת

קוד בצד השרת
קוד בצד השרת

בצד השרת, אנו זקוקים ל- node.js עם שרת socket.io.

אז תוסיף אותו עם:

npm התקן socket-io

אז תזדקק לסקריפט דומה לקוד בשלב השני, עם ההבדל שהוא ממתין לחיבורים, ואם הם קיימים, הוא ישדר כל הודעה שנשלחה מהלקוח לכל הלקוחות, בזה במקרה, למשתמשי האתר …

אז, פתח servercript.js עם הדברים הבאים:

var http = require ('http'), io = require ('socket.io'); // לפתוח שרת http מינימלי. socket.io צריך את זה. var server = http.createServer (function (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('hello');}); // הפעל שקע tcp - הגדר את היציאה שלך! server.listen (7004, function () {console.log ("שרת TCP פועל ביציאה 7004");}); // לנתח הודעות tcp var socket = io.listen (שרת); socket.on ('חיבור', פונקציה (לקוח, rinfo) {client.broadcast.emit ('מערכת', 'מישהו מחובר …'); client.on ('הודעה', פונקציה (אירוע) {console.log (אירוע); // שידר כל הודעה לכל משתמשים מחוברים! socket.emit ('הודעה', אירוע);}); client.on ('כולם', פונקציה (אירוע) {}); client.on ('נתק', function () {socket.emit ('הודעה', 'מישהו מנותק …');});});

נסה לבדוק עם זה

צומת./serverscript.js

אם גם הלקוח פועל, אתה אמור לראות את התקשורת שלו בשתי הקונסולות. לפחות אלה:

נתונים: 0

-מעת לעת אומר למערכת כי תקשורת השרת Arduino-> פטל-> פועלת.

ו

נתונים: 8

- אומר שהכפתור מופעל.

שלב 4: הגדרת אתר

הגדר את האתר
הגדר את האתר

עכשיו אנחנו מוכנים עם 75%!

סיימו את העבודה הקשה עם כלול את הקוד לאתר.

זה קל.

ראשית, כלול את לקוח socket.io:

לאחר מכן צור את מערכת מנתחי ההודעות:

שקע var;

socket = io ("yourserver.com:port"); socket.on ('connect', function () {socket.send ('לקוח אנונימי - משתמש באתר - מחובר!'); socket.on ('message', function (msg) {// אם אתה רוצה לראות כל הודעה, פשוט בטל את זה: // console.log (msg); אם (msg == "/RingTheBell 1") // כאן מגיע הקוד לשימוש לביטוי אירוע הלחיצה: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "#000";}, 1000);}; אם (msg == "/client1 1") {// כאן תוכל למקם משהו המגיב לסטטוס הלקוח המחובר};});

Voilá!

מוּכָן.

מוּמלָץ: