Isi kandungan:

[15min] Jam Weasley / Petunjuk Rumah - Berdasarkan TR-064 (beta): 4 Langkah (dengan Gambar)
[15min] Jam Weasley / Petunjuk Rumah - Berdasarkan TR-064 (beta): 4 Langkah (dengan Gambar)

Video: [15min] Jam Weasley / Petunjuk Rumah - Berdasarkan TR-064 (beta): 4 Langkah (dengan Gambar)

Video: [15min] Jam Weasley / Petunjuk Rumah - Berdasarkan TR-064 (beta): 4 Langkah (dengan Gambar)
Video: ASIK18 - Bencana Geologi Bukan Suatu Kebetulan - Dr. Ferdaus Bin Ahmad - Jabatan Mineral & Geosains 2024, November
Anonim
Image
Image
[15min] Jam Weasley / Indikator Siapa Rumah - Berdasarkan TR-064 (beta)
[15min] Jam Weasley / Indikator Siapa Rumah - Berdasarkan TR-064 (beta)

KEMASKINI: Lihat langkah 3.

Cerita panjang (TL; DR di bawah): Beberapa waktu lalu saya menulis skrip bash kecil di komputer saya yang akan mengimbas rangkaian untuk peranti yang didaftarkan dan membandingkan nama host mereka dengan senarai dengan nama yang berkaitan. Setiap kali peranti log masuk atau keluar dari jaringan, saya akan mendapat pemberitahuan. Seperti ini saya mempunyai idea siapa yang berada di rumah (bukan hanya kadang-kadang senang mengetahui siapa yang ada di rumah untuk bertanya kepada mereka jika mereka ingin menyertai makanan atau yang lain, tetapi juga berpotensi membantu anda mengelakkan situasi yang janggal). Masalahnya, kaedah ini tidak boleh dipercayai. Malangnya beberapa peranti tidak membalas ping (mis. Telefon pintar) dan nampaknya memasuki mod penjimatan kuasa sehingga tidak dapat dikesan dengan pasti dengan perintah seperti nmap. Saya cuba mengatasi ini dengan memerlukan sekurang-kurangnya 10 negatif sebelum akhirnya mengumumkan bahawa peranti tersebut meninggalkan rangkaian. Semuanya berjaya, tetapi perlahan, tidak boleh dipercayai dan tidak begitu baik. Juga saya ingin dapat memeriksa siapa yang ada di rumah, tanpa membuka komputer saya. Oleh itu, saya mempunyai ESP8266 ini - dan mahu bermain dengan mereka. Tetapi saya tidak mahu membina stesen cuaca 10.120.124.812 ke-ESP atau yang lain (mengapa anda mahu memantau cuaca dengan termometer ± 2 ° C yang teruk apabila anda hanya boleh melawat beberapa laman web?). Jadi rancangan itu dibuat. Sayangnya ternyata ESP nampaknya tidak dilengkapi untuk melakukan ping dengan betul (yang mana tidak baik untuk dimulakan, ingat?) Apalagi melakukan imbasan rangkaian sepenuhnya. Saya mempertimbangkan untuk menulis beberapa perpustakaan untuk itu - tetapi kerana C ++ saya sangat terhad, ini adalah projek ESP pertama saya dan saya tidak genius dengan barangan rangkaian sama ada saya membatalkan idea itu. Setelah membuat kajian, saya mendapat tahu bahawa penghala (jenama Fritz! Box) sebenarnya mempunyai API! YAY !!!! Protokol tersebut dipanggil TR-064. Seperti nama yang memberi inspirasi, bukan? Semasa membuat kajian mengenai perkara ini, saya dapati dokumentasi (agak jelek) dalam talian. Saya mengambil masa untuk menyelesaikannya. Saya mungkin menghantar arahan yang lebih mudah pada hari-hari berikutnya (dan cara berkomunikasi dengan / menguji API ini menggunakan addon penyemak imbas). Setelah memahami API, saya mula menggunakannya dari ESP saya. Singkat cerita: Saya mendapat penyelesaian duck-tape-and-wd40 dan melakukan apa yang saya mahukan (meminta API untuk peranti yang disambungkan, membandingkannya dengan senarai alamat MAC dan menukar LED dengan sewajarnya). Tetapi saya mahukan yang lebih mantap dan penyelesaian yang fleksibel dan API ini mempunyai banyak lagi yang boleh ditawarkan (anda boleh mengubah tetapan (menghidupkan / mematikan wifi, menukar kata laluan, membuka / menutup wifi tetamu, menukar kuasa isyarat), mulakan semula penghala, tanya kelajuan sambungan,…) - jadi saya memutuskan untuk membuat perpustakaan TR-064 universal! TL; DR; Peranti yang menunjukkan melalui LED yang kini berada di rumah. Berfungsi hebat, belum ada perumahan yang hebat (hei - perhatikan beta dalam tajuk?). Menggunakan protokol SOAP untuk berkomunikasi dengan penghala. Tulis pustaka Arduino untuk mewujudkannya. Pengetahuan yang diperlukan • Pengetahuan asas Arduino / ESP • Sekiranya anda mengumpulkan contoh Blink dengan ESP anda, anda akan baik-baik saja! • Jika tidak, anda boleh mengikuti dua langkah pertama dari arahan ini. sangat berguna, jika anda ingin meninggalkan pentas papan roti • Sebilangan reka bentuk 3D atau kerja kayu mungkin berguna untuk pautan projek perumahanGithub [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] untuk rujukan pantas.

Bekalan

  • ESP8266 atau ESP32 di Lembaga Pembangunan atau dengan pengaturcara lain (2 ~ 6 €)
  • Kabel USB yang sesuai dengan pengaturcara
  • Penyesuai kuasa (mis. USB atau bateri ~ 2 €)
  • Beberapa LED dan perintang (~ 1 €)
  • (Sarung)

=> Sekitar 4-6 € untuk reka bentuk minimum. Itu bermakna bagi saya, bahawa saya boleh menggantung beberapa rumah dengan mudah. Sekiranya anda malas, anda juga boleh menggunakan papan pengembangan dengan LED yang disertakan (lihat langkah 4 untuk lebih terperinci).

Langkah 1: Siapkan Penghala Anda (pilihan, Tetapi Dinasihatkan)

Siapkan Penghala Anda (pilihan, Tetapi Dinasihatkan)
Siapkan Penghala Anda (pilihan, Tetapi Dinasihatkan)
Siapkan Penghala Anda (pilihan, Tetapi Dinasihatkan)
Siapkan Penghala Anda (pilihan, Tetapi Dinasihatkan)

Protokol ini dirancang sebagai protokol umum untuk penghala, tetapi saya hanya tahu bahawa (kebanyakan) penghala Fritz! Box (sangat biasa sekurang-kurangnya di Eropah) menggunakannya. Tidak tahu mengenai jenama lain. Oleh itu, saya akan menganggap bahawa anda menggunakan Kotak Fritz! Sekiranya anda dapat membuat kerja ini (atau gagal melakukannya) pada penghala lain, saya dengan senang hati menambahkannya ke arahan ini (mungkin juga memulakan senarai keserasian pendek?).

Langkah ini tidak perlu, anda juga boleh menggunakan akaun pentadbir anda, tetapi itu tidak dianjurkan dengan alasan yang jelas (mungkin dipintas atau diekstrak dari ESP anda, anda mungkin secara tidak sengaja menukar barang yang anda tidak mahu,…) - jadi saya menasihati anda untuk melakukannya.

Bagaimanapun, ini dia:

  1. Log masuk ke kotak Fritz! Dengan menaip fritz.box di bar url penyemak imbas kegemaran anda.
  2. Cari halaman untuk membuat pengguna FRITZ! Box baru (anda perlu maju semestinya di bawah Sistem, jika anda tidak dapat mencarinya, cuba kemas kini peranti anda).
  3. Buat akaun baru seperti yang anda lihat dalam gambar (menggunakan nama pengguna / kata laluan yang berbeza!).
  4. Log keluar.

Langkah 2: Kod

Image
Image
Perkakasan (beta)
Perkakasan (beta)
  1. Anda boleh mendapatkan perpustakaan dari Github.

  2. Dalam contohnya, anda akan menemui fail bernama home-indicator.ino, yang merupakan kod untuk projek ini. Letakkan folder contoh di folder rumah projek arduino IDE anda dan folder lain ke folder perpustakaan dalam folder rumah projek yang sama.
  3. (Re) Mulakan anda IDE.
  4. Buka home-indicator.ino di IDE dan masukkan tetapan anda. Sudah semestinya jelas apa yang berlaku. Sekiranya anda mempunyai sebarang pertanyaan, beritahu saya!
  5. Sekarang anda boleh menyusunnya dan memindahkannya ke ESP anda!

Langkah 3: Perkakasan (beta)

Perkakasan (beta)
Perkakasan (beta)
Perkakasan (beta)
Perkakasan (beta)
Perkakasan (beta)
Perkakasan (beta)

Ya … Ini adalah langkah, di mana saya masih perlu bekerja lagi. Tetapi saya rasa ada cukup bahan di web untuk mengetahui sesuatu:) Persediaan seperti dalam gambar hanyalah diod dengan perintang ~ 100Ohm yang disambungkan ke GPIO {5, 4, 0, 2}, yang merupakan D1, Pin D2, D3, D4 (mengikut urutan itu) papan MCU ESP8266 saya dan kabel oren kecil yang membawa katod ke GND (bertanda G di papan saya). Sekiranya anda malas, anda boleh melakukan apa yang anda lihat pada gambar kedua. Cukup gunakan papan pengembangan dengan LED yang disertakan (seperti "ESP-202", lihat gambar - sekitar 3.50-5.00 € termasuk penghantaran). Anda kemudian boleh menyambungkannya ke kuasa USB atau menggunakan pek bateri yang disertakan, melukis antara muka pada sehelai kertas dan melekatkannya ke dinding. Selesai. Untuk papan khusus ini, port adalah:

int userPins [numUser] = {5, 4, 2, 14, 16};

dari atas ke bawah.

Langkah 4: Tinjauan / Rujukan

Inilah yang masih saya rancangkan: 1. Membuat perumahan yang bagus (jelas) 2. Menambah GUI yang bagus untuk mengurus pengguna / LED / MAC / peranti yang dikenali 3. Memperbaiki perpustakaan (lihat Github untuk itu) 4. Betulkan: kadang-kadang LED bertindak balas dengan perlahan (memerlukan sedikit masa untuk mematikannya, setelah peranti ditinggalkan) tanpa sebab yang jelas 5. Sambungkan perkara itu di lorong dan mungkin beberapa lagi di sekitar rumahAnda pasti ingin mendapatkan input daripada anda! Dan seperti biasa, ini sangat menggembirakan saya apabila melihat orang lain membina pemikiran yang anda fikirkan, jadi luangkan masa untuk memberi komen dan menghantar gambar!:):) Beberapa lagi rujukanSaya akan mengaitkan beberapa perkara di sini, yang mungkin dapat membantu anda: • Rujukan TR-064 • Beberapa lelaki bermain-main dengan shell dan TR-064 (bagus untuk memahami API) • Wikipedia Harry Potter: Entri Jam Weasley • Beberapa lelaki membina Jam Weasly yang cantik tetapi rumit * _ * Ini berdasarkan aplikasi untuk telefon anda yang mengambil lokasi anda. Sekiranya anda berada di kawasan yang ditentukan sebelumnya, lampu mengikut jam akan menyala. Bagi saya itu terlalu rumit dan terpaksa di banyak tempat di mana ia boleh rosak / gagal: • Aplikasi perlu dikemas kini • Semua orang mesti menggunakan aplikasi ini • Dan baik-baik saja dengan kesan pada privasi • Aplikasi ini hanya berfungsi dengan internet sambungan • Anda mesti menggunakan pelayan perantaraan untuk menghubungkan komunikasi (melainkan jika anda ingin menyiapkan anda sebagai pelayan dan membuka rangkaian rumah anda untuk lalu lintas luar - ya, satu lagi peranti IOT yang tidak selamat yang disambungkan terus ke internet!) • perkhidmatan perantaraan mungkin tidak berfungsi pada suatu hari / menukar APInya, •… Anda memerlukan lebih banyak perisian. Lebih banyak perisian bermaksud lebih banyak tempat untuk melakukan ralat;) Tetapi, mereka melakukan pekerjaan yang luar biasa dan jika anda ingin melakukan sesuatu seperti itu, pergi ke laman web mereka, sangat bagus!

Disyorkan: