Arduino fristående web aktiverat bell



inspirerad av detta inlägg, jag ville skapa en Arduino powered bell som var helt fristående.

Med lite PHP och (om du vill) vissa jQuery på någon webbplats, kan du göra denna klocka ring när en viss åtgärd utförs.

Denna Arduino stack är wifi; När den är konfigurerad, kan du helt enkelt driva den från en 9v DC försörjning. Det fungerar även när drivs via USB-kontakten med en standard USB-laddare; Jag har testat det med en Amazon laddare avsedd för Kindle som fungerar bra.

Jag använde:

En Ardunio Uno från eBay, om £18
En WiFly sköld av Sparkfun, från eBay, om £23 (som var billigt, de är normalt mer än så). Om du köper en, Observera att du måste löda vissa header pins på styrelsen.
A projekt styrelse (som är den plast blad allt fixas till) från den lysande Oomlaut
Vissa hoppare ledningar
En lång cat5 kabel, att placera servo och bell en bra bit från kontrollstyrelsen
En standard Acoms servo från eBay (ca £5)
En 9v strömförsörjning från Maplin (£10)
En liten mässing klocka (från min inlaws, utan kostnad!)

Detta kan naturligtvis göras med en Ethernet-shield eller en ethernet aktiverade Arduino; skissen skulle vara lite annorlunda i detta fall.

Klockan är ansluten till servo med ett gem; Detta innebär att vi inte behöver flytta servo arm mycket. Flexibiliteten i gemet orsakar klockan att ringa fint. Det innebär också sätta en klocka på kan hänga ordentligt, vilket det måste i detta fall.

För närvarande skissa är inte perfekt. Stacken tar några att starta ibland; det svarar inte alltid på förfrågningar.

Här är skissen. Observera att min setup inte kräver inställningen för IP-adressdetaljer; Jag programmerade min router för att tilldela alltid samma IP adress av DHCP.

webserver skiss
baserat på Zoomkat koden från Arduino forum

#include "WiFly.h"
#include "Servo.h"
#include "SPI.h"

Servo myservo; skapa objekt för att styra en servo servo
Server server(80); Serverport
Sträng readString; skapa readString klass

//////////////////////

void setup() {

pinMode (2, utgång); PIN valt att styra
myservo.attach(2); PIN-koden för servo kontroll
myservo.write(0); Ange inledande servo position om så önskas

Aktivera seriella print
Serial.BEGIN(9600);
Serial.println("Started");

SpiSerial.begin();

avsluta CMD läge om inte redan har gjort
SpiSerial.println("");
SpiSerial.println("exit");
Serial.println ("lämnat CMD mode");
Delay(1000);

sätta i CMD läge
SpiSerial.print("$$$");
Serial.println ("in i CMD mode");
Delay(1000);

Aktivera DHCP
SpiSerial.println "set ip dhcp (1");
Serial.println ("ange DHCP");
Delay(1000);

tillstånd att fastställa
SpiSerial.println ("Ange w en 1");
Serial.println ("Set godkännande nivå").
Delay(1000);

Ange lösenfrasen
SpiSerial.println ("Ange WLAN-nyckel [Ange din WLAN nyckel här, ingen parentes]");
Serial.println ("Ange WLAN-key");
Delay(1000);

Ange lokal port
SpiSerial.println set ("jag l 80");
Serial.println ("Set port");
Delay(1000);

Inaktivera * Hej * standardmeddelandet på Anslut
SpiSerial.println ("set comm remote 0");
Serial.println ("Set comm remote 0");
Delay(1000);

gå med wifi-nätverk
SpiSerial.println ("join [Ange SSID här, ingen parentes]");
Serial.println ("Join nät").
Delay(2000);

avsluta CMD
SpiSerial.println("exit");
Serial.println ("spännande SpiSerial");
Delay(3000);

Serial.println ("Starta server");
Server.BEGIN();

}

void loop() {
Skapa en klientanslutning
Klienten klienten = server.available();
om (klient) {
Serial.println ("klient ansluten");
samtidigt (client.connected()) {
om (client.available()) {
char c = client.read();
Läs röding av char HTTP-begäran
om (readString.length() < 100) {
lagra tecken till sträng
readString += c;
}
om HTTP-begäran har avslutats
om (c == "\n") {
Serial.println ("HTTP request slutade");
Serial.Print ("readString =");
Serial.println(readString); skriva ut till seriell monitor för felsökning

nu produktionen HTML-data huvud
client.println ("HTTP/1.1 200 OK"); Skicka ny sida
client.println ("Content-Type: text/html");
client.println();
client.println("");
client.println("");
client.println("");
client.println("");
client.println("");
client.println("OK");
client.println("");
client.println("");

Delay(1);
stoppa klienten
client.stop();

Serial.println ("stoppad klienten");

kontroll arduino pin

IF(readString.indexOf("w") > 0) //checks för w
{
Serial.println ("w hittade");
myservo.write(40);
Delay(200);
myservo.write(0);
Delay(1000);
myservo.write(40);
Delay(200);
myservo.write(0);
}

IF(readString.indexOf("b") > 0) //checks för b
{
Serial.println "b hittade".
myservo.write(40);
Delay(200);
myservo.write(0);
}

Rensa sträng för nästa Läs
readString = "";
Serial.println ("Cleared readString");

} / / end om HTTP-förfrågan avslutas
} / / end om klienten tillgänglig
} / / end om klienten är ansluten
} / / end om klienten
} / / end loop

Jag använder stift 2 för servo kontroll; Du kan använda någon pin men vara försiktig med att använda några stift som används för något annat på WiFly, Ethernet eller andra sköld som du kan använda.

Testa inställningarna genom att ansluta USB-kabeln till datorn (utan servo ansluten, om du inte är säker på att det brukar blåsa USB säkring i din maskin - det fungerar OK för mig men inte alla datorer har förmågan att driva en server) och börja seriell bildskärmen för att kontrollera din stack ansluter till det trådlösa nätverket och registrerar klientanslutningar.

Om den gör det, ansluta den till en strömkälla och ansluta till servern.

Du kan utlösa klockan genom att ange IP-adress i en webbläsare som denna (där xx.xx.xx.xx ersättas med IP-adressen till stacken):

http://xx.xx.xx.xx/?b
(ringer klockan en gång)

eller

http://xx.xx.xx.xx/?w
(ringer klockan två gånger)

Om du anger adressen med ingenting efter IP-adressen, ringer stacken inte klockan.

Ställ in klockan ringa när särskilda sidor nås på en webbplats, behöver du lite PHP och jQuery färdigheter. Här är vad jag gjorde:

1) vidarebefordrade port 80 på min router till privata IP Arduino stack på min interna nätverk

2) skapade en php-fil som heter ding.php

$ch=curl_init();
curl_setopt ($ch, CURLOPT_URL, "http: / / [min WAN IP-adress] /? w');
curl_setopt($CH,CURLOPT_CONNECTTIMEOUT,5);
ob_start();
curl_exec ($ch);
ob_end_clean();
curl_close($CH);
? >

3) kallas den här filen med hjälp av jQuery på sidan jag övervakning:

$.get("ding.php");

(Du kommer behöva lägga jQuery till din sida också).

Göra det på detta sätt innebär ingen upptäcker din WAN IP-adress. Inte det viktiga, men fortfarande, vissa människor gillar för att hålla deras tyst!

Min setup kan nås på följande URL. Om du klickar på den, ska du ringa en liten mässing klocka i min julgran! Sidan kommer inte Visa något, men klockan ringer. Ta en titt på videon för att se vad som händer när du gör.

http://Ding.net84.net/Ding.php

Video:

Relaterade Ämnen

Fristående Arduino stoppur - SainSmart LCD knappsatsen sköld

så, för min första Instructable, jag kommer också dela med mig mitt första projekt: en fristående Arduino tidtagarur.Jag måste erkänna att detta inte var helt skapad av mig. Jag tog idén om en annan stoppur där du läsa info om den seriella porten och...

$2 Arduino. ATMEGA328 som en fristående. Lätt, Billigt och mycket små. En komplett guide.

I detta instructable du lära dig att använda Arduino ATMEGA328 mikrokontroller chip som en fristående mikrokontroller.De kan kostar endast 2 dollar, göra samma sak som din Arduino och göra dina projekt extremt liten.Vi kommer att täcka pin layout, hu...

Fristående WiFi Radio Control Panel (Arduino Powered)

jag ville ha en Internet-Radio för en lång tid, och var mycket glad över att hitta Tinkernut's Wifi-radion projekt (http://tinkernut.com/archives/2387 ), som jag byggt och har haft i några månader.Men brydde jag mig verkligen för Ario baserad kontrol...

Fristående 16-siffrig display - Arduino & Attiny85

någonsin ville ha en 7-segment display för runt huset? Här är din chans att göra en!Det kan även vara interaktiva baserat på programmering.Delar:($7,60) 16-siffriga TM1640 baserat uppvisningDealExtreme.com SKU: 104311http://www.DealExtreme.com/p/jy-M...

ESP8266 (fristående) väderstation med hjälp av Arduino IDE och GadgetKeeper moln plattform

Detta är en uppgradering av mitt tidigare projekt GadgetKeeper-väderstation. I detta projekt bygger jag samma funktioner men bara använder ESP8266 WiFi SoC fristående med DHT11 temperatur och luftfuktighet sensor. I det tidigare projektet använde jag...

WT588D fristående / Arduino ljud spelare

Denna tutorial är för WTD588D-du kan användas i fristående lägeI detta instructable jag visar dig de nödvändiga verktygen och steg för att ladda några ljudfiler och har dem spela på tryckning.Perfekt för att testa modulen innan den läggs till din Ard...

Fristående Arduino höjdmätare

Här är en fristående höjdmätare arbetar med Arduino som du kan använda i RC projekt, vandring, bilar... där du vill att :)Det visar på första skärmen altittude, temperatur & lufttrycket, och i andra, den lägsta / högsta höjd uppnåtts.Delar som behövs...

ESP 8266 fristående WiFI Relay kontroll [ytUt]

SYFTETAtt styra en reläutgång med esp8266 i fristående läge (utan arduino, pic eller någon annan mikro-controller) via Web-UIESP sänder sina egna SSID. Det ansluta inte till en router. lokala IP-adressen för esp är 192.168.4.1Steg 1: Samla hårdvaraES...

Fristående Intelligent sensorsystem

Fristående Intelligent Sensor (SIS) är en billig bygg-det-själv system som bearbetar information från en mängd olika passiva trådlösa sensorer för att skapa en tidsstämplad logg med meningsfulla uppgifter och slutsatser om en persons hemmet aktivitet...

En fristående Data logga vindmätaren

jag älskar samla in och analysera uppgifter. Jag älskar också bygga elektroniska prylar. Ett år sedan när jag upptäckte de Arduino produkterna, jag omedelbart tänkte, "Jag vill samla in miljödata." Det var en blåsig dag i Portland, OR, så jag be...

Fristående 7 x 7 x 7 ledde kub

LED kuber är sann 3D-skärmar som arbetar med belysning upp punkter i ett 3D galler av lysdioder.På 3D-visningen kan du producera vissa verkligen fascinerande animeringar. Detta Instructable kommer att gå igenom hur du skapar en LED cube själv som är...

Bygg lätt fristående hylla för källaren eller garaget

Flytta in i ett nytt hus, behöver vi en hel del hyllor att lagra saker. Vi har inte en färdig källare, och vi har inte listat ut hur det skulle vara klar ännu, så vi behöver vissa fristående hyllor etc som inte är kopplade till väggen, och har också...

Fristående cykel Rack/bokhylla

Min fru och jag har två väg cyklar, och inget garage i vår lilla stadslägenhet, så jag har funderat på det bästa sättet att lagra dem inne. Eftersom vi vill få våra deposition tillbaka i slutet av vår leasing, vi är försiktiga med att sätta krokar i...

Fristående arbetsbänk med makt!

Jag behövde en arbetsbänk. Vilket är en enkel process av köpa trä, såga i trä, bygga bänk, Lägg till röran. Tyvärr för mig är min nuvarande situation mycket mer komplicerat. Jag använder källaren som en tillfällig arbetsyta tills jag får några helger...

Fristående inomhus Rock klättring vägg för $150

jag har nyligen fått in bergsklättring och medan pull-up barer och hangboards är trevlig, jag verkligen har velat ha en mer realistisk utbildning rutin. Medan jag ville bygga min egen klättervägg, trodde inte jag att min hyresvärd skulle vara alltför...

Fristående Whiteboard

det finns ett gäng riktigt fina DIY whiteboard mönster på Instructables, och jag trodde en fin komplimang att dem skulle vara en enkel, billig, fristående whiteboard som kan göras med lätt-tillgängligt material. Särskilt för home schoolers, små studi...

Impianto fotovoltaico fristående (fristående fotovoltaic växt)

ciao en tutti, vi mostro come realizzare un impianto fotovoltaico fristående, cioè icke collegato alla rete nazionale, è ideale per applicazioni i luoghi remoti duva non è possibile allacciarsi alla rete elettrica.Il costo totale dell'impianto fai da...

Fristående WAV musikspelaren

music player beskrivs är en fristående spelare som spelar WAV filer från ett microSD-kort på room fylla volym. Detta är min första instructable, förhoppningsvis blir det lätt att följa.ATTINY mikrokontroller producerar en PWM-utgång (pulse width modu...

Outrigger kanot med fristående mast

en segelbåt byggd av luan plywood, glasfiber, epoxi och en liten mahogny. Mestadels plywood men. Det är en UTRIGGARE canoe modelleras ungefär efter en proa, men med en mer västerländsk stil skrovkonstruktion och segla. Jag tror det tog ungefär 200 ma...