جدول المحتويات:

دق الويب !: 4 خطوات
دق الويب !: 4 خطوات

فيديو: دق الويب !: 4 خطوات

فيديو: دق الويب !: 4 خطوات
فيديو: لما تيجي تبعت لشخص رسالة ويتجاهلك ماذا تفعل؟ 2024, يوليو
Anonim
Image
Image
اضغط على زر اردوينو
اضغط على زر اردوينو

Ring the Web هو للتأثير على مواقع الويب من أماكن محلية / حقيقية.

مزيد من المعلومات حول هذا الموضوع:

makker.hu/RingTheWeb/

انك سوف تحتاج:

  • 1 زر ضغط
  • 10 كيلو المقاوم
  • اردوينو (أي نوع)
  • الكابلات
  • كمبيوتر صغير منخفض الطاقة - في هذه الحالة RPi
  • الوصول إلى خادم أو كمبيوتر باستخدام IP عام باستخدام node.js
  • موقع الكتروني

خطوات:

  1. اضغط على زر اردوينو
  2. اردوينو إلى توت العليق
  3. توت العليق للخادم
  4. موقع على الخادم

الخطوة 1: اضغط على زر اردوينو

تحتاج أولاً إلى Arduino وزر ضغط!

أي نوع منها ممكن ، الأمر متروك لك للاختيار.

لتوصيلهم ، يرجى اتباع البرنامج التعليمي الرسمي للأزرار من Arduino.

هذا هو كود اردوينو:

// كود Arduino لقراءة دبوس رقمي وإرسال قيمة إلى المنفذ التسلسلي

// Balázs Kovács، 2018. void setup () {Serial.begin (9600)؛ // فتح المنفذ التسلسلي pinMode (8 ، INPUT) ؛ // connect pushbutton to Pin 8} int counter = 0 ؛ // شيء ما تم استخدامه لاحقًا حلقة باطلة () {if (digitalRead (8) == 1) {// check pin 8 status Serial.write ("8")؛ } تأخير (100)؛ عداد ++ ؛ إذا (العداد = 20) {// كل 20 × 100 = 2000 مللي ثانية -> العداد = 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 العميل

npm تثبيت serialport

افتح واحفظ ملف something.js بالشفرة التالية:

// تهيئة اتصال socket.io:

مقبس فار var io = تتطلب ('socket.io-client') ؛ المقبس = io ("https://yourserver.com:port") ؛ // إذا كان الاتصال بالخادم ناجحًا: socket.on ('connect' ، الوظيفة () {socket.send ("أنا هنا!") ؛ console.log ("متصل بالخادم") ؛}) ؛ // تهيئة اتصال المنفذ التسلسلي ، يمكن تغيير NB / dev = ttyACM0: var SerialPort = يتطلب ('serialport') ؛ var serialPort = new SerialPort ('/ dev / ttyACM0'، {baudRate: 9600}) ، // إذا جاء شيء ما من Arduino ، فأرسل رسائل مختلفة // إلى الخادم وفقًا لذلك 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') ؛}}) ؛ // قراءة البيانات المتوفرة - أعتقد أنها ليست ضرورية serialPort.on ('readable'، function () {console.log ('Data:'، port.read ())؛})؛

الآن يجب عليك إعداد كود node.js من جانب الخادم أيضًا ، حتى تتمكن من بدء البرنامج النصي واختباره

العقدة./something.js

إذا كان هناك شيء خاطئ ، من فضلك أعلمني!

الخطوة 3: الكود من جانب الخادم

كود من جانب الخادم
كود من جانب الخادم

على جانب الخادم ، نحتاج إلى node.js مع خادم socket.io.

لذا أضفه بـ:

npm تثبيت socket-io

بعد ذلك ، ستحتاج إلى نص برمجي مشابه للرمز الموجود في الخطوة الثانية ، مع الاختلاف ، أنه ينتظر الاتصالات ، وإذا كانوا موجودين ، فسوف يبث أي رسالة مرسلة من العميل إلى جميع العملاء ، في هذا لمستخدمي الموقع …

لذلك ، افتح ملف servercript.js بما يلي:

var http = يتطلب ("http") ،

io = تتطلب ('socket.io') ؛ // فتح الحد الأدنى من خادم HTTP. socket.io يحتاج إليها. var server = http.createServer (function (req، res) {res.writeHead (200، {'Content-Type': 'text / html'})؛ res.end ('hello')؛})؛ // Turn tcp socket on - اضبط المنفذ الخاص بك! server.listen (7004، function () {console.log ("خادم TCP يعمل على المنفذ 7004") ؛})؛ // تحليل رسائل برنامج التعاون الفني var socket = io.listen (الخادم) ؛ socket.on ('connect'، function (client، rinfo) {client.broadcast.emit ('system'، 'Somebody connect …')؛ client.on ('message'، function (event) {console.log (event)؛ // بث أي رسالة لكل مستخدم متصل! socket.emit ('message'، event)؛})؛ client.on ('everybody'، function (event) {})؛ client.on ('قطع الاتصال'، الوظيفة () {socket.emit ('message'، 'somebody disconneted…') ؛}) ؛}) ؛

جرب اختبارها باستخدام

العقدة./serverscript.js

إذا كان العميل يعمل أيضًا ، فيجب أن ترى اتصالاته على كلا الجهازين. على الأقل هذه:

البيانات: 0

- يخبر النظام بشكل دوري أن اتصال الخادم Arduino-> Raspberry-> يعمل.

و

البيانات: 8

- يخبر أن الزر قيد التشغيل.

الخطوة 4: تكوين موقع الويب

تكوين موقع الويب
تكوين موقع الويب

الآن نحن جاهزون بنسبة 75٪!

قم بإنهاء العمل الشاق بتضمين رمز الموقع.

من السهل.

أولاً ، قم بتضمين عميل socket.io:

ثم أنشئ نظام تحليل الرسائل:

مقبس فار

المقبس = io ("yourserver.com:port") ؛ socket.on ('connect'، function () {socket.send ('anonym client - a website user - is connect!')؛ 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") {// هنا يمكنك وضع شيء ما الذي يتفاعل مع حالة العميل المتصل} ؛}) ؛

هاهو!

جاهز.

موصى به: