Go Down

Topic: Control devices over ethernet shield? (Read 3099 times) previous topic - next topic


I would like to switch on/off... a Mitsubishi projector with its own PJLINK protocol over ethernet (It uses 3452 port and the power command is "POWR 1" (http://pjlink.jbmia.or.jp/english/data/PJLink%20Specifications100.pdf).

Can I  send TCP/UDP commands with Arduino/Ethernet shield?
Have you some samples on comunnicate with devices over ethernet?
many thanks


Take a look at the UDPSendReceive sketch in the ethernet section of the IDE examples.


Downloading Adobe Reader (just did a fresh install of Windows)..

Any reason why you're not simply using your computer? why Arduino?


Sometimes I don't need the PC, and only use buttons to power on/off devices.
Many thanks


Here, thought i could use this myself for testing ethernet projects.....

I've attached the source code and exe file, i use Delphi 5, see no point in upgrading lol, everything i do is not really sophisticated but good for small utilities and tools, feel free to compile it yourself if you have Delphi it uses TClientSocket (comes with Delphi 4 - 7 i think)....

Hope someone finds it useful.. simply stick in the IP address and Port and connect via TCP IP and send whatever from the send button.



Code: [Select]

 Web client

This sketch connects to a website (http://www.google.com)
using an Arduino Wiznet Ethernet shield.

* Ethernet shield attached to pins 10, 11, 12, 13

created 18 Dec 2009
by David A. Mellis


#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server(173,194,33,104); // Google

// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;

void setup() {
 // start the serial library:
 // start the Ethernet connection:
 if (Ethernet.begin(mac) == 0) {
   Serial.println("Failed to configure Ethernet using DHCP");
   // no point in carrying on, so do nothing forevermore:
 // give the Ethernet shield a second to initialize:

 // if you get a connection, report back via serial:
 if (client.connect(server, 4325)) {  //projector port
   client.println("POWR 1"); //power up projector
 else {
   // kf you didn't get a connection to the server:
   Serial.println("connection failed");

void loop()

//none of this is really needed unless you need return data (either for security or otherwise or ack)

 // if there are incoming bytes available
 // from the server, read them and print them:
 if (client.available()) {
   char c = client.read();

 // if the server's disconnected, stop the client:
 if (!client.connected()) {

   // do nothing forevermore:


Below is some simple web server test code that controls arduino pin 5 and a servo

Code: [Select]

//zoomkat 4-1-12
//simple button GET for servo and pin 5
//for use with IDE 1.0
//open serial monitor to see what the arduino receives
//use the \ slash to escape the " in the html, or use ' instead of "
//address will look like when submited
//for use with W5100 based ethernet shields

#include <SPI.h>
#include <Ethernet.h>

#include <Servo.h>
Servo myservo;  // create servo object to control a servo

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 102 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(84); //server port

String readString;


void setup(){

  pinMode(5, OUTPUT); //pin selected to control
  //start Ethernet
  Ethernet.begin(mac, ip, gateway, subnet);

  myservo.write(90); //set initial servo position if desired
  myservo.attach(7);  //the pin for the servo control
  //enable serial data print
  Serial.println("server servo/pin 5 test 1.0"); // so I can keep track of what is loaded

void loop(){
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();

        //read char by char HTTP request
        if (readString.length() < 100) {

          //store characters to string
          readString += c;

        //if HTTP request has ended
        if (c == '\n') {

          Serial.println(readString); //print to serial monitor for debuging

          client.println("HTTP/1.1 200 OK"); //send new page
          client.println("Content-Type: text/html");

          client.println("<TITLE>Arduino GET test page</TITLE>");

          client.println("<H1>Zoomkat's simple Arduino button</H1>");
          client.println("<a href=\"/?on\"\">ON</a>");
          client.println("<a href=\"/?off\"\">OFF</a>");


          //stopping client

          ///////////////////// control arduino pin
          if(readString.indexOf("on") >0)//checks for on
            digitalWrite(5, HIGH);    // set pin 4 high
            Serial.println("Led On");
          if(readString.indexOf("off") >0)//checks for off
            digitalWrite(5, LOW);    // set pin 4 low
            Serial.println("Led Off");
          //clearing string for next read


Google forum search: Use Google Search box in upper right side of this page.
Why I like my 2005 Rio Yellow Honda S2000  https://www.youtube.com/watch?v=pWjMvrkUqX0


Thank you very much.
I am having an error in :

EthernetClient client;

IPAddress server(173,194,33,104); // Google
error: 'IPAddress' does not name a type

Do you know why?


Do you know why?

Because you are not using Arduino 1.0?


Thank you.

I have another question about:

I am in a local network not Internet.
My device (projector) has IP:  port (4352)
Arduino IP: 192.168.200

I don't know where to put the projector IP in the code. I only want to send the command you know "POWR 1".

Thanks again

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131