Remote controlled webcam met behulp van de Arduino, SensorMonkey, jQuery en Justin.tv (6 / 7 stap)

Stap 6: Extern beheren met behulp van jQuery UI Webcam


In het laatste deel van deze tutorial, I 'm gonna combineren de live streams van SensorMonkey en Justin.tv te creëren van een eenvoudige webpagina die kan worden gebruikt om op afstand controle van mijn webcam. Ik heb gedownload de nieuwste jQuery UI bibliotheek (1.8.21 op het moment van schrijven) en plaatste de Codex in dezelfde map als de webpagina (samen met de bijbehorende CSS en image bestanden voor mijn gekozen thema - UI lichtheid - zie screenshot). Moet u de onderstaande code bewerken en opslaan als 'Webcam.html':

(Belangrijk! U moet vervangen door YOUR_NAMESPACE en YOUR_PRIVATE_KEY in de volgende code die aan u zijn toegewezen wanneer u op SensorMonkey inlogt. U zult ook moeten YOUR_CHANNEL vervangen door de naam van je kanaal Justin.tv)

--------------------------------------------------------------------------------
<! Html DOCTYPE >
< html >
< head >
< titel > Remote controlled webcam met behulp van de Arduino, SensorMonkey, jQuery en Justin.tv < / title >
< link rel = "stylesheet" type = "text/css" href = "jquery-ui-1.8.21.custom.css" / >
< stijl type = "text/css" >
lichaam {}
padding: 10px;
}
#container {}
margin-bottom: 20px;
}
#webcam {}
float: links;
hoogte: 240px;
marge-rechts: 20px;
breedte: 320px;
}
#tilt-schuifregelaar {}
float: links;
hoogte: 240px;
marge-rechts: 10px;
}
tilt-display # {}
hoogte: 240px;
regelafstand: 240px;
}
#pan-schuifregelaar {}
margin-bottom: 10px;
breedte: 320px;
}
pan-display # {}
text-align: Midden;
breedte: 320px;
}
.Rotation {}
kleur: #F6931F;
font-weight: bold;
}
< / style >
< script type = ' text/javascript' src = "jquery-1.7.2.min.js" >< / script >
< script type = ' text/javascript' src = "jquery-ui-1.8.21.custom.min.js" >< / script >
< script type = ' text/javascript' src = "https://sensormonkey.eeng.nuim.ie/socket.io/socket.io.js" >< / script >
< script type = ' text/javascript' src = "https://sensormonkey.eeng.nuim.ie/js/client.min.js" >< / script >
< / head >
< body >
< div id = "container" >
< div id = "webcam" >
< Objecttype = "application/x-shockwave-flash" data = "http://www.justin.tv/widgets/live_embed_player.swf?channel=YOUR_CHANNEL"id = "live_embed_player_flash" height = "240" width = "320" bgcolor = "#000000" >
< param name = "allowFullScreen" value = "true" / >
< param name = "allowScriptAccess" value = "always" / >
< param name = "allowNetworking" value = "all" / >
< param name = "film" value = "http://www.justin.tv/widgets/live_embed_player.swf" / >
< param name = "flashvars" value = "hostname = www.justin.tv & kanaal =YOUR_CHANNEL& auto_play = true & start_volume = 25" / >
< / object >
< / div >
< div id = "tilt-slider" >< / div >
< div id = "tilt-display" > kantelen: < span klasse "rotation" = > 96 < / span >< / div >
< / div >
< div id = "pan-slider" >< / div >
< div id = "pan-display" > Pan: < span klasse "rotation" = > 96 < / span >< / div >
< script type = "text/javascript" >
Een geheel getal (of een tekenreeksweergave van een) omgezet in een hexadecimaal teken (0-9A-F).
functie toHex (i) {}
keren parseInt (i) .toString (16) de .toUpperCase();
}

$(function {}
Tilt slider maken
$("#tilt-slider") .slider ({}
bereik: "min",
geaardheid: "vertical",
waarde: 8,
min: 0,
Max: 15,
stap: 1,
dia: function (gebeurtenis, ui) {}
UI update.
$("#tilt-display .rotation") .html (180 * ui.value / 15);

Berekenen gecombineerd pan/tilt rotatiehoeken en verzenden van de stream Uitgever
Als een hexadecimaal teken paar. Pan is hoog 4 bits; Tilt is lage 4 bits. Door
voorvoegsel met '#', vertellen we SensorMonkey te interpreteren als binaire gegevens.
var pan = toHex ($("#pan-slider") .slider ("waarde"));
var tilt = toHex (ui.value);
client.deliverToStreamPublisher ("/ private/mijn Webcam", "#" + pan tilt);
}
} );

Pan slider maken
$("#pan-slider") .slider ({}
bereik: "min",
waarde: 8,
min: 0,
Max: 15,
stap: 1,
dia: function (gebeurtenis, ui) {}
UI update.
$("pan-display # .rotation") .html (180 * ui.value / 15);

Berekenen gecombineerd pan/tilt rotatiehoeken en verzenden van de stream Uitgever
Als een hexadecimaal teken paar. Pan is hoog 4 bits; Tilt is lage 4 bits. Door
voorvoegsel met '#', vertellen we SensorMonkey te interpreteren als binaire gegevens.
var pan = toHex (ui.value);
var tilt = toHex ($("#tilt-slider") .slider ("waarde"));
client.deliverToStreamPublisher ("/ private/mijn Webcam", "#" + pan tilt);
}
} );

// 1. Verbinden met SensorMonkey
// 2. Lid worden van de naamruimte
// 3. Abonneer je op stroom

var client = nieuwe SensorMonkey.Client ("https://sensormonkey.eeng.nuim.ie");
client.on ("verbinden", function {}
client.joinNamespace ("YOUR_NAMESPACE", "YOUR_PRIVATE_KEY", functie (e) {}
Als (e) {}
alert ("Failed to join naamruimte:" + e);
terugkeer;
}

client.subscribeToStream ("/ private/mijn Webcam", functioneren (e) {}
Als (e) {}
alert ("abonneren op stream mislukt:" + e);
terugkeer;
}
} );
} );

client.on ("verbinding verbreken", function {}
alert ("Client is verbroken!");
} );
} );
} );
< / script >
< / body >
< / html >
--------------------------------------------------------------------------------

De code in het < object >< / object > tags wordt gebruikt om de live stream van de Justin.tv in de webpagina insluiten. U moet vervangen door de YOUR_CHANNEL in de code tussen deze tags met de naam van je kanaal. De gegevensstroom niet weergegeven op iOS-apparaten (iPhone, iPad enz) maar werkt op Android smartphones en tablets, zoals in de foto's.

Ik gebruik van jQuery UI om een horizontale pan-schuif en een verticale tilt schuifregelaar om te bepalen van de richting van de webcam te maken. Wanneer een van de schuifregelaars wordt verplaatst naar een nieuwe positie, de code berekent een gecombineerde pan/tilt-rotatie, worden gecodeerd als een hexadecimaal teken paar (zoals beschreven in stap 2 en stap 4) en stuurt het via SensorMonkey naar de Arduino beheersing van de servomotoren.

Tot slot, de workflow voor het verbinden van SensorMonkey is zeer eenvoudig (Vergeet niet ter vervanging van YOUR_NAMESPACE en YOUR_PRIVATE_KEY in de code hierboven):

-Import client
-Sluit aan op SensorMonkey
-Lid van de naamruimte
-Abonneren op stroom

Eenmaal geabonneerd, kan ik gewoon bellen client.deliverToStreamPublisher() om gegevens te verzenden direct aan de Arduino via de SensorMonkey service.

Thats it! Ik kan nu mijn webcam in real-time met behulp van een combinatie van Arduino, SensorMonkey, jQuery en Justin.tv op afstand beheren. Ik kan uploaden van de webpagina naar een publieke webserver en het toegang tot van overal op elk apparaat met een HTML5/Flash compatibele web-browser. Zie de volgende stap voor suggesties over de verbetering van de uitvoering beschreven tot nu toe.

Gerelateerde Artikelen

Rijden van een webpagina in realtime met behulp van de Arduino, SensorMonkey en Processing.js

Rijden van een webpagina in realtime met behulp van de Arduino, SensorMonkey en Processing.js

externe visualisatie van real-time sensorgegevens.Deze tutorial beschrijft in detail hoe u met de gratis SensorMonkey -service push realtime sensor data van een Arduino naar een webpagina voor visualisatie met behulp van Processing.js. Geen server-si
Remote Controlled LED met behulp van HC-05 Bluetooth Arduino en mobiele telefoon App

Remote Controlled LED met behulp van HC-05 Bluetooth Arduino en mobiele telefoon App

Technologie vordert in razend tempo, iedereen van ons heeft slimme telefoons nu-een-dag, er zijn cool apps die laten we blijven in contact met onze vrienden en familie, krijgen van de meest recente informatie over het weer of verblijf-bijgewerkt met
Remote Controlled Robot met behulp van Arduino

Remote Controlled Robot met behulp van Arduino

L293D is een dual H-brug motor stuurprogramma geïntegreerde circuit (IC). Motor stuurprogramma's fungeren als huidige versterkers omdat zij een low-current-besturingselement signaal en een hogere-stroom signaal bieden. Deze hogere stroomsignaal wordt
Controle licht met behulp van de Arduino met Relais module AC

Controle licht met behulp van de Arduino met Relais module AC

Hallo vrienden! Ik ben Ostin, ik ll laten zien hoe u kunt besturen van een lichte AC met Arduino met behulp van Relais module. Het is een eenvoudig project en ook zeer gevaarlijk als we gaan om met hoogspanning 220v. Probeer niet bent u een amateur i
Remote Controlled LED met behulp van de mobiele telefoon en Internet

Remote Controlled LED met behulp van de mobiele telefoon en Internet

Eerder schreef ik een tutorial over het besturen van een LED met behulp van uw mobiele telefoon app, Arduino en HC-05 bluetooth-module. In de huidige tutorial die ik ga uit te breiden op eerdere one en deze tijd in plaats van bluetooth, we zullen wor
INFRA rood REMOTE CONTROLLED ROBOCAR met behulp van AVR (ATMEGA32) MCU

INFRA rood REMOTE CONTROLLED ROBOCAR met behulp van AVR (ATMEGA32) MCU

Het huidige PROJECT beschrijft een ontwerp en de implementatie van een infrarood (IR) externe gecontroleerde RoboCar die kan worden gebruikt voor verschillende geautomatiseerde onbemande control toepassingen. Externe gecontroleerde RoboCar (links-rec
Projector IR controle met behulp van de Arduino Uno

Projector IR controle met behulp van de Arduino Uno

Tijdens Halloween en Kerstmis, I-project video op een venster bij mijn huis. Het systeem maakt gebruik van een LED-projector die virtuele personages op een venster wordt weergegeven. Het effect maakt het verschijnen alsof het teken (s) echt in uw hui
Stem aan Arduino: Controle LEDs met behulp van spraakherkenning MIT

Stem aan Arduino: Controle LEDs met behulp van spraakherkenning MIT

Hallo, iedereen!!! Het is al enige tijd die ik niet had bijgewerkt mijn post hier. Vandaag wil ik delen met u kerels een experiment die ik heb gemaakt. I 'm gonna controle LEDs met behulp van spraakherkenning voor MIT app uitvinder. Oh voordat ik het
LED controle met behulp van de Arduino Bluetooth en Android. (Deel 1)

LED controle met behulp van de Arduino Bluetooth en Android. (Deel 1)

Dit instructable is een eenvoudige tutorial uitleggen hoe de controle van één LED met Android's Bluetooth.U moet:Arduino UNOWeerstanden 300Ω (3 x)Weerstand 150ΩLEDJumpers;Bluetooth-Module (HC-06/andere);Android telefoon;SPP Bluetooth Apk (unWired Lit
Grondbeginselen van het omzetten van uw externe controle voertuig in een autonoom systeem (Drone) met behulp van een Arduino

Grondbeginselen van het omzetten van uw externe controle voertuig in een autonoom systeem (Drone) met behulp van een Arduino

ik begon dit project met als doel goedkoop draaien mijn RC helikopter in iets van een UAV of althans te passen sommige sensoren aan het verminderen van aanvaringen en andere "mis haps."Nu helaas aan het begin van het project misrekend ik mijn kl
Seriële Servo Controller w/Arduino - controle tot 12 Servos tegelijk met behulp van de Arduino en een USB-verbinding

Seriële Servo Controller w/Arduino - controle tot 12 Servos tegelijk met behulp van de Arduino en een USB-verbinding

ik ga u laten zien hoe je Arduino gebruik maximaal 12 servo's tegelijk met minimale jitter control.  Met behulp van een eenvoudige seriële interface kunt u de positie van maximaal 12 servo kanalen.  Maximaal 10 momentopname posities kan worden opgesl
ESP8266 controle WS2812 Neopixel LEDs met behulp van de Arduino IDE - A Tutorial

ESP8266 controle WS2812 Neopixel LEDs met behulp van de Arduino IDE - A Tutorial

Hallo iedereen,Als u als me bent, hebt u zoekend rond het internet een goede tutorial over het gebruik van de ESP8266 met neopixel LEDs (AKA de WS2812 of WS2812b), geprogrammeerd via de Arduino IDE. Ik heb niet gevonden het allen in één plaats, in he
Domoticasysteem met behulp van de Arduino en SIM900 GSM module

Domoticasysteem met behulp van de Arduino en SIM900 GSM module

Hoi! Ik heb bijna klaar met mijn studie aan de Faculteit Ingenieurswetenschappen, ik moest een afstudeerproject maken als mijn gedachte was om een kaak-dropping ding te maken (ik weet dat is hilarisch: D) aan iedereen laten zien dat ik een goede prot
DIY | Ambilight met behulp van de Arduino Nano

DIY | Ambilight met behulp van de Arduino Nano

In dit Instructable zal ik onderwijzen u hoe kunt u uw eigen (b) ambilight voor onder $40!Houd in gedachten dat de Ambilight werkt alleen op een PC met de Bambilight software.U moet de volgende onderdelen:Individueel adresseerbare RGB LED-strip - bes