Inzending door Dan McGrath. Waar gaat het dan allemaal over? Nou, ik heb heel veel thuisautomatisering en ik vind het geweldig! Wanneer ik het echter aan vrienden en familie laat zien, heb ik de neiging om een van de twee reacties te krijgen. De eerste is dat het gewoon een gimmick is en ze willen nooit zoiets. De tweede is dat het geweldig is, maar te ingewikkeld voor hen om iets soortgelijks op te zetten.
Dus dit is mijn poging tot een eenvoudig, in feite heel eenvoudig thuisautomatiseringsapparaat dat iedereen kan gebruiken, en praktisch iedereen kan maken. Ik overweeg deze eigenlijk serieus te produceren deze in bulk (nou ja, iets soortgelijks) en de hele partij als een beheerde service voor ongeveer een jaar per jaar verkopen. (Laat het me weten als dit voor iedereen interessant kan zijn). Hoe dan ook, dus dit is mijn poging tot goedkope thuisautomatisering voor de massa, ik hoop dat je het leuk vindt …
Ontwerp – Juist, dus ik heb iets nodig dat goedkoop, betrouwbaar is, gemakkelijk te bemachtigen. Ook iets dat kan worden geactiveerd door een eenvoudige schakelaar, en die schakelaar kan een van de volgende zijn:
Sluit het aan op een socket, licht of een ander apparaat en gebruik deze om het te ponten.
Bevestig aan een zonnepaneel of LDR om de lichtniveaus te controleren.
Sluit een paar sondes aan en detecteer water (planten, regen, lekken enz …)
Maak verbinding met een PIR- of rietschakelaar voor beveiliging,
Maak verbinding met een rookalarm voor brandbeveiliging,
Maak verbinding met een drukmat enz …
De meeste mensen willen niet dat een pc of server de hele dag draait, vanwege het geluid, warmte en energieverbruik. Eenvoudige kleine bordcomputers kunnen nu elk worden gekocht van $ 50 (Xport, Arduino, Picotux, enz.), Maar zelfs dit lijkt overdreven voor wat ik wil …
Een beheerde schakelaar, router, firewall, alles met een Ethernet -poort en een soort webinterface was waar ik naar op zoek was, maar het moest goedkoop zijn … en klein … Toen kwam ik op het idee van een printserver … Printservers zijn ideaal, ze gebruiken heel weinig elektriciteit, zijn ontwikkeld om altijd in te schakelen, kan reageren op een ping en beter ook een ingebouwde webserver hebben. Ik heb een beetje googlen rond en zag ze voor zo weinig als een Tenner op eBay. Oh en ze zijn ook klein! Ik had drie ideeën voor dit project:
De eerste was dat ik het zendpaar op de inkomende Ethernet -kabeltelevisie naar de printserver kon breken of kortsluiten. Zeker met deze kortsluiting of gebroken zou het apparaat niet in staat zijn om te reageren op een ping- of een HTTP -verzoek.
Ik denk dat het zou werken, maar het leek een beetje barbaars en ik weet zeker dat ik het beter zou kunnen doen.
De tweede was gewoon om de stroom naar het apparaat te breken
Dit had potentieel vanuit het oogpunt van energiebesparend omdat je het apparaat soms alleen zou voeden, natuurlijk als het werd uitgeschakeld, zou je de website of een ping -verzoek niet zien. Ik vond dit idee heel leuk, het enige dat me afschafte was dat het onmogelijk zou zijn om te zeggen of het apparaat om een andere reden was om te zeggen of het apparaat niet was uitgeschakeld of om een andere reden uit het netwerk was – misschien een storing elders. Ook was ik niet zeker hoe lang het apparaat de instellingen (netwerk enz.) zou behouden terwijl het uit was.
Wat ik echt wilde, was een manier om een reactie van de eenheid te krijgen om te bevestigen dat het in een of andere staat was, op die manier kon je zeker zijn van wat er echt aan de hand was. Dat is waar mijn derde idee binnenkomt.
Het derde idee was om de printserver te misleiden dat een printer er echt aan was gekoppeld,
En dan zo dat het leek dat de printer aan of uit was.
Ik heb een beetje respit en het lijkt erop dat pin 13 van de connector voor dit doel wordt gebruikt. Neem de pin hoog (d.w.z. Breng er 5Volts op toe) en de server denkt dat de printer On_line is, neem de pin laag (d.w.z. de spanning verwijderen) en de server denkt dat de printer off_line is.
Omdat ik alleen maar 5Volts hoef te aanbrengen en te verwijderen, kan ik gewoon ergens 5VOLTEN vinden en door een schakelaar rijden. Sluit de schakelaar en het lijkt erop dat de printer On_line is, de schakelaar opent en de printer verschijnt off_line. Zoals ik zeg, wordt deze status weerspiegeld in de webinterface, dus een eenvoudig script zou deze pagina moeten kunnen bestrijden en de printerstatus moeten parseren en deze informatie vervolgens moeten gebruiken voor iets nuttigs.
Constructie-Zoals hierboven besproken, gebruikte ik een Edimax PS-1206P-parallelle printserver, die ik voor ongeveer 25 pond online heb gekocht. Het leek eigenlijk veel meer op 22 pond, maar verzendkosten en pakking die een beetje inpakken. Uiteindelijk heb ik een handvol van deze gekocht omdat ze zo goedkoop waren. Ik heb nog nooit van Edimax gehoord, dus het product kan goed of slecht zijn, maar het kan me niet schelen, zolang het zal reageren op een HTTP -verzoek, zal ik blij zijn! Ik was aangenaam verbaasd toen ze opdook, ze waren mooi in dozen en de inhoud zag er ook goed uit:
Eén ding is echter zeker, dit apparaat zal nooit op de achterkant van een printer worden aangesloten. Ik heb het snel in iets veel interessants in iets interessants gehakt. Details hier: Edimax PS-1206P
OK, dus laten we het deksel van een van deze afhalen … ik hou gewoon van dingen uit elkaar halen, maar gloednieuwe dingen halenAfgezien is vooral leuk voor mij, het lijkt gewoon zo verkeerd !! Er zijn een paar Phillips -kopschroeven aan de onderkant en zodra deze zijn verwijderd, trekt de behuizing gewoon uit elkaar, hoewel je de zijkanten een beetje moet knijpen terwijl de twee helften in elkaar knippen.
Ik was aangenaam verbaasd over de binnenkant van deze eenheid, het was heel goed in elkaar gezet. De Heer weet alleen waar alle stukjes voor zijn, ik denk dat er een processor zit, wat geheugen, een beetje van I/O en andere dingen die ik niet begrijp.
Nu kunt u de grote 36Pin Centronics -aansluiting op de printserver bewaren en gewoon de bijpassende plug in handen krijgen om ermee verbinding te maken, maar deze zijn behoorlijk omvangrijk en het lijkt een beetje overdreven te zijn, vooral gezien het feit dat we alleen maar moeten verbinding maken met 2 van Deze 36 pins. Ik koos ervoor om de socket af te snijden … Nee, ik heb het niet met een bijl gedaan, het ziet er op dit moment echter een beetje ruw uit:
Ik heb toen de afzonderlijke pinnen van het bord desold gehad en verzonnen een klein metalen plaat om het gat links van de ontbrekende kom te blokkeren. Ik heb er een paar gaten in geboord en een paar schroefklemmen verbonden. Een beetje 2 dollar epoxy en wat heatshrink en je hebt dit …
Best netjes hè?! Dus dat is het werkende prototype, met een beetje geluk, het overbruggen van die twee schroefterminals zal een ON_Line -status retourneren en ze open laten, zal een off_line geven. Dus het is tijd om te testen. Opmerking: de afbeeldingen hierboven tonen de verbindingen met pinnen 35 en 36, dit is onjuist, latere testen toonden aan dat ik eigenlijk pinnen 13 en 19 nodig had.
Ik koos ervoor om het stroomverbruik te meten, en ik was aangenaam verbaasd over wat ik vond, het gebruikt slechts 6Watts, wat niet zoveel is wat het is? (Bij 10p per kWh kost het ongeveer 5 pond per jaar om te rennen)
Zoals ik hierboven al zei, ga ik mijn server met een HTTP -verzoek peilen en de printerstatus verzamelen, maar als je gewoon wilt zien of het er is door het te pingen, dan kun je ping gebruiken om het te montior, met iets als:
datum
n = 1
terwijl [$ n -lt 1000]
doen
ping -n 1 server_ip
echo $ n
Laat n = n+1
gedaan
datum
Laat zien dat dit apparaat gemakkelijk 1000 pings in 52 seconden kan verzenden (en ontvangen), wat 20 pings per seconde is. Dus het pingen is een haalbare optie en zou u een vrij snelle reactie moeten geven. Als u ping wilt gebruiken, moet u natuurlijk het apparaat instellen door de stroom- of netwerkverbinding te verbreken (deze wordt niet beïnvloed door de printerstatus). Pings werken niet echt goed op internet, veel mensen en routers uitschakelen ICMP -aanvragen aan hun grenzen, maar het voordeel van dit apparaat is dat het ook een webinterface heeft die kan worden ondervraagd om de beschikbaarheid ervan te controleren. Dit kan gemakkelijk via internet worden gedaan, en opnieuw laat een kort script zien dat u ongeveer 1 verzoek per seconde kunt doen met behulp van …
#!/usr/bin/bash
gebruiker = gebruikersnaam
Wachtwoord = wachtwoord
url = server_url
wget –Quiet –HTTP-user = $ user –HTTP-PASSWORD = $ wachtwoord \
–Proxy = $ proxy $ url
grep off_line printer.htm> /dev /null
Als [“$?” == “0”]
Echo dan “offline”
anders echo “online”
fi
rm printer.htm
Retourneert een waarde op basis van de printerstatus. Merk op dat de webserver aan boord behoorlijk traag is, zoals verwacht, maar je krijgt een reactie in minder dan een seconde, dus ik denk dat het haalbaar zal zijn om elke 5-10 sec. Het vervangen van de echo -opdrachten door e -mail of extra wget -opdrachten kan u e -mailen of een URL krijgen (misschien Twitter gebruiken om u te sms, enz ..)
OK, een voorbeeld van hoe u uw Twitter -status kunt bijwerken, wordt hieronder gegeven:
wget –Keep-sessie-kookies –HTTP-user = gebruikersnaam \
–HTTP-PASSWORD = wachtwoord –Post-data = Message \
(Vervang gebruikersnaam, wachtwoord en bericht door, nou, weet je, …)
Of nog beter, hier is hoe je jezelf een tweet kunt sturen als er iets gebeurt:
wget –Keep-sessie-kookies –HTTP-user = user \
–HTTP-PASSWORD = wachtwoord –Post-data = Message \
Let op, u moet url coderen voor het bericht dat best cool is, nietwaar? Bekijk hier veel meer over de Twitter API. – Twitter API
Om dit vanaf het net te zien, moet u naar uw printserver nat, ik gebruik een Cisco -router, dus het volgende werkte voor mij:
ip nat binnenbron statisch tcp verlengbaar
(Houd het poortnummer omhoog in de hoge 50.000’s en je krijgt minder mensen die je scannen en sonderen). Als u een Linksys -router hebt, is de richtlijn anders, maar zoiets zou dit moeten doen:
Als je geen van het bovenstaande hebt, dan ben je alleen … veel geluk!
Software – OK, ik heb hierboven enkele voorbeelden gegeven, hieronder is een werkend bash -shell -script dat een van deze voor u zal volgen, en Twitter sms u wanneer de staat verandert. Het is een heel eenvoudig voorbeeld, maar zou je moeten beginnen.
#!/bin/bash
## Web Get Parameters
user = “admin”
Wachtwoord = ”1234 ″
url = ”http: //ip_address/printer.htm”
## Twitter -parameters
t_user = gebruiker
t_Passwd = wachtwoord
## Andere parameters
status = “gesloten”
terwijl waar
doen
old_status = $ status
wget –Quiet –Http-user = $ user –HTTP-PASSWD = $ wachtwoord $ url
grep off_line printer.htm> /dev /null
Als [“$?” == “0”]
vervolgens status = “open”
anders status = “gesloten”
fi
rm printer.htm
if [$ status! = $ old_status]
Dan wget –Quiet –Http-user = $ t_user \
–HTTp-passwd = $ t_passwd –keep-sessie-cookies \
–Post-data = ”user = twitter_ususname & text = bericht” \
fi
Slaap 1
gedaan
Als alternatief kunt u enkele bewakingssoftware gebruiken, zoals de uitstekende Freenats om u te waarschuwen wanneer er iets gebeurt.
Conclusie – Nou, ik hoop dat je blij bent met wat ik heb gedaan, je moet toegeven dat het thuisautomatisering is
goedkoop en heel gemakkelijk om te doen. Proost – Dan
Handige links
CPAN – alle dingen perl
Perl – veel meer dingen perl
Wget – wget applicatie
EDIMAX – Aanbieders van de printserver Andere / Misc
Twitter – Sociale netwerksite met sms
Dit korte artikel gereproduceerd uit het origineel door vriendelijke toestemming van Dan McGrath van yourmissus.com
Meer willen? – Volg ons op Twitter, zoals wij op Facebook, of abonneer u op onze RSS -feed. U kunt deze nieuwsverhalen zelfs via e -mail laten bezorgen, rechtstreeks naar uw inbox elke dag
Deel dit:
Facebook
Twitter
Reddit
LinkedIn
Pinterest
E -mail
Meer
Whatsapp
Afdrukken
Skype
Tumblr
Telegram
Zak