Go Down

Topic: Control devices over ethernet shield? (Read 4906 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?
The art of getting good answers lies in asking good questions.


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