58

You shouldn't have any issues keeping it on all the time, however, some thing to consider is any counters you may have, like the use of millis(). From the Arduino docs on millis: This number will overflow (go back to zero), after approximately 50 days. So for projects that are on for long periods of time, you may not see an issue immediately but ...


33

A couple of things to keep in mind (outside of @Sachleen's mention of millis()): Like any electronics, heat can be disruptive. The micro-controller itself isn't likely going to be a huge issue from the perspective of heat, but other components like the power supply might cause issues. If your code uses EEPROM.write(), be aware that the EEPROM in your Uno'...


13

MCUs mounted on Arduinos don't have the horse power to handle https connections. Yún does handle https on the linux side, with software like curl, wget or python. Your sketch can just delegate the task to the linux side. While curl works fine, despite having python preinstalled, you need to manually install python-openssl, since it's not available out of ...


12

Keep in mind that the flash and EEPROM have limited lifetimes (about 10,000 and 100,000 write cycles respectively) so if you're doing a lot of writing to those, they may become corrupted. In a test I did, an external EEPROM took about 3 days to start becoming corrupted.


10

Running the Arduino 24/7 Shouldn't be a problem. But be sure that you have a case that allows for ventilation and you keep it in a well ventilated area. Just like computers, if you do not keep them in an environment that can keep them cool, they will not stay cool. Server load also should be a thing to consider, the more load there is on the server the ...


8

We've been running our Arduino-based RFID access system at Bloominglabs Hackerspace in Bloomington IN since late 2011 and aside from a couple power outages and software updates it runs around the clock, no problem. More recently we added a networked thermostat, same deal - it's running round the clock.


8

(Disclaimer: I'm actually the author of the evothings.com article) The Arduino UNO is more than capable at doing TLS. I've just finished up a blog post series on the topic. I have a working example of an Arduino UNO doing elliptic curve cryptography (sect163r2) to exchange an AES-128 key for continued communication. http://ardiri.com/blog/...


8

I did a lengthy post about RS485. First, your use of Megas seems an overkill, unless you already have them to hand. A Uno, or one of the smaller form-factor boards would seem to be perfectly adequate to monitor a few switches and turn on a couple of lights. Even the Rpi seems unnecessary. Another Uno could easily monitor your RS485 lines and connect via ...


6

I don't think it is possible due to the size and complexity of the SSL Library, because the Arduino would most likely be under powered. That being said you could make the requests to a regular server and use some sort of PHP script to proxy the request to the HTTPS server. Not sure how well it would work though. You may be interested into looking at this.


6

I list this as an answer for the sake of having it linked here. It is not full https yet but he is working on it and it may be doable in the future http://evothings.com/is-it-possible-to-secure-micro-controllers-used-within-iot/ here is a benchmark he did encrypting a message using a 1024 bit public key Arduino UNO 16Mhz AVR ==> ...


6

Arduinos can run without issues for a really long time, though depending on local conditions and the intensity of computation you may have to attach heat sinks. In addition, keep it well ventilated. It depends on the program being used, too, if your server is serving a page every now and then, it shouldn't be an issue, but if you expect constant traffic ...


6

You should be pretty safe, at least as long as your code handles the incoming data properly. When you upload a new sketch through USB, the USB-to-serial interface uses the Arduino pins TX0, RX0 and RESET. Your Ethernet shield, on the other hand, does not control the RESET pin. Pulling the RESET pin LOW is needed to make the processor enter the bootloader, ...


6

The String object created as return from IPAddress.toString() as parameter to constructor of NtpClient is temporary. It contains the char array returned by c_str(). NTPClient doesn't copy the string, only stores a reference to it. And the referenced string (char array) doesn't exist at the time the NTPClient wants to use it. class TestClass { public: ...


5

I2C does not automatically share resources between two connected devices. You would not be able to share an Internet connection from a Mega connected via I2C to another Mega which has an Ethernet shield. However, you could write code for both Megas that implements a two-way communication in which the non-shield Mega sends requests or commands to the one ...


5

You can upload to your Arduino board over Ethernet if you flash it with a special bootloader named Ariadne. You will need an Ethernet module or shield that uses the W5100, W5200, or W5500 Ethernet controller chip. You can not use the ENC28J60 Ethernet controller with Ariadne. You will need an ISP programmer to burn the Ariadne bootloader to your Arduino ...


4

I built a simple power monitor with my first Arduino. It is powered via USB from a web-server that in turn is powered via a quite substantial battery backup (which does not have notification abilities). It is also connected to a mobile phone charger plugged into a non-UPS power socket. So if the power dies the Arduino sends a message to a little program ...


4

I'd like to mention an issue that doesn't come up very often but can cause long term issues. Memory Leaks and Heap Fragmentation. Almost nobody mallocs in embedded stuff, but if you do, do it right.


4

I've never ran an Arduino for that long, but there shouldn't be a problem. One thing to watch out for is the input voltage. While an Arduino is capable of handling 7-20v as input anything over 12v can overheat after longer periods of time and cause board damage. As a quick recommendation to avoid any overheating of the Arduino I would keep the voltage as ...


4

The only issue that may create an incompatibility seems to be the IOREF pin next the 5V output pin which is extra on Revision 3 but not in Revision 2. However, I just had a look at the board schematics and the shield does not use IOREF. Pin 2 is extending IOREF So, the shield should work correctly with the Uno Revision 2. As far as the extra pins are ...


4

The ENC28J60 Shields have a Chip-Select-Pin (CS) so you could select between the two shields with this. I'm using the EN28j60 with the Ethercard library and I'm not sure if this could handle two Ethernet shields because you have to set the CS pin at init on the first call in the function, and can't change it at runtime.


4

Trying to capture analog video such as VGA and transmit it over Ethernet is going to be technically challenging, and of questionable wisdom (at least without compression). A conventional ATmega-based Arduino is just about the worst contemporary platform you could choose for this job - even aside from the VGA issue, it is a poor choice for Ethernet requiring ...


4

I think your problem is due to the MAC address that is being loading into the W5100. Try setting the 2 low order bits of the first byte to 0. These bits define whether the MAC address is unicast or multicast and whether it is private or universal. Some switches appear to block ARP requests if these bits are set incorrectly. I changed the first byte of ...


3

I would suggest your best bet would be to pass messages back and forth via JSON, via Get/Post http request. So to send data, you send a POST request (to the PHP server) with your data in JSON in the content. To get instructions, you send a GET request to the PHP server and get a contents field with JSON in it.


3

A MAC address must be unique throughout the environment in which it operates, but apart from that is largely arbitrary. Typically the problem is solved by selling 3-octet prefixes (called OUI's) to manufacturers, who then uniquely assign the remaining 3 octets to individual device units they manufacturer. However, if you are unable to discovery a globally ...


3

Using String, which uses dynamic allocation/deallocation on the heap is not advised in embedded platforms, as this can quickly lead to heap fragmentation, eventually leading to memory exhaustion, heap/stack collision... First off, you should try to replace all String usage, everywhere in your program, with C-tyle strings, i.e. char* or char xxx[...] along ...


3

You can use an Arduino Yun: it has a 32u4 microcontroller coupled with a cpu running linux. The linux side already has a webserver: together with the Bridge library, you can use REST-like APIs to control a sketch, or build a web app that uses that APIs. One example of remotely control an Arduino (although using an Android app instead of html+js) is this. ...


3

The formal Arduino.cc website mentions, somewhat obscurely, that the Arduino Ethernet is pin compatible with Arduino Uno: The Revision 3 of the board introduces the standardized 1.0 pinout Except for pins 10-13: Pins 10, 11, 12 and 13 are reserved for interfacing with the Ethernet module and should not be used otherwise. This reduces the number of ...


3

Ethernet will work as long as two different machine in the LAN don't have the same MAC address, as @Nathan wrote in his answer. The MAC address is built by two parts, a prefix which are given to manufacturers of network devices and is called OUI, and a suffix that is the node part that manufacturers can use as they wish. If you want to build an MAC address ...


3

The vendor name is not stored on the device, rather it is indicated only by the first three octets or OUI part of the MAC address which is either stored on the device, or in your case set up by software. Turning this back into a name on another computer which sees its traffic is done by the help of a local or network-sourced OUI lookup table. Apparently ...


3

You must use these libraries: #include <Ethernet.h> --> #include <Ethernet2.h> #include <EthernetUdp.h> --> #include <EthernetUdp2.h> More info at this link Arduino Ethernet Shield2


Only top voted, non community-wiki answers of a minimum length are eligible