Notifying Doobell with PushingBox - error uploading to board

Hello All,

Wondering if anyone can help me please?

I’ve been making this project: http://makezine.com/projects/notifying-doorbell-with-pushingbox/
I’ve stumbled across various issues (I’m a complete beginner), however the one thing I can’t solve is the code to upload to my Arduino Uno.

I use the one on PushingBox which is as follows:

////
//
// General code from http://www.pushingbox.com for Arduino + Ethernet Shield (official) v1.2
//
////

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

/////////////////
// MODIFY HERE //
/////////////////
byte mac = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x19 }; // Be sure this address is unique in your network

//Your secret DevID from PushingBox.com. You can use multiple DevID on multiple Pin if you want
char DEVID1 = “Your_DevID_Here”; //Scenario : “The mailbox is open”

//Numeric Pin where you connect your switch
uint8_t pinDevid1 = 3; // Example : the mailbox switch is connect to the Pin 3

// Debug mode
boolean DEBUG = true;
//////////////
// End //
//////////////

char serverName = “api.pushingbox.com”;
boolean pinDevid1State = false; // Save the last state of the Pin for DEVID1
boolean lastConnected = false; // State of the connection last time through the main loop

// 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() {
Serial.begin(9600);
pinMode(pinDevid1, INPUT);

// 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:
while(true);
}
else{
Serial.println(“Ethernet ready”);
// print the Ethernet board/shield’s IP address:
Serial.print("My IP address: ");
Serial.println(Ethernet.localIP());
}
// give the Ethernet shield a second to initialize:
delay(1000);
}

void loop()
{
////
// Listening for the pinDevid1 state
////
if (digitalRead(pinDevid1) == HIGH && pinDevid1State == false) // switch on pinDevid1 is ON
{
if(DEBUG){Serial.println(“pinDevid1 is HIGH”);}
pinDevid1State = true;
//Sending request to PushingBox when the pin is HIGHT
sendToPushingBox(DEVID1);
}
if (digitalRead(pinDevid1) == LOW && pinDevid1State == true) // switch on pinDevid1 is OFF
{
if(DEBUG){Serial.println(“pinDevid1 is LOW”);}
pinDevid1State = false;
//Sending request to PushingBox when the pin is LOW
//sendToPushingBox(DEVID1); //Here you can run an other scenario by creating a DEVID2 variable
}

//DEBUG part
// this write the respons from PushingBox Server.
// You should see a “200 OK”
if (client.available()) {
char c = client.read();
if(DEBUG){Serial.print(c);}
}

// if there’s no net connection, but there was one last time
// through the loop, then stop the client:
if (!client.connected() && lastConnected) {
if(DEBUG){Serial.println();}
if(DEBUG){Serial.println(“disconnecting.”);}
client.stop();
}
lastConnected = client.connected();
}

//Function for sending the request to PushingBox
void sendToPushingBox(char devid){
client.stop();
if(DEBUG){Serial.println(“connecting…”);}

if (client.connect(serverName, 80)) {
if(DEBUG){Serial.println(“connected”);}

if(DEBUG){Serial.println(“sendind request”);}
client.print(“GET /pushingbox?devid=”);
client.print(devid);
client.println(" HTTP/1.1");
client.print("Host: ");
client.println(serverName);
client.println(“User-Agent: Arduino”);
client.println();
}
else {
if(DEBUG){Serial.println(“connection failed”);}
}
}

Obviously I replace my device ID with my actual ID near the top. The code compiles OK but then it just will not load onto my Uno and this is the error message I get:

avrdude: ser_open(): can’t open device “\.\COM1”: The system cannot find the file specified.

Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

I’ve searched the forum and alhough there are posts to do with this project nobody seems to be having the same issue as me. I’ve checked that all the wires for the bell to the Arduino are in the correct places and I don;t know what else to try.

Would very much appreciate any suggestions - thanks!

Please edit you post and use the code button to make your code

look like this so it is easy to read and copy to a text editor.

The error

avrdude: ser_open(): can’t open device “\.\COM1”: The system cannot find the file specified.

has nothing to do with your code. It just means you have not correctly told the IDE which serial port your Arduino is connected to.

…R

Sorry - here is the code!

////
//
// General code from http://www.pushingbox.com for Arduino + Ethernet Shield (official) v1.2
//
////

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

  /////////////////
 // MODIFY HERE //
/////////////////
byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x19 };   // Be sure this address is unique in your network

//Your secret DevID from PushingBox.com. You can use multiple DevID  on multiple Pin if you want
char DEVID1[] = "Your_DevID_Here";        //Scenario : "The mailbox is open"

//Numeric Pin where you connect your switch
uint8_t pinDevid1 = 3; // Example : the mailbox switch is connect to the Pin 3

// Debug mode
boolean DEBUG = true;
  //////////////
 //   End    //
//////////////


char serverName[] = "api.pushingbox.com";
boolean pinDevid1State = false;                // Save the last state of the Pin for DEVID1
boolean lastConnected = false;                 // State of the connection last time through the main loop


// 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() {
  Serial.begin(9600);
  pinMode(pinDevid1, INPUT);
  
  // 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:
    while(true);
  }
  else{
    Serial.println("Ethernet ready");
    // print the Ethernet board/shield's IP address:
    Serial.print("My IP address: ");
    Serial.println(Ethernet.localIP());
  }
  // give the Ethernet shield a second to initialize:
  delay(1000);
}

void loop()
{
      ////
      // Listening for the pinDevid1 state
      ////
      if (digitalRead(pinDevid1) == HIGH && pinDevid1State == false) // switch on pinDevid1 is ON 
      {
        if(DEBUG){Serial.println("pinDevid1 is HIGH");}
        pinDevid1State = true;
        //Sending request to PushingBox when the pin is HIGHT
        sendToPushingBox(DEVID1);
      }
       if (digitalRead(pinDevid1) == LOW && pinDevid1State == true) // switch on pinDevid1 is OFF
      {
        if(DEBUG){Serial.println("pinDevid1 is LOW");}
        pinDevid1State = false;
        //Sending request to PushingBox when the pin is LOW
        //sendToPushingBox(DEVID1);    //Here you can run an other scenario by creating a DEVID2 variable
      }
      
      
      //DEBUG part
      // this write the respons from PushingBox Server.
      // You should see a "200 OK"
      if (client.available()) {
        char c = client.read();
        if(DEBUG){Serial.print(c);}
      }
      
      // if there's no net connection, but there was one last time
      // through the loop, then stop the client:
      if (!client.connected() && lastConnected) {
        if(DEBUG){Serial.println();}
        if(DEBUG){Serial.println("disconnecting.");}
        client.stop();
      }
      lastConnected = client.connected();
}


//Function for sending the request to PushingBox
void sendToPushingBox(char devid[]){
  client.stop();
  if(DEBUG){Serial.println("connecting...");}

  if (client.connect(serverName, 80)) {
    if(DEBUG){Serial.println("connected");}

    if(DEBUG){Serial.println("sendind request");}
    client.print("GET /pushingbox?devid=");
    client.print(devid);
    client.println(" HTTP/1.1");
    client.print("Host: ");
    client.println(serverName);
    client.println("User-Agent: Arduino");
    client.println();
  } 
  else {
    if(DEBUG){Serial.println("connection failed");}
  }
}

Oh OK so the code is fine then? Well that’s good, I will try and play with my connection settings instead, thanks!

Thanks Robin2.

I have corrected the port issue and uploaded the code. Although nothing happens when I press the bell - that's the next issue to overcome!

madrats31:
Although nothing happens when I press the bell - that's the next issue to overcome!

As you have now discovered I did not say (as you may have assumed) "the code is fine"

If you can't solve the problem post again telling us what it is supposed to do and what it actually does. And if you make changes be sure to post your latest code.

...R