Mục lục:
- Bước 1: Nút ấn vào Arduino
- Bước 2: Arduino sang Raspberry
- Bước 3: Mã phía máy chủ
- Bước 4: Định cấu hình trang web
Video: Rung chuông trên web!: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Ring the Web là để ảnh hưởng đến các trang web từ địa phương / thực.
Thông tin thêm về nó:
makker.hu/RingTheWeb/
Có thể bạn sẽ cần:
- 1 nút bấm
- Điện trở 10k
- Arduino (bất kỳ loại nào)
- dây cáp
- máy tính nhỏ, công suất thấp - trong trường hợp này là RPi
- truy cập vào máy chủ hoặc máy tính có IP công cộng với node.js
- trang mạng
Các bước:
- Nút ấn sang arduino
- Arduino sang Raspberry
- Raspberry đến máy chủ
- Trang web đến máy chủ
Bước 1: Nút ấn vào Arduino
Đầu tiên, bạn cần một Arduino và một nút bấm!
Bất kỳ loại nào trong số họ đều có thể, bạn có thể lựa chọn.
Để kết nối chúng, vui lòng làm theo hướng dẫn nút chính thức của Arduino.
Đây là mã Arduino:
// Mã Arduino để đọc chân kỹ thuật số và gửi giá trị đến cổng nối tiếp
// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // mở cổng nối tiếp pinMode (8, INPUT); // kết nối nút bấm với Pin 8} int counter = 0; // cái gì đó dùng sau này void loop () {if (digitalRead (8) == 1) {// kiểm tra trạng thái chân 8 Serial.write ("8"); } delay (100); bộ đếm ++; if (counter = 20) {// cứ 20x100 = 2000ms -> counter = 0; Serial.write ("0"); // gửi thông báo "tôi đang tồn tại" tới máy chủ}} // chỉ có vậy!
Bước 2: Arduino sang Raspberry
Bây giờ chúng ta có thể kết nối Arduino với máy tính. Trong trường hợp này, chúng tôi sử dụng Raspberry, vì nó tiêu thụ điện năng thấp.
Kết nối nó qua USB hoặc trực tiếp bằng các chân RX-TX, được mô tả ở đây.
Sau đó cài đặt node.js và npm như được mô tả ở đây. Các từ khóa là:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
và sau đó
sudo apt-get install -y nodejs
Npm (trình quản lý gói của Node.js) cần các mô-đun socket.io-client và serialport, vì vậy hãy cài đặt chúng:
npm cài đặt socket.io-client
npm cài đặt cổng nối tiếp
Mở và lưu tệp something.js bằng mã sau:
// khởi tạo kết nối socket.io:
ổ cắm var; var io = demand ('socket.io-client'); socket = io ("https://yourserver.com:port"); // nếu kết nối đến máy chủ thành công: socket.on ('connect', function () {socket.send ("tôi ở đây!"); console.log ("đã kết nối với máy chủ");}); // khởi tạo giao tiếp cổng nối tiếp, NB / dev = ttyACM0 có thể được thay đổi: var SerialPort = demand ('serialport'); var serialPort = new SerialPort ('/ dev / ttyACM0', {baudRate: 9600}); // Nếu thứ gì đó đến từ Arduino, gửi các thông điệp khác nhau // tới máy chủ theo nó 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');}}); // Đọc dữ liệu có sẵn - tôi nghĩ không cần thiết serialPort.on ('readable', function () {console.log ('Data:', port.read ());});
Bây giờ Bạn cũng nên thiết lập mã node.js phía máy chủ, cho đến khi Bạn có thể bắt đầu và kiểm tra tập lệnh bằng cách
nút./something.js
Nếu có gì sai sót, xin vui lòng cho tôi biết!
Bước 3: Mã phía máy chủ
Về phía máy chủ, chúng ta cần node.js với máy chủ socket.io.
Vì vậy, hãy thêm nó với:
npm cài đặt socket-io
Sau đó, bạn sẽ cần một tập lệnh tương tự như mã ở bước thứ 2, với sự khác biệt là nó đợi các kết nối và nếu chúng có mặt, nó sẽ phát bất kỳ thông báo nào được gửi từ máy khách tới tất cả các máy khách, trong điều này trường hợp, đối với người dùng trang web…
Vì vậy, hãy mở một servercript.js với những điều sau:
var http = request ('http'), io = request ('socket.io'); // mở một máy chủ http tối thiểu. socket.io cần nó. var server = http.createServer (function (req, res) {res.writeHead (200, {'Content-Type': 'text / html'}); res.end ('hello');}); // bật ổ cắm tcp - thiết lập cổng của bạn! server.listen (7004, function () {console.log ("Máy chủ TCP chạy trên cổng 7004");}); // phân tích thông báo tcp var socket = io.listen (server); socket.on ('connection', function (client, rinfo) {client.broadcast.emit ('system', 'somebody connect…'); client.on ('message', function (event) {console.log (event); // phát bất kỳ thông báo nào tới mọi người dùng được kết nối! socket.emit ('message', event);}); client.on ('mọi người', function (event) {}); client.on ('ngắt kết nối', function () {socket.emit ('message', 'ai đó đã ngắt kết nối…');});});
Hãy thử để kiểm tra nó với
nút./serverscript.js
Nếu máy khách cũng đang chạy, Bạn sẽ thấy giao tiếp của họ trên cả hai bảng điều khiển. Ít nhất những điều này:
Dữ liệu: 0
- định kỳ cho hệ thống biết rằng giao tiếp máy chủ Arduino-> Raspberry-> đang hoạt động.
và
Dữ liệu: 8
- cho biết nút đang bật.
Bước 4: Định cấu hình trang web
Bây giờ chúng tôi đã sẵn sàng với 75%!
Hoàn thành công việc khó khăn với bao gồm mã cho trang web.
Dễ thôi.
đầu tiên, hãy bao gồm ứng dụng khách socket.io:
sau đó tạo hệ thống phân tích tin nhắn:
ổ cắm var;
socket = io ("yourerver.com:port"); socket.on ('connect', function () {socket.send ('client nặc danh - người dùng trang web - được kết nối!'); socket.on ('message', function (msg) {// nếu bạn muốn xem mọi thông báo, chỉ cần bỏ ghi chú nó: // console.log (msg); if (msg == "/ RingTheBell 1") // đây là mã được sử dụng để thể hiện sự kiện nút bấm: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "# 000";}, 1000);}; if (msg == "/ client1 1") {// ở đây bạn có thể đặt một cái gì đó phản ứng với trạng thái máy khách được kết nối};});
Voilá!
Sẵn sàng.
Đề xuất:
Chuông cửa có hình Ring của Vương quốc Anh chuyên nghiệp làm việc với chuông cơ: 6 bước (có hình ảnh)
Chuông cửa có hình Ring của Vương quốc Anh chuyên nghiệp làm việc với chuông cơ: **************************************** *************** Xin lưu ý rằng phương pháp này chỉ hoạt động với nguồn AC ngay bây giờ Tôi sẽ cập nhật nếu / khi tôi tìm thấy giải pháp cho chuông cửa sử dụng nguồn DC, trong thời gian chờ đợi, nếu bạn có nguồn DC cung cấp, bạn sẽ cần t
Nest Hello - Chuông cửa có chuông tích hợp Biến áp Vương quốc Anh (220-240V AC - 16V AC): 7 bước (có Hình ảnh)
Nest Hello - Chuông cửa có chuông có biến áp tích hợp Vương quốc Anh (220-240V AC - 16V AC): Tôi muốn lắp đặt chuông cửa Nest Hello tại nhà, một gizmo chạy trên 16V-24V AC (LƯU Ý: bản cập nhật phần mềm vào năm 2019 đã thay đổi châu Âu phạm vi phiên bản đến 12V-24V AC). Chuông chuông cửa tiêu chuẩn với máy biến áp tích hợp có sẵn ở Vương quốc Anh tại
ATtiny85 Đồng hồ theo dõi hoạt động rung có thể đeo trên thiết bị đeo và lập trình ATtiny85 với Arduino Uno: 4 bước (có hình ảnh)
ATtiny85 Đồng hồ theo dõi hoạt động rung có thể đeo được và lập trình ATtiny85 với Arduino Uno: Làm thế nào để tạo đồng hồ theo dõi hoạt động có thể đeo được? Đây là một thiết bị đeo được thiết kế để rung khi phát hiện thấy có sự cố. Bạn có dành phần lớn thời gian trên máy tính như tôi không? Bạn đang ngồi hàng giờ mà không nhận ra? Sau đó, thiết bị này là
Hệ thống phát hiện cháy rừng dựa trên IOT: 8 bước
Hệ thống phát hiện cháy rừng dựa trên IOT: ● Cháy rừng đã là một vấn đề cấp bách trong nhiều thập kỷ ở Ấn Độ và chỉ được chú ý đến khi những sự cố lớn như vậy xảy ra ở Uttarakhand. ● Theo sở lâm nghiệp của Uttarakhand, 3399 ha rừng đã bị chặt phá vào năm 1451 vì
Sử dụng cảm biến nhiệt độ, nước mưa và rung động trên Arduino để bảo vệ đường sắt: 8 bước (có hình ảnh)
Sử dụng Cảm biến nhiệt độ, nước mưa và rung động trên Arduino để bảo vệ đường sắt: Trong xã hội hiện đại, lượng hành khách đi tàu tăng lên đồng nghĩa với việc các công ty đường sắt phải làm nhiều hơn để tối ưu hóa mạng lưới để theo kịp nhu cầu. Trong dự án này, chúng tôi sẽ giới thiệu trên quy mô nhỏ cách các cảm biến nhiệt độ, nước mưa và rung động o