Innlevering av Dan McGrath. Hva handler alt om da? Vel, jeg har masse hjemmeautomatisering, og jeg elsker det! Men når jeg viser det til venner og familie, har jeg en tendens til å få ett av to svar. Den første er at det bare er en gimmick, og at de aldri vil ha noe sånt. Det andre er at det er flott, men for komplisert for dem å sette opp noe lignende.
Så dette er mitt forsøk på en enkel, faktisk veldig enkel automatiseringsenhet som alle kan bruke, og praktisk talt hvem som helst kan gjøre. Jeg vurderer faktisk seriøst å produsere disse i bulk (vel noe lignende) og selge hele partiet som en administrert tjeneste for omtrent en tenner i året. (Gi meg beskjed om dette kan være av interesse for noen). Uansett, så dette er mitt forsøk på billig hjemmeautomatisering for massene, jeg håper du liker det …
Design – riktig, så jeg trenger noe som er billig, pålitelig, lett å få tak i. Også noe som kan utløses av en enkel bryter, og at bryteren kan være noe av følgende:
Koble den til et stikkontakt, lys eller et hvilket som helst annet apparat, og bruk den til å montor det.
Fest til et solcellepanel eller LDR for å overvåke lysnivået.
Koble et par sonder og oppdag vann (planter, regn, lekkasjer osv.)
Koble til en PIR- eller vassbryter for sikkerhet,
Koble til en røykvarsler for brannbeskyttelse,
Koble til en trykkmatte osv.….
De fleste ønsker ikke at en PC eller server kjører hele dagen, på grunn av støy, varme og energiforbruk. Easy Tiny One Board -datamaskiner kan nå kjøpes fra $ 50 hver (Xport, Arduino, Picotux, osv.), Men selv dette virker overdreven for det jeg vil …
En administrert bryter, ruter, brannmur, alt med en Ethernet -port og et slags nettgrensesnitt var det jeg var ute etter, men det måtte være billig … og liten…. Så kom jeg på ideen om en utskriftsserver … Utskriftsservere er ideelle, de bruker veldig lite strøm, er utviklet for å bli slått på hele tiden, kan svare på en ping og bedre har fortsatt en innebygd webserver også. Jeg gjorde litt googling rundt og så dem for så lite som en tenner på eBay. Å, og de er bittesmå også! Jeg hadde tre ideer til dette prosjektet:
Den første var at jeg kunne bryte eller korte overføringsparet på den innkommende Ethernet -kabel -TV -en til utskriftsserveren. Helt klart med disse kortslåtte eller ødelagte enheten vil ikke være i stand til å svare på verken en ping eller en HTTP -forespørsel.
Jeg tror det ville fungere, men det virket litt barbarisk, og jeg er sikker på at jeg kunne gjøre det bedre.
Det andre var bare å bryte kraften til enheten
Dette hadde potensiale fra et energisparende synspunkt, da du bare ville drevet enheten noe av tiden, selvfølgelig når det ble slått av, ville du ikke se verken dets nettsted eller et svar på en ping -forespørsel. Jeg likte denne ideen, det eneste som satte meg av var at når den ble slått av, ville det være umulig å si om enheten var av, eller koblet fra nettverket av en annen grunn – kanskje en fiasko andre steder. Jeg var også usikker på hvor lenge enheten skulle beholde innstillingene (nettverk osv.) Mens den var av.
Det jeg virkelig ønsket var en måte å få en reaksjon fra enheten for å bekrefte at den enten var i en eller annen tilstand, på den måten kunne du være sikker på hva som virkelig foregikk. Det er der den tredje ideen min kommer inn.
Den tredje ideen var å lure utskriftsserveren at en skriver virkelig var knyttet til den,
Og så ha det slik at det så ut til at skriveren var på eller utenfor linjen.
Jeg gjorde litt undersøkelser, og det ser ut til at pinne 13 i kontakten brukes til dette formålet. Ta pinnen høyt (dvs. bruk 5 volt på den), og serveren mener at skriveren er On_line, ta pinnen lav (dvs. fjern spenningen) og serveren mener at skriveren er off_line.
Som alt jeg trenger å gjøre er å bruke og fjerne 5 volt, kan jeg bare finne 5 volt et sted og rute den gjennom en bryter. Lukk bryteren, og det ser ut til at skriveren er On_line, åpne bryteren og skriveren vises off_line. Som jeg sier, gjenspeiles denne statusen i nettgrensesnittet, så et enkelt skript burde være i stand til å avstemme denne siden og analysere skriverstatusen og deretter bruke denne informasjonen for noe nyttig.
Konstruksjon-Som diskutert ovenfor, brukte jeg en Edimax PS-1206p parallellutskriftsserver, som jeg kjøpte for omtrent 25 pund på nettet. Det var faktisk mye mer som 22 pund, men porto og pakking av det litt. Jeg endte opp med å kjøpe en håndfull av disse, da de var så billige. Jeg har aldri hørt om Edimax før, så produktet kan være bra eller dårlig, men jeg bryr meg ikke, så lenge det vil svare på en HTTP -forespørsel, så blir jeg lykkelig! Jeg ble behagelig overrasket da de dukket opp, de var pent bokset, og innholdet så bra ut også:
En ting er helt sikkert, denne enheten vil aldri bli koblet til baksiden av en skriver. Jeg har snart hakket det opp i noe langt mer interessant. Detaljer her: Edimax PS-1206p
OK, så la oss få lokket av en av disse… .Jeg elsker å ta ting fra hverandre, men tar helt nye tingBortsett fra er spesielt morsomt for meg, det virker bare så galt !! Det er et par Phillips -hodeskruer på bunnen, og når disse er fjernet, trekker saken bare fra hverandre, selv om du trenger å presse sidene litt mens de to halvdelene klippes inn i hverandre.
Jeg ble hyggelig overrasket over innsiden av denne enheten, den var veldig bra satt sammen. Herren vet bare hva alle bitene er for, jeg antar at det er en prosessor der inne, noe minne, litt av I/O og andre ting jeg ikke forstår.
Nå kan du holde den store 36pin -sentronikkkontakten på utskriftsserveren og bare få tak i den matchende pluggen for å koble til den, men disse er ganske klumpete og det virker litt over toppen, spesielt med tanke på at vi bare trenger å koble til 2 av Disse 36 pinnene. Jeg valgte å kutte stikkontakten … nei, jeg gjorde det ikke med en øks, det ser litt grovt ut for øyeblikket:
Deretter desolderte jeg de individuelle pinnene fra brettet og utgjorde en liten metallplate for å blokkere hullet som var igjen fra den manglende kontakten. Jeg boret et par hull i den og koblet sammen et par skruetterminaler. Litt 2 -del epoksy og litt varmeskrink, og du har dette …
Ganske pent eh?! Så det er den fungerende prototypen, med litt hell, å bygge bro mellom de to skruenterminalene vil returnere en ON_LINE -status, og å la dem åpne vil gi en off_line. Så det er på tide å teste. Merk: Bildene over viser tilkoblingene til pinnene 35 og 36, dette er feil, etterfølgende testing viste at jeg faktisk trengte pinnene 13 og 19.
Jeg valgte å måle strømforbruket, og jeg ble behagelig overrasket over det jeg fant, det bruker bare 6watt, som ikke er så mye som er det? (Ved 10p per kWh vil det koste omtrent 5 pund per år å løpe)
Som jeg sa ovenfor, skal jeg avstemme serveren min med en HTTP -forespørsel og samle inn skriverstatusen, men hvis du bare vil se om den er der ved å pinge den, kan du bruke Ping til Montior, ved å bruke noe sånt som:
Dato
n = 1
mens [$ n -LT 1000]
gjøre
ping -n 1 server_ip
ekko $ n
La n = n+1
Ferdig
Dato
Viser at denne enheten enkelt kan sende (og motta) 1000 pinger på 52 sekunder, som er 20 pinger i sekundet. Så pinging er det et levedyktig alternativ og burde gi deg et ganske raskt svar. Selvfølgelig, hvis du bare vil bruke ping, må du enten sette av enheten ved å bryte strøm- eller nettverkstilkoblingen (den vil ikke bli påvirket av skriverstatus). Pings fungerer ikke veldig bra på internett, mange mennesker og rutere deaktiverer ICMP -forespørsler på sine grenser, men fordelen med denne enheten er at den også har et nettgrensesnitt som kan purres for å sjekke tilgjengeligheten. Dette kan gjøres enkelt over internett, og igjen viser et kort manus at du kan komme med omtrent 1 forespørsel per sekund ved å bruke …
#!/usr/bin/bash
Bruker = Brukernavn
passord = passord
url = server_url
WGET –QUIET –HTTP-bruker = $ bruker –http-Password = $ Passord \
–Proxy = $ Proxy $ url
grep off_line printer.htm> /dev /null
hvis [“$?” == “0”]
ekko “offline”
ellers ekko “Online”
fi
RM Printer.htm
Returnerer en verdi basert på skriverstatusen. Legg merke til at webserveren ombord er ganske treg, som forventet egentlig, men du får en reaksjon på mindre enn et sekund, så jeg tror det vil være mulig å avstemme hver 5-10 sek. Bytte ut Echo -kommandoene med post eller flere WGET -kommandoer kan sende deg en e -post eller få en URL (kanskje bruk Twitter til å sms deg osv.)
OK, et eksempel på hvordan du oppdaterer Twitter -statusen din er gitt nedenfor:
WGET –Keep-Session-Cookies –Http-bruker = Brukernavn \
–Http-Password = passord –Post-data = melding \
(Erstatt brukernavn, passord og melding med, vel du vet ..)
Eller enda bedre, slik er du hvordan du sender deg en tweet når noe skjer:
WGET –Keep-Session-Cookies –http-bruker = bruker \
–Http-Password = passord –Post-data = melding \
Merk, du må url kode meldingen som er ganske kult, er det ikke? Se mye mer om Twitter API her. – Twitter API
For å se dette fra nettet, må du NAT til utskriftsserveren, jeg kjører en Cisco -ruter, så følgende fungerte for meg:
ip nat inne i kilde statisk TCP utvidbar
(Hold portnummeret oppe i det høye 50 000 -tallet, så får du mindre mennesker til å skanne og undersøke deg). Hvis du har en Linksys -ruter, vil retningslinjen være annerledes, men noe som dette burde gjøre det:
Hvis du ikke har noen av de ovennevnte, er du på egen hånd … lykke til!
Programvare – OK, jeg ga noen eksempler ovenfor, nedenfor er et fungerende bash -skallskript som vil overvåke en av disse for deg, og Twitter SMS deg når staten endres. Det er et veldig enkelt eksempel, men burde komme i gang.
#!/bin/bash
## Web Få parametere
bruker = ”admin”
passord = ”1234 ″
url = ”http: //ip_address/printer.htm”
## Twitter -parametere
t_user = bruker
t_passwd = passord
## Andre parametere
status = ”lukket”
mens sant
gjøre
old_status = $ status
WGET –QUIET –HTTP-bruker = $ bruker –http-Passwd = $ passord $ url
grep off_line printer.htm> /dev /null
hvis [“$?” == “0”]
da status = ”åpen”
annet status = ”lukket”
fi
RM Printer.htm
hvis [$ status! = $ old_status]
deretter wget –quiet –http-bruker = $ t_user \
–HttP-Passwd = $ T_Passwd –Keep-Session-Cookies \
–Post-data = ”bruker = Twitter_UserName & Text = Melding” \
fi
Sov 1
Ferdig
Alternativt kan du bruke litt overvåkningsprogramvare som de enestående Freenats for å varsle deg når noe skjer.
Konklusjon – Vel, jeg håper du har gledet deg over det jeg har gjort, du må innrømme at det er hjemmeautomatisering
På billig, og veldig enkelt å gjøre. Skål – Dan
Nyttige lenker
Cpan – alle ting perl
Perl – Mye flere ting Perl
WGET – WGET -applikasjon
Edimax – leverandører av utskriftsserveren andre / misc
Twitter – Social Networking Site med SMS
Denne korte artikkelen ble gjengitt fra originalen ved vennlig samtykke fra Dan McGrath of Your Missus.com
Ønsker mer? – Følg oss på Twitter, som oss på Facebook, eller abonner på RSS -feeden vår. Du kan til og med få disse nyhetene levert via e -post, rett til innboksen hver dag
Dele denne:
Facebook
Twitter
Reddit
LinkedIn
Pinterest
E -post
Mer
Hva skjer
Skrive ut
Skype
Tumblr
Telegram
Lomme