Mündəricat:
- Addım 1: Arduino düyməsini basın
- Addım 2: Arduino -dan Moruqa
- Addım 3: Server tərəfindəki kod
- Addım 4: Veb saytı konfiqurasiya edin
Video: İnternetə zəng vurun: 4 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
İnternetə zəng etmək, veb saytlara yerli/real yerlərdən təsir etmək üçündür.
Bu barədə daha çox məlumat:
makker.hu/RingTheWeb/
Lazım olacaq:
- 1 düymə
- 10k rezistor
- Arduino (istənilən növ)
- kabellər
- kiçik, aşağı güclü kompüter - bu halda bir RPi
- node.js ilə ictimai IP olan bir serverə və ya kompüterə giriş
- veb sayt
Addımlar:
- Arduino düyməsini basın
- Arduino - Moruq
- Server üçün moruq
- Veb sayt serverə
Addım 1: Arduino düyməsini basın
Əvvəlcə bir Arduino və bir düyməyə ehtiyacınız var!
İstənilən növ mümkündür, seçmək sizin ixtiyarınızdadır.
Onları birləşdirmək üçün Arduinonun rəsmi düymə təlimatını izləyin.
Budur Arduino kodu:
// Rəqəmsal bir pin oxumaq və seriya limanına dəyər göndərmək üçün Arduino kodu
// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // pinMode (8, GİRİŞ) seriyalı portu açın; // düyməni Pin 8 -ə qoşun} int counter = 0; // sonradan istifadə edilən bir şey void loop () {if (digitalRead (8) == 1) {// pin 8 statusunu yoxlayın Serial.write ("8"); } gecikmə (100); sayğac ++; əgər (sayğac = 20) {// hər 20x100 = 2000ms -> sayğac = 0; Serial.write ("0"); // serverə "mən varam" mesajını göndərir}} // hamısı budur!
Addım 2: Arduino -dan Moruqa
İndi Arduino'yu bir kompüterə bağlaya bilərik. Bu vəziyyətdə aşağı enerji istehlakı səbəbiylə bir Moruq istifadə edirik.
USB vasitəsilə və ya birbaşa burada təsvir olunan RX-TX pinləri ilə qoşun.
Sonra burada təsvir edildiyi kimi node.js və npm qurun. Açar sözlər bunlardır:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
daha sonra
sudo apt -get install -y nodejs
Npm (Node.js paket meneceri) socket.io-müştəri və serialport modullarına ehtiyac duyur, buna görə də onları quraşdırın:
npm socket.io-müştəri qurun
npm serialport yükləyin
Aşağıdakı kodla bir şey.js faylını açın və qeyd edin:
// socket.io bağlantısını işə salın:
var yuva; var io = tələb ('socket.io-müştəri'); yuva = io ("https://yourserver.com:port"); // serverə keçid uğurlu olarsa: socket.on ('connect', function () {socket.send ("burdayam!"); console.log ("serverə bağlıdır");}); // serial port ünsiyyətini işə salın, NB /dev = ttyACM0 dəyişdirilə bilər: var SerialPort = tələb ('serialport'); var serialPort = yeni SerialPort ('/dev/ttyACM0', {baudRate: 9600}); // Bir şey Arduinodan gəlirsə, fərqli mesajlar göndərir // ona uyğun olaraq serverə 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. göndər ('/client1 1');}}); // Mövcud olan məlumatları oxuyun - düşünürəm ki, bu lazım deyil serialPort.on ('oxunaqlı', funksiya () {konsol.log ('Məlumat:', port.read ());});
İndi server tərəfindəki node.js kodunu da qurmalısınız, buna qədər skriptə başlaya və test edə bilərsiniz
düyün./something.js
Bir şey səhv olarsa, mənə bildirin!
Addım 3: Server tərəfindəki kod
Server tərəfində, socket.io serveri olan node.js -ə ehtiyacımız var.
Buna görə əlavə edin:
npm socket-io quraşdırın
Sonra, 2 -ci addımdakı koda bənzər bir skriptə ehtiyacınız olacaq, fərqi, əlaqələri gözlədiyini və əgər varsa, müştəridən göndərilən hər hansı bir mesajı bütün müştərilərə yayımlayacaq. halda, sayt istifadəçilərinə …
Beləliklə, aşağıdakılarla bir serverscript.js açın:
var http = tələb ('http'), io = tələb edin ('socket.io'); // minimal bir http serveri açın. socket.io lazımdır. var server = http.createServer (funksiya (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('salam');}); // tcp yuvasını yandırın - limanınızı qurun! server.listen (7004, function () {console.log ("7004 portunda çalışan TCP serveri");}); // tcp mesajlarını təhlil edin var socket = io.listen (server); socket.on ('əlaqə', funksiya (müştəri, rinfo) {client.broadcast.emit ('sistem', 'birisi bağlı…'); client.on ('mesaj', funksiya (hadisə) {console.log (hadisə)); // hər hansı bir mesajı bağlı olan hər bir istifadəçiyə yayımlayın! socket.emit ('mesaj', hadisə);}); client.on ('hamı', funksiya (hadisə) {}); client.on ('əlaqəni kəsmək', function () {socket.emit ('mesaj', 'kimsə kəsildi…');});});
Bunu sınamağa çalışın
qovşaq./serverscript.js
Müştəri də çalışırsa, əlaqələrini hər iki konsolda görməlisiniz. Ən azından bunlar:
Məlumat: 0
-vaxtaşırı sistemə Arduino-> Raspberry-> server ünsiyyətinin işlədiyini bildirir.
və
Məlumat: 8
- düymənin açıq olduğunu bildirir.
Addım 4: Veb saytı konfiqurasiya edin
İndi 75% ilə hazırıq!
Veb saytın kodunu daxil etməklə çətin işi bitirin.
Asandır.
Birincisi, socket.io müştəri daxil edin:
sonra mesaj təhlil sistemi yaradın:
var yuvası;
socket = io ("yourserver.com:port"); socket.on ('əlaqə', funksiya () {socket.send ('anonim müştəri - bir veb istifadəçisi - bağlıdır!'); socket.on ('mesaj', funksiya (msg) {// görmək istəyirsinizsə hər mesaj, sadəcə şərh yazmayın: // console.log (msg); if (msg == "/RingTheBell 1") // burada düyməni basmaq hadisəsini ifadə etmək üçün istifadə ediləcək kod gəlir: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "#000";}, 1000);}; if (msg == "/client1 1") {// burada bir şey yerləşdirə bilərsiniz bağlı müştəri statusuna reaksiya verən};});
Voila!
hazır
Tövsiyə:
Danışıq mətni ARMbasic Powered UChip və digər ARMbasic Powered SBC -lərinə vurun: 3 addım
Danışıq Mətni Bir ARMbasic Powered UChip və digər ARMbasic Powered SBC -lərinə vurun: Giriş: Yaxşı günlər. Mənim adım Toddur. Mən də bir az ürəkli olan bir aerokosmik və müdafiə mütəxəssisiyəm. İlham: dial-up BBS, 8-bit Mikrokontroller, Kaypro/Commodore/Tandy/TI-994A fərdi kompüterlər dövrünə aiddir
MagicCube - Rəng dəyişdirmək üçün vurun: 6 addım (şəkillərlə)
MagicCube - Rəng dəyişdirmək üçün vurun: İlk təlimatçılığa xoş gəldiniz. Ümid edirəm bütün addımları izləyə bilərsiniz. Hər hansı bir sualınız olarsa soruşun və mən məzmunu təlimatlandırıcıya əlavə edəcəyəm. Bu layihənin ideyası, C üçün hədiyyə olaraq xüsusi effektli kiçik bir kub hazırlamaq və inkişaf etdirmək idi
Çox Oyunculu Düymə vurun: 4 addım
Bir Düymə Çox Oyuncusu vur: LED-lərdən və düymələrdən istifadə edərək. 2 rejim var: -Tək oyunçu-Çox oyunçulu tək oyunçu rejimində 3 səviyyə var: LEVEL_1: 1 saniyə üçün 1 diod LEVEL_2: 2 diod 1 saniyəLEVEL_3: 2 diod 0,7 saniyəVə çoxluq üçün
Boş Deodorant Çubuğunda 'Deodorino' - Infra -Red Controlled Arduino təqdim olunur. 1 -ci Şəkilə vurun: 7 addım
Boş Deodorant Çubuğunda 'Deodorino' - Infra -Red İdarəli Arduino təqdim olunur. 1 -ci Şəkilə vurun: İndi detallara keçək
Kameranızın Müstəqilliyini 20 -yə vurun: 9 addım
Kameranızın Müstəqilliyini 20-yə vurun: Video, şəkil çəkin, çoxlu batareya sərf edin. Budur, kamera ilə batareyanın bitməməsi üçün kiçik bir DIY