Talaan ng mga Nilalaman:

[15min] Weasley Clock / Who Is Home Indicator - Batay sa TR-064 (beta): 4 Hakbang (na may Mga Larawan)
[15min] Weasley Clock / Who Is Home Indicator - Batay sa TR-064 (beta): 4 Hakbang (na may Mga Larawan)

Video: [15min] Weasley Clock / Who Is Home Indicator - Batay sa TR-064 (beta): 4 Hakbang (na may Mga Larawan)

Video: [15min] Weasley Clock / Who Is Home Indicator - Batay sa TR-064 (beta): 4 Hakbang (na may Mga Larawan)
Video: Dr. Seuss - The Lorax (1972) 2024, Disyembre
Anonim
Image
Image
[15min] Weasley Clock / Who Is Home Indicator - Batay sa TR-064 (beta)
[15min] Weasley Clock / Who Is Home Indicator - Batay sa TR-064 (beta)

UPDATE: Tingnan ang hakbang 3.

Mahabang kwento (TL; DR sa ibaba): Ilang oras ang nakalipas nagsulat ako ng isang maliit na bash-script sa aking computer na mag-scan sa network para sa mga nakarehistrong aparato at ihambing ang kanilang mga hostname laban sa isang listahan na may mga nauugnay na pangalan. Sa tuwing mag-log in o lalabas ang isang aparato sa network makakakuha ako ng isang abiso. Tulad nito Gusto ko ng isang ideya kung sino ang nasa bahay (hindi lamang kung minsan ay masarap malaman kung sino ang nasa bahay upang tanungin sila kung nais nilang sumali sa isang pagkain o tulad, ngunit maaari rin itong makatulong na maiwasan mo ang mga hindi magandang kalagayan). Ang problema, ang pamamaraang ito ay hindi masyadong maaasahan. Sa kasamaang palad ang ilang mga aparato ay hindi tumugon sa mga ping (hal. Mga smartphone) at tila pumunta sa ilang mode na pag-save ng kuryente sa gayon ay hindi maaasahan na matutukoy sa mga utos tulad ng nmap. Sinubukan kong mapagtagumpayan ito sa pamamagitan ng paghingi ng hindi bababa sa 10 mga negatibo bago sa wakas ay inihayag na umalis ang aparato sa network. Ang lahat sa lahat ng ito ay nagtrabaho, ngunit mabagal, hindi maaasahan at hindi masyadong maayos. Gayundin nais kong masuri kung sino ang nasa bahay, nang hindi binubuksan ang aking computer. Kaya't nakahiga ako sa mga ESP8266 na ito - at nais kong laruin sa kanila. Ngunit hindi ko nais na bumuo ng 10.120.124.812th istasyon ng panahon na nakabatay sa ESP o tulad (bakit mo nais na subaybayan ang panahon sa iyong crappy ± 2 ° C thermometer kung maaari mo lamang bisitahin ang ilang website pa rin?). Kaya't ang plano ay ginawa. Sa kasamaang palad lumalabas na ang ESP ay tila hindi nasangkapan upang maayos na ping (na kung saan ay masamang magsimula, tandaan?) Pabayaan mag-isa ang isang buong-blown na pag-scan ng network. Isinasaalang-alang ko ang pagsusulat ng ilang silid-aklatan para doon - ngunit dahil ang aking C ++ ay napakaliit, ito ang aking unang proyekto sa ESP at hindi ako isang henyo sa mga bagay sa network alinman sa aking pag-aalis ng ideyang iyon. Matapos gumawa ng ilang pagsasaliksik, nalaman ko, na ang aking Ang router (tatak Fritz! Box) ay talagang mayroong isang API! YAY !!!! Ang protocol ay tinatawag na TR-064. Ang nasabing isang nakasisiglang pangalan, tama? Paggawa ng ilang pagsasaliksik sa bagay na ito, nakakita ako ng isang (sa halip malaswa) na dokumentasyon sa online. Tumagal ako ng kaunting oras upang maisagawa ito. Maaari akong mag-post ng higit na madaling maturo sa mga susunod na araw (at kung paano makipag-usap sa / pagsubok sa API na ito gamit ang isang addon ng browser). Kapag naintindihan ko ang API, sinimulan kong gamitin ito mula sa aking ESP. Mahabang kwento: Nakuha ko ang isang solusyon ng pato-tape-at-wd40 na tumatakbo at ginagawa ang gusto ko (pag-query sa API para sa mga nakakonektang aparato, ihambing ang mga ito sa isang listahan ng mga MAC-address at paglipat ng mga LED nang naaayon). Ngunit nais ko ng mas matibay at kakayahang umangkop na solusyon at ang API na ito ay may mas maraming inaalok (maaari mong baguhin ang mga setting (i-on / i-off ang wifi, palitan ang password, buksan / isara ang wifi ng bisita, palitan ang lakas ng signal), i-restart ang router, i-query ang bilis ng koneksyon,…) - kaya't nagpasya akong lumikha ng isang unibersal na TR-064 library! TL; DR; Device na nagpapahiwatig sa pamamagitan ng mga LED na kasalukuyang nasa bahay. Gumagana nang mahusay, wala pang mahusay na pabahay (hey - napansin ang beta sa pamagat?). Gumagamit ng SOAP-protocol upang makipag-usap sa router. Isinulat ang Arduino library upang maganap iyon. Kinakailangan na kaalaman • Pangunahing kaalaman sa Arduino / ESP • Kung nagtipon ka ng isang halimbawa ng Blink sa iyong ESP, magiging maayos ka! • Kung hindi, maaari mong sundin ang unang dalawang mga hakbang ng itinuturo na ito • Maaaring maghinang madaling gamitin, kung nais mong iwanan ang yugto ng breadboard • Ang ilang 3D na pagdidisenyo ng isang / o gawaing kahoy ay maaaring maging madaling gamiting para sa isang link sa proyekto sa pabahayGithub [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] para sa mabilis na sanggunian.

Mga gamit

  • ESP8266 o ESP32 sa Development-Board o sa iba pang programmer (2 ~ 6 €)
  • USB cable na umaangkop sa programmer
  • Power adapter (hal. USB o baterya ~ 2 €)
  • Ilang mga LED at resistor (~ 1 €)
  • (Casing)

=> Sa paligid ng 4-6 € para sa isang minimal na disenyo. Nangangahulugan iyon para sa akin, na maaari kong madaling mag-hang ng ilang sa paligid ng bahay. Kung tamad ka, maaari mo ring gamitin ang isang development-board na may kasamang LED (tingnan ang hakbang 4 para sa karagdagang detalye).

Hakbang 1: I-set up ang Iyong Router (opsyonal, Ngunit Payo)

I-set up ang iyong Router (opsyonal, Ngunit Payo)
I-set up ang iyong Router (opsyonal, Ngunit Payo)
I-set up ang iyong Router (opsyonal, Ngunit Payo)
I-set up ang iyong Router (opsyonal, Ngunit Payo)

Ang protokol ay idinisenyo bilang isang pangkalahatang proteksyon para sa mga router, ngunit alam ko lamang na (karamihan) Fritz! Ang mga router ng kahon (napaka-karaniwang hindi bababa sa Europa) ay gumagamit nito. Hindi alam ang tungkol sa iba pang mga tatak. Kaya ipalagay ko, na gumagamit ka ng isang Fritz! Box. Kung magagawa mo ang gawaing ito (o nabigo na gawin ito) sa anumang iba pang mga router, Masaya kong idagdag ito sa itinuro na ito (marahil ay magsimula pa rin ng isang maikling listahan ng pagiging tugma?).

Ang hakbang na ito ay hindi kinakailangan, maaari mo ring gamitin ang iyong admin account, ngunit hindi maipapayo para sa mga halatang kadahilanan (maaaring maharang o makuha mula sa iyong ESP, maaari mong aksidenteng baguhin ang mga bagay na hindi mo nais, …) - kaya't ako payuhan kang gawin ito

Gayunpaman, narito na tayo:

  1. Mag-log in sa iyong Fritz! Box sa pamamagitan ng pag-type ng fritz.box sa url-bar ng iyong paboritong browser.
  2. Hanapin ang pahina para sa paglikha ng isang bagong FRITZ! Box user (kailangan mong magkaroon ng advanced na dapat nasa ilalim ng System, kung hindi mo ito mahahanap, subukang i-update ang iyong aparato).
  3. Lumikha ng isang bagong account tulad ng nakikita mo sa larawan (gamit ang ibang pangalan / password ng gumagamit!).
  4. Pag-logout

Hakbang 2: Code

Image
Image
Hardware (beta)
Hardware (beta)
  1. Maaari kang makakuha ng silid-aklatan mula sa Github.

  2. Sa mga halimbawang makikita mo ang isang file na tinatawag na home-indicator.ino, na ang code para sa proyektong ito. Ilagay ang mga halimbawa ng folder sa iyong folder ng home arduino IDE na proyekto at ang iba pang folder sa folder ng mga aklatan sa parehong folder ng home project.
  3. (Re) Simulan mo ang IDE.
  4. Buksan ang home-indicator.ino sa IDE at ipasok ang iyong mga setting. Dapat itong maging halata kung ano ang pupunta kung saan. Kung mayroon kang anumang mga katanungan, ipaalam sa akin!
  5. Maaari mo na itong ipunin at ilipat ito sa iyong ESP!

Hakbang 3: Hardware (beta)

Hardware (beta)
Hardware (beta)
Hardware (beta)
Hardware (beta)
Hardware (beta)
Hardware (beta)

Yeah … Ito ang hakbang, kung saan kailangan ko pang magtrabaho pa. Ngunit sa palagay ko mayroong sapat na materyal sa web upang malaman ang isang bagay:) Ang pag-setup tulad ng sa mga larawan ay isang diode lamang na may ~ 100Ohm risistor na naka-wire sa GPIO {5, 4, 0, 2}, na kung saan ay ang D1, Ang D2, D3, D4 (sa pagkakasunud-sunod na iyon) mga pin ng aking board ng MCU ESP8266 at ang maliit na orange cable na kumukuha ng mga cathode sa GND (minarkahang G sa aking board). Kung tamad ka, magagawa mo ang nakikita mo sa pangalawang imahe. Gumamit lamang ng isang development-board na may kasamang LED's (tulad ng "ESP-202", tingnan ang mga larawan - mga 3.50-5.00 € kasama ang pagpapadala). Maaari mo lamang itong mai-hook sa kapangyarihan ng USB o gamitin ang kasama na baterya pack, gumuhit ng isang interface sa isang piraso ng papel at idikit ito sa dingding. Tapos na. Para sa tukoy na board na ito, ang mga port ay:

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

mula sa itaas hanggang sa ibaba.

Hakbang 4: Outlook / Mga Sanggunian

Ito ang plano ko pa rin: 1. Paggawa ng isang magandang pabahay (malinaw naman) 2. Pagdaragdag ng isang magandang GUI para sa pamamahala ng mga gumagamit / LEDs / MAC / kilalang mga aparato 3. Pagpapabuti ng silid-aklatan (tingnan ang Github para doon) 4. Ayusin: minsan ang LEDs matamlay na reaksyon (tumatagal ng kaunti hanggang sa sila ay patayin, pagkatapos ng kaliwa ng isang aparato) nang walang malinaw na dahilan 5. I-hook ang bagay sa pasilyo at marahil ng ilang higit pa sa paligid ng bahay Gusto kong makakuha ng ilang mga input mula sa iyo! At tulad ng dati, napasasaya ko talaga na makita ang iba na nagtatayo ng tae na naisip mo, kaya mangyaring maglaan ng minuto upang magkomento at mag-post ng mga larawan!:):) Ang ilan pang mga sanggunian ay mai-link ko ang ilang mga bagay dito, na maaaring makatulong sa iyo: • Sanggunian sa TR-064 • Ang ilang tao ay nagkakagulo gamit ang shell at TR-064 (mahusay na makuha ang API) • Harry Potter Wikipedia: Pagpasok sa Weasley Clock • Ang ilang mga lalaki ay nagtatayo ng isang maganda, ngunit kumplikadong Weasly Clock * _ * Ito ay batay sa isang app para sa iyong telepono na kukuha ng iyong lokasyon. Kung ikaw ay nasa ilang mga paunang natukoy na lugar, ang naaayon na ilaw sa orasan ay bubuksan. Para sa akin na masyadong kumplikado at kailangan sa maraming lugar kung saan ito maaaring masira / mabigo: • Kailangang panatilihing napapanahon ang mga app • Kailangang gamitin ng bawat isa ang mga app na ito • At maging okay sa epekto sa privacy • Gumagana lamang ang app sa internet koneksyon • Kailangan mong gumamit ng isang intermediate server para sa interface ng komunikasyon (maliban kung nais mong i-set-up ka bilang server at buksan ka ng network ng bahay para sa labas ng trapiko - oo, isa pang hindi ligtas na aparato ng IOT na direktang konektado sa internet!) • Ang intermediate service ay maaaring mag-offline isang araw / baguhin ang API nito, •… Kailangan mo ng mas maraming software. Ang mas maraming software ay nangangahulugang maraming mga lugar upang makagawa ng isang error;) Ngunit, gumawa sila ng isang kamangha-manghang trabaho at kung nais mong gumawa ng isang bagay tulad nito, magtungo sa kanilang site, napakahusay nito!

Inirerekumendang: