Dan McGrath benyújtása az Ethernet Home Automation

nyomtatási szerver feltörése. Mi ez az egész? Nos, rengeteg otthoni automatizálásom van, és imádom! Amikor azonban megmutatom a barátoknak és a családnak, inkább a két válasz egyikét kapom. Az első az, hogy ez csak egy trükk, és soha nem akarnak ilyesmit. A második az, hogy nagyszerű, de túl bonyolult ahhoz, hogy valami hasonlót hozzon létre.

Tehát ez az én kísérletem egy egyszerű, valójában nagyon egyszerű otthoni automatizálási eszközre, amelyet bárki használhat, és gyakorlatilag bárki is megtehet. Valójában komolyan fontolgatom, hogy ömlesztett módon gyártják ezeket (nos, valami hasonló), és az egész tételt évente körülbelül egy bérbeadóként adom el. (Kérjük, tudassa velem, ha ez érdekes lehet -e bárki számára). Mindenesetre, tehát ez a kísérlet az olcsó otthoni automatizálásom a tömegek számára, remélem, tetszik …

Design – igaz, tehát szükségem van valamire, ami olcsó, megbízható, könnyen megszerezhető. Szintén olyasmi, amit egy egyszerű kapcsolóval kiválthat, és ez a kapcsoló bármelyike ​​lehet:

Csatlakoztassa azt egy aljzathoz, fényhez vagy bármely más készülékhez, és használja azt Montor -hoz.

Csatlakoztassa a napelemhez vagy az LDR -hez a fényszint megfigyeléséhez.

Csatlakoztasson egy pár szondát, és detektálja a vizet (növények, eső, szivárgások stb.)

Csatlakozzon egy PIR -hez vagy nádkapcsolóhoz a biztonság érdekében,

Csatlakozzon a füstjelzéshez a tűzvédelem érdekében,

Csatlakozzon egy nyomószőnyeghez stb.

A legtöbb ember nem akarja, hogy a PC vagy a szerver egész nap futjon, a zaj, a hő és az energiafogyasztás miatt. Könnyű, apró, egy tábla számítógépek most már 50 dollárból vásárolhatók (Xport, Arduino, Picotux stb.), De még ez úgy tűnik, hogy túlságosan elterjedt, amit akarok…

A kezelt kapcsoló, útválasztó, tűzfal, bármi, ami Ethernet portdal és valamilyen webes felületet kapott, volt az, amit én voltam, de olcsónak kellett lennie… és kicsinek. Aztán előálltam a nyomtatási szerver ötletével. A nyomtatási kiszolgálók ideálisak, nagyon kevés villamos energiát használnak, úgy fejlesztették ki, hogy folyamatosan bekapcsolhassák, reagáljanak egy pingre, és még jobb, ha van egy beépített webszerver is. Megcsináltam egy kis googlingot, és láttam őket, mint egy bérlőt az eBay -en. Ó, és ők is kicsik! Három ötletem volt erre a projektre:

Az első az volt, hogy megtörhetem vagy rövidíthetem az átviteli párot a bejövő Ethernet kábeltelevízión a nyomtatószerverre. Természetesen ezekkel a rövidített vagy törött eszközzel nem tudna válaszolni sem a pingre, sem a HTTP kérésre.

Azt hiszem, működni fog, de kissé barbárnak tűnt, és biztos vagyok benne, hogy jobban tudok csinálni.

A második az volt, hogy megszakítsák az eszköz energiáját

Ennek energiamegtakarítási szempontból volt lehetősége, mivel csak egy részben táplálja az eszközt, természetesen, amikor kikapcsolják, nem látná sem a weboldalt, sem a Ping kérésre adott válaszokat. Nagyon tetszett ez az ötlet, az egyetlen dolog, ami elbocsátott, az volt, hogy amikor kikapcsolva, lehetetlen megmondani, hogy az eszköz ki van -e -e ki, vagy egy másik okból leválasztott -e a hálózatról – talán másutt kudarc. Szintén nem tudtam, mennyi ideig tartja az eszköz a beállításokat (hálózat stb.), Amíg ki volt kapcsolva.

Amit igazán akartam, az az volt, hogy reakciót szerezzünk az egységből, hogy megerősítsék, hogy az egyik vagy a másik állapotban van, így biztos lehet benne, mi történik valójában. Itt jön be a harmadik ötletem.

A harmadik ötlet az volt, hogy becsapják a nyomtatási szervert, hogy a nyomtatót valóban csatolták,

És aztán kérje meg úgy, hogy úgy tűnt, hogy a nyomtató be- vagy kívüli vagy.

Készítettem egy kis kutatást, és úgy tűnik, hogy a csatlakozó 13. érintkezőjét használják erre a célra. Vegye ki a PIN -kódot (azaz 5 Volt alkalmazzon rá), és a szerver úgy gondolja, hogy a nyomtató on_line, vegye le a tűt alacsonyan (azaz távolítsa el a feszültséget), és a szerver úgy gondolja, hogy a nyomtató OFF_LINE.

Mint csak annyit kell tennem, hogy alkalmazzuk és eltávolítsuk az 5 Volts -ot, csak 5volt találok valahol, és átirányíthatom azt egy kapcsolón keresztül. Zárja be a kapcsolót, és úgy tűnik, hogy a nyomtató on_line, nyissa meg a kapcsolót, és a nyomtató Off_line megjelenik. Mint mondom, ez az állapot tükröződik a webes felületen, tehát egy egyszerű szkriptnek képesnek kell lennie arra, hogy megítélje ezt az oldalt, és elemezze a nyomtató állapotát, majd ezt az információt valami hasznoshoz használja.

Építés-Mint fentebb tárgyaltuk, egy Edimax PS-1206p párhuzamos nyomtatási szerveret használtam, amelyet kb. 25 fontért vásároltam online. Valójában sokkal inkább 22 quid volt, de a postaköltség és a csomagolás egy kicsit felfelé. Végül néhányat vásároltam, mivel annyira olcsók voltak. Még soha nem hallottam az Edimaxról, így a termék jó vagy rossz lehet, de nem érdekel, mindaddig, amíg ez válaszol egy HTTP kérésre, akkor boldog leszek! Kellemesen csodálkoztam, amikor felbukkantak, szépen dobozosak voltak, és a tartalom is rendben volt:

Egy dolog biztos, hogy ezt az eszközt soha nem csatlakoztatják a nyomtató hátuljához. Hamarosan sokkal érdekesebbé vágom. Részletek itt: Edimax PS-1206p

Oké, szóval vegyük le a fedelet az egyiket … csak szeretek szétválasztani a cuccokat, de vadonatúj cuccokat készítünkKülönösen szórakoztató számomra, csak annyira rossznak tűnik !! Van néhány Phillips fejcsavar az alján, és miután ezeket eltávolították, a tok csak széthúzódik, bár kissé meg kell szorítani az oldalakat, amikor a két felét egymásba rögzítik.

Kellemesen csodálkoztam az egység belsejében, nagyon jól összeállítottam. Az Úr csak tudja, mi az összes bit, azt hiszem, van ott egy processzor, néhány memória, egy kis I/O és más dolgok, amelyeket nem értek.

Most megőrizheti a nagy 36pin centronikus aljzatot a nyomtatószerveren, és csak meg tudja tartani a megfelelő dugót, hogy csatlakozzon hozzá, de ezek meglehetősen terjedelmesek, és kissé úgy tűnik, hogy a tetején egy kicsit úgy tűnik, hogy csak figyelembe vesszük, hogy csak 2 -hez kell csatlakoznunk a 2 -hez. Ezek a 36 csap. Úgy döntöttem, hogy levágom az aljzatot … Nem, nem tengelyével csináltam, mégis kissé durván néz ki:

Ezután elhagytam az egyes csapokat a tábláról, és elkészítettem egy kis fémlemezt, hogy blokkoljam a hiányzó aljzatból balra. Pár lyukat fúrtam benne, és csatlakoztattam egy pár csavaros csatlakozót. Egy kis 2 részben epoxi és némi heathrink, és van ez…

Elég ügyes eh?! Tehát ez a működő prototípus, egy kis szerencsével, hogy áthidalja a két csavarkerminál egy ON_LINE státust, és ha nyitva hagyja őket, akkor OFF_LINE -t ad. Tehát itt az ideje tesztelni. MEGJEGYZÉS: A fenti képek a 35. és a 36. csaphoz való csatlakozásokat mutatják, ez helytelen, a későbbi tesztelés azt mutatta, hogy valójában szükségem van a 13. és 19. csapra.

Úgy döntöttem, hogy megmérem az energiafogyasztást, és kellemesen csodálkoztam, amit találtam, csak 6Watt -ot használ, ami nem túl sokat? (10p / kWh -nál kb. 5 quidba kerül a futás)

Mint fentebb mondtam, HTTP kéréssel fogom felszámolni a szerveremet, és összegyűjtem a nyomtató állapotát, de ha csak azt szeretné megnézni, hogy ott van -e, ha pingol, akkor a ping segítségével Montior segítségével valami hasonlóval:

dátum
n = 1

míg [$ n -lt 1000]
csinál
ping -n 1 szerver_ip
echo $ n
Legyen n = n+1
Kész
dátum

Megmutatja, hogy ez az eszköz 52 másodperc alatt könnyen elküldhet (és fogadhat) 1000 ping -ot, ami 20 ping. Tehát a pinging ez egy életképes lehetőség, és meglehetősen gyors választ kell adnia. Természetesen, ha csak a Ping -et szeretné használni, akkor vagy el kell állítania az egységet az energia- vagy hálózati kapcsolat megszakításával (a nyomtató állapota nem befolyásolja). A Pings nem igazán működik jól az interneten, sok ember és útválasztó letiltja az ICMP kéréseit a határokon, azonban az a előnye, hogy ennek az eszköznek az az előnye, hogy van egy olyan webes felület, amelyet meg lehet vizsgálni annak elérhetőségének ellenőrzése érdekében. Ezt könnyen meg lehet tenni az interneten keresztül, és ismét egy rövid szkript azt mutatja, hogy másodpercenként kb. 1 kérést készíthet…

#!/usr/bin/bash

felhasználó = felhasználónév
Jelszó = Jelszó
url = server_url

wget –quiet –http-user = $ felhasználó –http-password = $ jelszó \
–Proxy = $ proxy $ URL

grep off_line nyomtató.htm> /dev /null

Ha [“$?” == „0”]
majd visszhangozza az „offline”
egyébként visszhang „online”
fi

RM nyomtató.htm

Visszaad egy értéket a nyomtató állapota alapján. Vegye figyelembe, hogy a fedélzeten lévő webszerver elég lassú, ahogy a várt ténylegesen, de kevesebb, mint egy másodperc alatt kap egy reakciót, tehát azt hiszem, hogy 5-10 másodpercenként megkerülhető. Az ECHO parancsok cseréje e -mailben vagy kiegészítő wget parancsok e -mailben e -mailben, vagy URL -t kaphat (esetleg a Twitter segítségével SMS -hez stb.)

Ok, az alábbiakban található a Twitter állapotának frissítésének példája:

WGET-Keep-Session-cookies –http-user = felhasználónév \
–Http-password = jelszó –post-data = üzenet \

(Cserélje ki a felhasználónevet, a jelszót és az üzenetet, nos tudod ..)

Vagy még jobb, itt van, hogyan lehet elküldeni magának egy tweetet, amikor történik valami:

WGET-Keep-Session-cookies –http-user = felhasználó \
–Http-password = jelszó –post-data = üzenet \

Megjegyzés: URL -nek kell kódolnia az nagyon jó üzenetet, nem igaz? Lásd még sokkal többet a Twitter API -ról. – Twitter API

Ahhoz, hogy ezt a netről megtekinthesse, a nyomtatási szerverre kell lennie, Cisco útválasztót futtatok, így a következők nekem működtek:

ip nat belső forrás statikus TCP kiterjeszthető

(Tartsa a port számát a magas 50 000 -es években, és kevesebb embert szkennelsz és szondolnak). Ha van egy Linksys útválasztója, akkor az iránymutatás más lesz, de valami hasonlónak meg kell tennie:

Ha még a fentiek egyikét sem kapott, akkor egyedül vagy … sok szerencsét!

Szoftver – Rendben, néhány példát adtam fent, az alábbiakban egy működő bash shell szkript található, amely figyelemmel kíséri az egyiket az Ön számára, és a Twitter SMS -t, amikor az állapot megváltozik. Ez egy nagyon egyszerű példa, de el kell kezdenie.

#!/bin/bash

## Web Get Paraméterek
user = ”admin”
Jelszó = ”1234 ″
url = ”http: //ip_address/printer.htm”

## Twitter paraméterek
t_user = felhasználó
t_passwd = jelszó

## Egyéb paraméterek
status = „Zárt”

bár igaz
csinál
old_status = $ status
wget –quiet –http-user = $ felhasználó –http-passwd = $ jelszó $ url

grep off_line nyomtató.htm> /dev /null

Ha [“$?” == „0”]
akkor az állapot = ‘nyitva ”
else status = “zárt”
fi

RM nyomtató.htm

Ha [$ status! = $ old_status]
Ezután WGET –Quiet –HTTP-USER = $ T_USER \
–Http-passwd = $ t_passwd –keper-session-cookies \
–Post-data = ”user = twitter_username & text = üzenet” \

fi
Aludj 1
Kész

Alternatív megoldásként használhat néhány megfigyelő szoftvert, például a kiemelkedő Freenats -ot, hogy figyelmeztesse Önt, amikor valami történik.

Következtetés – Nos, remélem, örült, amit tettem, be kell vallanod, hogy az otthoni automatizálás
olcsón, és nagyon könnyű megtenni. Vidám – Dan

Hasznos Linkek

CPAN – Minden Perl
Perl – sokkal több dolog perl
WGET – WGET alkalmazás
EDIMAX – A nyomtatott szerver szolgáltatói egyéb / egyéb
Twitter – közösségi oldalak SMS -sel

Ez a rövid cikk, amelyet Dan McGrath, a YourMissus.com kedves hozzájárulása alapján reprodukáltak

Többet akar? – Kövessen minket a Twitteren, mint mi a Facebookon, vagy iratkozzon fel az RSS -hírcsatornánkra. Még ezeket a híreket is eljuttathatja e -mailben, minden nap egyenesen a postaládájába

Ossza meg ezt:
Facebook
Twitter
Reddit
LinkedIn
Pinterest
Email
Több

WhatsApp
Nyomtatás

Skype
Tumblr

Távirat
Zseb

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post

A DIY ablakkertA DIY ablakkert

Beltéri növényeket hozott be, gyönyörűen csoportosítva az üveg alá. A karcsú bemutató Flora kortárs centrifugálást eredményez, és fantasztikus módja annak, hogy a gyógynövényeket vagy a palántákat korai kezdetben eljuttassák; Amikor