Advice on hardware

Firstly this is my first post, please forgive me if this has already been answered in a forum - I used the search function and couldn't find exactly what I needed, been doing this for just under an hour.

I was given a present recently - Francis Pretzel board starter kit. Uno board, LED's an LCD screen..Im sure you have seen this in shops.

Over the last few weeks I have worked my way through nearly all the examples and each time they have been more and more complex, which is excellent.

And...Now I'd like to expand a bit further, I'm hooked!!

The one thing that impressed me was the way it easily configured with my wifi and mobile devices.

I have a fair few things that I control already, by using my own webserver (under my desk) Hence this present from a friend - trying to minimize my work space I guess. I can create web pages and servers, I currently work in a company programming touchscreens for home automation (Air cond, Lights, heating and so on..)

What I am looking to do with some of your suggestions is to build a web based interface that sits on my network and allows me to operate and activate/deactivate certain things via my phone/ipad.

I have been looking at the web and found a number of people using different kit and I thought I'd ask here for your expert advice please.

Which would you use for:

  1. Arduino board
  2. Ethernet shield (if not included in the above)
  3. SD card or other board that I could upload a web page to.

Thank you to any advice and for reading this.

Regards

Ken.

Given that the Arduino boards are constrained in memory and processing power, I would try and shift as much of the heavy lifting as possible server side. Create a web application that exposes some simple JSON based web services for the Arduino to call to send information to the server. You can then use the full power of whatever server side language and application server you are using to visualise the information from the Arduino in whatever way you choose.

For getting the Arduino to do things, you can either have it poll the server periodically for instructions or create a simple HTTP server on the Arduino to process simple commands from the server.

Bear in mind that if you put this onto the web you will want some sort of security over the top to prevent unauthorised access. Arduino's on their own aren't powerful enough to perform SSL/TLS encryption but some wifi and 3G shields/breakouts can do this.

I have previously used a ITEAD 3G shield and and Adafruit ATWINC1500 wifi breakout with Uno's and Mega's for these types of projects. I've found that you quickly reach the memory limit on an Uno when trying to parse HTTP responses from the server unless they are quite small.

Look at my project for relays and IR TV Control which is really to interface with SmartThings, however, the little website on the Arduino can be accessed via LAN. Meaning you don't need the SmartThings piece to just use the Arduino samples I provide.

Instead of Arduno/AVR/Atmel, look into using the ESP8266/NodeMCU because those are the new standard given the large amount of memory when compared to Arduino and the built-in wifi.

Easiest is to buy Arduino Nano V3 with an Ethernet shield (ENC28J60) that just fits it like a glove and looks great. Again though, limited memory...

Try not to use the ENC28J60 (Ethernet module) if you absolutely don't have to because the current libraries like UIPEthernet still have a hard time showing the page on my Android/IOS while computers can open the page. It's also complicated to wire the ENC28J60 board to the NodeMCU as you have to use 2 mosfets, resistor & capacitor.

To be honest, my need is RJ45 because my gate motor box does not get wifi so I'm using Ethernet over Powerline adapter and hence the ridiculous amount of time I've spent on RJ45/Ethernet.

Take a look at the ESP8266 SoC/WiFi radio: it's small, cheap, and much more powerful than an Arduino Uno (160MHz, 32-bit, 64k instruction RAM, 96k data RAM, 0.512-4MB flash (depends on the type you buy), 2.4GHz WiFi ...). It can easily serve webpages, process responses and turn on/off its I/O pins accordingly.
The best part is that you can program it using the Arduino IDE, so you can use a language you're already familiar with. It has libraries for WiFi, HTTP, server, file systems, ... built-in, so it's much easier than having to set up an Ethernet library that works with your shield, over a slow UART or SPI connection.
It's very well documented, and it's really easy to create a server, and even upload new webpage to it from within your browser, and it can be stored on the 0.5-3.5MB flash file system (with real files and folders). That's more than enough for a couple of webpages worth of HTML, CSS, JavaScript and small images.

You can find them on Ebay for ~$3 shipped. Make sure you buy a breakout board as well, to use it on a breadboard. There are many packages available, some don't give you access to all I/O pins. You'll also need a 3.3V USB-to-Serial converter (a 5V one will blow up the chip) and 3.3v voltage regulator as well.
Some ESP8266 boards, like the SparkFun ESP8266 Thing or the NodeMCU have the USB-to-Serial onboard, and fit directly into a breadboard. They has a decent power supply and reset/program buttons as well. You can compare it to a normal Arduino. They're a bit more "expensive", but much easier to work with, especially for a beginner.

Hope this helps!
Pieter

Thank you all for your helpful threads.

I'll research all of these in the morning.