فهرست مطالب:

زنگ زدن به وب!: 4 مرحله
زنگ زدن به وب!: 4 مرحله

تصویری: زنگ زدن به وب!: 4 مرحله

تصویری: زنگ زدن به وب!: 4 مرحله
تصویری: CALLING CURSED NUMBERS ❌ زنگ زدیم به شماره های نفرین شده و خطرناک 2024, نوامبر
Anonim
Image
Image
دکمه فشار به آردوینو
دکمه فشار به آردوینو

Ring the Web برای تأثیرگذاری بر وب سایت های محلی/محلی واقعی است.

اطلاعات بیشتر در مورد آن:

makker.hu/RingTheWeb/

شما نیاز دارید:

  • 1 دکمه فشاری
  • مقاومت 10k
  • آردوینو (هر نوع)
  • کابل ها
  • کامپیوتر کوچک و کم مصرف - در این مورد یک RPi
  • دسترسی به سرور یا رایانه با IP عمومی با node.js
  • سایت اینترنتی

مراحل:

  1. دکمه فشاری به آردوینو
  2. آردوینو به تمشک
  3. تمشک به سرور
  4. وب سایت به سرور

مرحله 1: دکمه فشاری به آردوینو

ابتدا به یک آردوینو و یک دکمه فشاری نیاز دارید!

هر نوع آنها امکان پذیر است ، انتخاب با شماست.

برای اتصال آنها ، لطفاً آموزش دکمه رسمی Arduino را دنبال کنید.

در اینجا کد آردوینو آمده است:

// کد آردوینو برای خواندن پین دیجیتال و ارسال مقدار به پورت سریال

// Balázs Kovács، 2018. void setup () {Serial.begin (9600)؛ // باز کردن پورت سریال pinMode (8 ، INPUT) ؛ // اتصال دکمه به پین 8} int counter = 0؛ // چیزی که بعداً از حلقه void استفاده شد () {if (digitalRead (8) == 1) {// وضعیت پین 8 را بررسی کنید Serial.write ("8") ؛ } تأخیر (100) ؛ شمارنده ++؛ if (counter = 20) {// هر 20x100 = 2000ms -> counter = 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 port serial را نصب کنید

یک فایل something.js را با کد زیر باز و ذخیره کنید:

// مقداردهی اولیه اتصال socket.io:

سوکت var؛ var io = require ('socket.io-client')؛ socket = io ("https://yourserver.com:port")؛ // اگر اتصال به سرور موفقیت آمیز باشد: socket.on ('connect'، function () {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) {سوکت send ('/client1 1')؛}})؛ // خواندن داده های موجود - من فکر می کنم لازم نیست serialPort.on ('readable'، function () {console.log ('Data:'، port.read ())؛})؛

اکنون باید کد سمت سرور node.js را نیز تنظیم کنید ، تا آن زمان می توانید اسکریپت را شروع و آزمایش کنید

گره./something.js

اگر چیزی اشتباه است ، لطفاً به من اطلاع دهید!

مرحله 3: کد سمت سرور

کد سمت سرور
کد سمت سرور

در سمت سرور ، ما نیاز به node.js با سرور socket.io داریم.

بنابراین آن را با موارد زیر اضافه کنید:

npm socket-io را نصب کنید

سپس در مرحله دوم به یک اسکریپت مشابه کد نیاز خواهید داشت ، با این تفاوت که منتظر ارتباطات است و در صورت وجود ، هر پیامی که از سرویس گیرنده ارسال می شود را برای همه کلاینت ها پخش می کند. مورد ، برای کاربران وب سایت…

بنابراین ، یک serverscript.js را با موارد زیر باز کنید:

var http = require ('http') ،

io = require ('socket.io')؛ // حداقل سرور http را باز کنید. socket.io به آن نیاز دارد var server = http.createServer (تابع (req، res) {res.writeHead (200، {'Content-Type': 'text/html'})؛ res.end ('سلام')؛})؛ // سوکت tcp را روشن کنید - پورت خود را تنظیم کنید! server.listen (7004 ، function () {console.log ("سرور TCP در حال اجرا بر روی پورت 7004") ؛}) ؛ // تجزیه و تحلیل پیام های tcp var socket = io.listen (سرور) ؛ socket.on ('اتصال' ، عملکرد (مشتری ، rinfo) {client.broadcast.emit ('سیستم' ، 'کسی متصل است …') ؛ client.on ('پیام' ، عملکرد (رویداد) {console.log (رویداد) ؛ // هر پیامی را برای هر کاربر متصل پخش می کند! function () {socket.emit ('message'، 'somebody disconneted…')؛})؛})؛

سعی کنید با آن آزمایش کنید

گره./serverscript.js

اگر سرویس گیرنده نیز کار می کند ، باید ارتباط آنها را در هر دو کنسول مشاهده کنید. حداقل اینها:

داده ها: 0

-به صورت دوره ای به سیستم می گوید که ارتباط سرور Arduino-> Raspberry-> کار می کند.

و

داده ها: 8

- می گوید که دکمه روشن است.

مرحله 4: پیکربندی وب سایت

پیکربندی وب سایت
پیکربندی وب سایت

اکنون ما با 75 ready آماده ایم!

کار سخت را با افزودن کد وب سایت به پایان برسانید.

آسان است.

اول ، شامل مشتری socket.io:

سپس سیستم تجزیه و تحلیل پیام را ایجاد کنید:

سوکت var؛

سوکت = 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)؛}؛ if (msg == "/client1 1") {// در اینجا می توانید چیزی را قرار دهید که به وضعیت مشتری متصل شده واکنش نشان می دهد}؛})؛

Voilá!

آماده.

توصیه شده: