Avec un peu PHP et (si vous le souhaitez) certains jQuery sur n’importe quel site Web, vous pouvez faire cette cloche chaque fois qu’une action spécifique est effectuée.
Cette pile de l’Arduino est wifi ; une fois qu’elle est configurée, vous pouvez simplement l’alimenter de l’alimentation DC 9v. Ça marche aussi lorsqu’il est alimenté par le connecteur USB à l’aide d’un chargeur USB standard ; Je l’ai testé avec un chargeur de Amazon, conçu pour le Kindle qui fonctionne très bien.
J’ai utilisé :
Un Ardunio Uno d’eBay, environ £18
Un bouclier de WiFly par Sparkfun, d’eBay, environ £23 (qui n’était pas cher, ils sont normalement plus que ça). Si vous en achetez un, Notez que vous aurez besoin de souder certaines broches d’en-tête sur la planche.
A Conseil d’administration (c’est la feuille de plastique tout est fixé à) du projet de brillante Oomlaut
Certains fils de raccordement
Une longueur de câble cat5, sur la position du servo et la cloche une bonne distance de la Commission de contrôle
Un servo standard de Acoms d’eBay (environ £5)
Un bloc d’alimentation 9v de Maplin (£10)
Une petite cloche en laiton (à partir de mes beaux-parents, sans frais!)
C’était évidemment possible d’un bouclier ethernet ou ethernet compatible Arduino ; l’esquisse serait dans ce cas un peu différente.
La cloche est reliée à l’asservissement à l’aide d’un trombone ; Cela signifie que nous n’avons pas de déplacer le servo arm beaucoup. La flexibilité de la trombone provoque la cloche sonne bien. Cela signifie aussi que la cloche peut accrocher correctement, qu’elle doit dans ce cas.
À l’heure actuelle, l’esquisse n’est pas parfait. La pile prend quelques re-démarrage parfois ; Il n’est pas toujours répondre aux requêtes.
Voici l’esquisse. Notez que mon installation ne requiert pas le paramètre d’informations d’adresse IP ; J’ai programmé mon routeur d’attribuer toujours la même adresse IP par DHCP.
croquis de serveur Web #include « WiFly.h » Servo myservo ; Créez l’objet servo pour contrôler un servo ////////////////////// void setup() {} pinMode (sortie 2) ; NIP sélectionné au contrôle activer l’impression de données série SpiSerial.begin() ; Allumez le DHCP Définissez le niveau d’autorisation jeu de mot de passe rejoindre le réseau wifi Sortez du mode CMD } void loop() {}
basé sur le code de Zoomkat des forums Arduino
#include « Servo.h »
#include « SPI.h »
Serveur server(80) ; port du serveur
Dim readString ; créer la classe readString
myservo.Attach(2) ; le code pin de la servocommande
myservo.Write(0) ; définir la position initiale servo si vous le souhaitez
Serial.Begin(9600) ;
Serial.println("Started") ;
sortir du mode CMD si pas déjà fait
SpiSerial.println("") ;
SpiSerial.println("exit") ;
Serial.println (« mode CMD est sorti ») ;
Delay(1000) ;
mettre en mode CMD
SpiSerial.print("$$$") ;
Serial.println ("mode dans CMD") ;
Delay(1000) ;
SpiSerial.println ("set ip dhcp 1") ;
Serial.println ("Set DHCP") ;
Delay(1000) ;
SpiSerial.println ("set w 1") ;
Serial.println ("autorisation Set level") ;
Delay(1000) ;
SpiSerial.println (« clé wlan set [Entrez votre clé WLAN ici, aucun supports] ") ;
Serial.println ("clé WLAN Set") ;
Delay(1000) ;
localport Set
SpiSerial.println ("J’ai mis l 80") ;
Serial.println ("Set port") ;
Delay(1000) ;
désactiver * Bonjour * message par défaut sur connect
SpiSerial.println ("set comm distant 0") ;
Serial.println ("Set comm distant 0") ;
Delay(1000) ;
SpiSerial.println ("join [Entrez votre SSID ici, aucun supports]") ;
Serial.println (« rejoindre le réseau") ;
Delay(2000) ;
SpiSerial.println("exit") ;
Serial.println ("SpiSerial en douceur") ;
Delay(3000) ;
Serial.println ("serveur de départ") ;
Server.Begin() ;
Créer une connexion de client
Client client = server.available() ;
Si {(client)
Serial.println ("Client connecté") ;
tandis que (client.connected()) {}
Si (client.available()) {}
char c = client.read() ;
lire la requête HTTP char par char
Si {(readString.length() < 100)
stocker les caractères de la chaîne
readString += c ;
}
Si la requête HTTP est terminée
Si (c == « \n ») {}
Serial.println ("requête HTTP terminé") ;
Serial.Print ("readString =") ;
Serial.println(ReadString) ; imprimer à serial monitor pour le débogage
maintenant sortie HTML données d’en-têtes
client.println ("HTTP/1.1 200 OK") ; Envoyer cette page nouveau
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) ;
client de s’arrêter
client.Stop() ;
Serial.println ("client Stopped") ;
broche de commande arduino
if(ReadString.IndexOf("w") > 0) //checks pour w
{
Serial.println ("o trouvé") ;
myservo.Write(40) ;
Delay(200) ;
myservo.Write(0) ;
Delay(1000) ;
myservo.Write(40) ;
Delay(200) ;
myservo.Write(0) ;
}
if(ReadString.IndexOf("b") > 0) //checks pour b
{
Serial.println ("b trouvé") ;
myservo.Write(40) ;
Delay(200) ;
myservo.Write(0) ;
}
chaîne de compensation pour la prochaine lecture
readString = "" ;
Serial.println ("Cleared readString") ;
} / / fin si la requête HTTP est terminée
} / / fin si client disponible
} / / fin si le client s’est connecté
} / / fin si client
} / / fin de boucle
J’utilise broche 2 pour la servocommande ; vous pouvez utiliser n’importe quel code pin mais veillez à ne pas utiliser des broches qui sont utilisés pour autre chose sur le WiFly, Ethernet ou tout autre blindage, que vous pourriez utiliser.
Testez la configuration en connectant le câble USB à votre machine (sans que le servo connecté, à moins que vous ne savez pas il l’habitude de souffler le USB fusible dans votre machine - il fonctionne OK pour moi mais pas tous les ordinateurs ont la capacité d’un serveur de puissance) et lancez le moniteur série pour vérifier votre pile se connecte au réseau sans fil et enregistre les connexions clientes.
Dans l’affirmative, connectez-le à une alimentation électrique et vous connecter au serveur.
Vous pouvez déclencher la cloche en entrant l’adresse IP dans un navigateur comme ceci (où xx.xx.xx.xx est remplacé par l’adresse IP de la pile) :
http://XX.xx.xx.XX/?b
(sonne à la fois)
ou
http://XX.xx.xx.xx/?w
(sonne la cloche deux fois)
Si vous entrez l’adresse sans rien après l’adresse IP, la pile ne sera pas sonner la cloche.
Pour définir la cloche sonne lorsque des pages spécifiques sont accessibles sur un site Web, vous avez besoin de certaines compétences PHP et jQuery. Voici ce que j’ai fait :
1) transmis le port 80 sur mon routeur pour l’IP privé de la pile de l’Arduino sur mon réseau interne
2) a créé un fichier php appelé ding.php
$ch=curl_init() ;
curl_setopt ($ch, CURLOPT_URL, "http: / / [mon adresse IP WAN] /? w') ;
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5) ;
ob_start() ;
curl_exec ($ch) ;
ob_end_clean() ;
curl_close($ch) ;
? >
3) appelé ce fichier à l’aide de jQuery dans la page que je suis suivi :
$.get("ding.php") ;
(Vous devrez ajouter jQuery sur votre page trop).
Faire de cette façon signifie que personne détecte votre adresse IP WAN. Pas si important mais encore, certaines personnes aiment à garder leur calme !
Ma configuration est accessible à l’adresse suivante. Si vous cliquez dessus, vous allez sonner une petite cloche en laiton dans mon arbre de Noël ! La page ne s’affiche pas n’importe quoi, mais la sonnerie retentira. Jetez un oeil à la vidéo pour voir ce qui se passe quand vous le faites.
http://Ding.net84.net/Ding.php
Vidéo :