Mündəricat:

Arduino Brauzer Əsaslı Uzaqdan İdarəetmə (linux): 9 Addım (Şəkillərlə birlikdə)
Arduino Brauzer Əsaslı Uzaqdan İdarəetmə (linux): 9 Addım (Şəkillərlə birlikdə)

Video: Arduino Brauzer Əsaslı Uzaqdan İdarəetmə (linux): 9 Addım (Şəkillərlə birlikdə)

Video: Arduino Brauzer Əsaslı Uzaqdan İdarəetmə (linux): 9 Addım (Şəkillərlə birlikdə)
Video: RemoteXY IoT Cloud ilə dünyanın istənilən yerindən ESP32-ni necə izləmək və idarə etmək olar 2024, Noyabr
Anonim
Arduino Brauzer Əsaslı Uzaqdan İdarəetmə (linux)
Arduino Brauzer Əsaslı Uzaqdan İdarəetmə (linux)
Arduino Brauzer Əsaslı Uzaqdan İdarəetmə (linux)
Arduino Brauzer Əsaslı Uzaqdan İdarəetmə (linux)

Uşaqlarımız var. Mən onları çox sevirəm, amma uşaq kanallarını açanda peyk və TV üçün pultu gizlətməyə davam edirlər. Bir neçə ildir gündəlik olaraq baş verən hadisələrdən sonra və sevgilim arvadımın Milad üçün Arduino almasına icazə verdikdən sonra, Arduino ilə faydalı bir şey (gözlərində!) Etməyin vaxtı gəldiyinə qərar verdim. Beləliklə, burada bunun zirvəsinə sahibik: pultlarımı əvəz edən və daxili şəbəkəmdən əldə edilə bilən Arduino üçün veb əsaslı bir interfeys. Ethernet qalxanımın arduino -nun eskiz saxlamasına niyə icazə vermədiyini anladığımda, ethernet qalxanı veb server olaraq istifadə edən yeni bir eskiz yazacağam, yəni kompüterimdə apache yükləməyimə ehtiyac yoxdur. İzləmədə qalın, ora çatacağam!

Addım 1: ön şərtlər

Ön şərtlər
Ön şərtlər

Avadanlıq: Arduino tərəfi: Arduino - Arduino Uno R2 Breadboard -dan istifadə edirəm - yerli elektronika mağazanızdan və ya orijinal bir çörək taxtası İstəsəniz mətbəxdən - Montaj korpusu - Şəffaf qapaqlı köhnə bir plastik qutudan istifadə etdim. Komponentlər: İnfraqırmızı LED qırıq bir uzaqdan idarəetmə vasitəsi ilə (uşaqlara təşəkkürlər!) İnfraqırmızı Alıcı - Sehrli bir gözdən uzadılmış Transistordan mina aldım - BC547 Rezistorundan istifadə etdim - 1k ohm Breadboard tullanan tellərinə qoyulmuş 1.5k ohm dəyişən bir rezistordan istifadə etdim - mənimki var möhkəm bir nüvəli RJ45 kabel makarasından Kompüter tərəfi: Server kimi istifadə ediləcək kompüter Arduino Proqramına: Arduino proqramı - arduino.cc kənar kitabxanasından - https://www.arcfn.com/2009/08/multi-protocol- infrared -remote -library.html (təşəkkürlər Ken, əla iş!) PHP quraşdırılmış Apache web serveri - apache.org Daxili IP ünvanı - mina 192.168.0.9 pultunuzun şəkli - google və ya kameranızda çəkilmiş bir şəkil. Özümü 200x600 qətnamədə saxladım

Addım 2: İdarə Heyətinin qurulması

Şuranın qurulması
Şuranın qurulması

Arduino üçün çörək taxtasından istifadə etmək çox tövsiyə olunur. Arduino və çörək taxtasını eyni korpusa yerləşdirdim və müntəzəm olaraq istifadə etdiyim bütün sancaqları birbaşa çörək taxtasına daimi olaraq bağladım. Bu layihə üçün istifadə olunan Arduino sancaqları: 5v, torpaq rəqəmsal sancaqlar 3, 11 (pin 3 IR LEDini idarə edir, pin 11 IR qəbuledicisinə qoşulur)

Addım 3: Şematik

Sxematik
Sxematik

Bu sxem 4 komponentdən və 6 teldən çox sadədir. IR LED əlaqələri: Rezistorun ayaqlarından birini Arduino rəqəmsal pininə bağlayın 3 Rezistorun digər ayağını tranzistorun əsas pininə qoşun (mənim vəziyyətimdə orta ayaq) Transistorun emitentini yerə bağlayın Kollektoru qoşun LED -in mənfi ayağına tranzistor (qısa ayaq, LED -in düz tərəfi) LED -in pozitiv ayağını (uzun ayağı, əyri tərəfi) 5v pinli IR qəbuledici əlaqələrinə qoşun (bunun üçün pinout tapmaq lazımdır. xüsusi IR qəbulediciniz): GND pin VS pin 5v VO pin Arduino rəqəmsal pin 11

Addım 4: Arduino Proqramına İrremote Kitabxanası əlavə edin

Irremote Kitabxanasını Arduino Proqramına əlavə edin
Irremote Kitabxanasını Arduino Proqramına əlavə edin

irremote, Ken Shirriff tərəfindən yazılmış böyük bir kitabxanadır və https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html kitabxanasını https:// arcfn saytından yükləyin.com/files/IRremote.zip və arduino üçün hər hansı digər kitabxanada olduğu kimi quraşdırın. Onun bloqunda kitabxana və onun necə qurulacağı haqqında çox faydalı məlumatlar var.

Addım 5: Uzaqdan İdarəetmə Sisteminizdən Kodları Yazın

Darıxdırıcı (lakin qaçılmaz) hissənin başlanğıcı budur: Uzaqdan idarəedicinin hər düyməsinə basmaq, çıxış simini saxlamaq və virtual uzaqdan idarəetmə sisteminə uyğunlaşdırmaq. Bunu yalnız bir dəfə etməlisiniz, təxminən 20 dəqiqə çəkməsini gözləyin. Çıxışınızı saxlamaq üçün mətn redaktorunu işə salın. Yeni bir sənəd yaradın və pultunuzdakı hər düyməni hər sətirdən birində yazın: Arxaino IDE-ni işə salın və "Fayllar-> Nümunələr-> IRremote-> IRrecvDump" düyməsini basın və yükləyin. sizin Arduino. Bu nümunə uzaqdan gələn kodları serial portuna atacaq. Serial port monitorunu işə salın və pultunuzdakı düyməni basın. Serial monitor pəncərəsində bir simli göründüyünü görürsünüz: "Kod çözülmüş *: * (* bit)". Bu sətri kopyalayın və müvafiq sətirdə sənədinizə qeyd edin. Bütün açarlarınızı mətn sənədində saxlayana qədər təkrarlayın. Bu bitin nə qədər əyləncəli olduğunu bilirəm, indiyə qədər bunu iki dəfə etmişəm: P İndi mətn sənədində bir az axtarmalı və əvəz etməliyik: "Dekodlaşdırılmış" ı axtarın "" axtar ": 0x ilə əvəz edin "," axtar "(" ilə əvəz et "," bit "axtar)" "ilə əvəz et" Belə ki, belə bir xətt üçün: Dekodlaşdırılmış NEC: 0x000110 (15 bit) deyən bir xəttə sahib olmalıyıq: NEC, 000110, 15

Addım 6: Uzaqdan İdarəetmə üçün İnternet Səhifəsi yaradın

İndi pultunuzun şəklindəki düymələri xəritəyə salmalıyıq.

Düymələri xəritələşdirmək üçün https://www.maschek.hu/imagemap/imgmap istifadə etdim və veb saytın işləməsi üçün verdiyi kodu dəyişdirdim.

"Kompüterinizdə bir şəkil istifadə edin: [faylı seçin]" düyməsini basın, şəklinizi seçin, [yüklə] düyməsini basın, [qəbul et] düyməsini basın, hər bir düyməyə dikdörtgenlər, dairələr və s. HREF üçün /remote.php?command= və mətn sənədindəki düymənin sətrini qoyun, məsələn /remote.php?command=NEC, 000110, 15 Alt: düymənin adı ilə ancaq bu sizə bağlıdır.

Hər düyməni təkrarlayın.

Hər şey hazırdır? Sonra davam edəcəyik. Səhifənin altındakı "Kod" düyməsini basın və təsəvvür xəritəsinin kodunu göstərən bir qutu açılacaq. Bunu kopyalayın və yeni bir mətn sənədinə yapışdırın. Bu veb səhifəmizin əsas hissəsidir.

Budur tam veb səhifəm, sadəcə əvəz edin …

yuxarıdakı öz kodunuzla və uzaqdan idarə şəkillərinizlə birlikdə web qovluğunuzda (/var/www linuxda) remote.php olaraq qeyd edin. Şəkillərinizin sətirlərini dəyişdirin:

"https://www.w3.org/TR/html4/loose.dtd">

Arduino LED nəzarət

Addım 7: Uzaqdan İdarəetmə Kodunu Arduino -ya yükləyin

Uzaqdan İdarəetmə Kodunu Arduino -ya yükləyin
Uzaqdan İdarəetmə Kodunu Arduino -ya yükləyin

Yeni bir eskiz yaradın və aşağıdakı kodu yapışdırın:/ * * WebRemote * IR LED Arduino PWM pin 3 -ə qoşulmalıdır. * Versiya 0.1 İyul, 2009 * Bu kodun müəllif hüquqları Gregory Fenton, https://labby.co. uk/2012/02/irremote-arduino-Experimentation/ * IRremote Kitabxanasının müəllif hüququ 2009 Ken Shirriff, https://arcfn.com */ # #şablon daxil et Çap və operator << (Çap və obj, T arg) {obj.print (arg); qaytar obj; } boolean sona çatdı = yalan; Char inData [64]; // Müvafiq olaraq ölçüsü bayt indeksi = 0; #define EOP "\ n" IRsend irsend; void setup () {Serial.begin (9600); Serial << "Serial port başlatıldı" << EOP; } void loop () {String pch, sType, sTemp; char inChar, sTest, k; int sBits; uzun sHex; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); əgər (indeks == 0) {pch = ""; } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {end = true; indeks = 0; fasilə; } else {if (index <64) // Array ölçüsü {pch += inChar; indeks ++; }}} if (sona çatdı) {// inData'dakı məlumatları buradan təhlil edin… pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // ',' və ya '' // atlayın artıq i onaltının başlanğıcını göstərir j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j indi hex sHex = 0 -dan sonra ',' və ya '' işarəsini göstərir; sTemp = pch.substring (i, j); əgər (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); for (i = 0; i <sTemp.length (); i ++) {k = sTemp ; if (! ((k> = '0' && k = 'A' && k <= 'F'))) break; sHex *= 16; əgər (k> = '0' && k <= '9') sHex += (k - '0'); başqa (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); if (! ((k> = '0' && k = 'A' && k <= 'F'))) break; } sTemp = pch.substring (j+1); sBits = 0; for (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits *= 10; əgər (k> = '0' && k <= '9') sBits += (k - '0'); } if (sType.length ()> 0) {Serial << pch << EOP << "Kod növü:" << sType << "Hex:"; Serial.print (sHex, HEX); Serial << "Bit:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; sona çatdı = 0; }}} void sendIt (String sType, long sHex, int sBits) {for (int i = 0; i <2; i ++) {if (sType.equals (String ("RC6"))) {irsend.sendRC6 (sHex, sBits); } başqa if (sType.equals (String ("RC5"))) {irsend.sendRC5 (sHex, sBits); } else if (sType.equals (String ("SONY"))) {irsend.sendSony (sHex, sBits); } başqa if (sType.equals (String ("NEC")))) {if (! i) irsend.sendNEC (sHex, sBits); } else if (sType.equals (String ("")))) {Serial << "Gecikmə" << EOP; gecikmə (450); } gecikmə (30); }}

Addım 8: Kompüterinizdən Veb Serverə qoşulun

Kompüterinizdən Veb Serverə qoşulun
Kompüterinizdən Veb Serverə qoşulun

.. və ya telefon və ya android və ya ipad və ya hər hansı bir şey: tarayıcınızda https:// veb serveri IP ünvanı/remote.php ünvanına gedin Mənim üçün bu ünvan https://192.168.0.9/remote.php -dir, amma şübhəsiz ki, sizinki fərqli olacaq. Hər şey işləyirsə, üzərinə basa biləcəyiniz düymələri olan pultunuzun şəklini görməlisiniz.

Addım 9: İsteğe Bağlı Adım: İstifadə etməyi asanlaşdırmaq üçün Host Faylınızı Düzəldin

İsteğe bağlı addım: İstifadə etməyi asanlaşdırmaq üçün ev sahiblərinizin faylını düzəldin
İsteğe bağlı addım: İstifadə etməyi asanlaşdırmaq üçün ev sahiblərinizin faylını düzəldin

Etdiyim bir addım, host faylımı (linuxda/etc/hosts, Windows: C: / Windows / System32 / Drivers / etc / hosts) redaktə etmək idi. Diqqət yetirin ki, bu fayl yalnız inzibati əmr sorğusunda (pəncərələrdə) və ya su (linux) düzəldilə bilər ip.add.re.ss uzaqdan əlavə edin. IP.add.re.ss -i serverin IP ünvanı ilə əvəz edin və faylı qeyd edin. Qısa adla veb səhifəsinə daxil olmaq istədiyiniz hər bir cihazda bunu etməlisiniz. İndi pulta https://remote/remote.php ilə daxil ola bilərsiniz, bu mənim ilk düzgün təlimatçımdır, yumşaq olun və hər hansı bir problemin olub olmadığını bildirin ki, onları həll edim.

Tövsiyə: