I want to send a message over Wifi and display it on a screen.
I'm wondering if this would be more suited to Raspberry Pi?
At the same time although there are several processes involved it seems like having a 'mini computer' do one thing seems like overkill
Hence I thought Arduino would be the right fit - even though on the complex side
You not only have to display a message as an image but it will need to go through a process of accessing a wifi network and handling password access by an end user.
I'm thinking that the interface for entering password data for the Wifi Network could be handled by a mobile app.
Displaying an image would be easier than dealing with fonts and layout on the display so memory and buffering to screen would be an issue
No, unless you're doing something fancy an Arduino should be fine, unless the display resolution or frame-refresh rate is too fast to handle the data rate.
Remember (you mentioned images)... they consume memory, resources and bandwidth. Colour or mono? ePaper suggest mono.
I reckon you need to write another post - explaining exactly what you want to do...
When i first read the OP, i thought ir was going to be a LED board, or scoreboard etc.
Images take a lot of space. For example, if you want to use a low-resolution monochromatic 128x64 OLED display, you need 8192 bits of memory. That's a full 1024 bytes of RAM if you want to keep a frame buffer in memory. The Arduino Uno only has 2048 bytes of RAM. That won't be enough if you want to do some WiFi stuff and HTTP parsing, for example.
You don't need a frame buffer, you could write the output to the display directly, but even then, you need 1KB of data for each image (but you can save them in progmem).
An ESP8266 has much more memory, and can easily handle a 128x64 OLED and WiFi stuff at the same time. It has loads of RAM (compared to an Uno) and you could save the images in the 3MB flash partition. Best of all: it has WiFi built-in.
But the ESP has its limits as well, there's no way you're going to drive a 1080p HD monitor, for example.
If you want to use high-resolution displays, a Raspberry Pi would be a better idea. Maybe a Pi Zero WiFi?
768 x 1024 Greyscale image
Image is easier as it can be created a server and then sent as one file. No need to worry about layouts and font support with Arduino (forget that)
Image can also contain a QRCode that can be scanned with a mobile. ALSO I will include a NFC chip that can be equally scanned by a NFC compatible device (such as a mobile)
NFC data will be the same as the QRCode
Message is sent from a mobile to the IOT device
================
Process 2
Before any of this happens the Device will have to be registered with the WiFi network AND 'paired' with the mobile device of the owner - Can't have just anyone sending messages to the device
================
Recharging via a usb cable would be ideal. I need to send a message back to the mobile if power is low. Maybe include a query as well.
If I'm pushing to the device from a mobile that would mean that the device has to always be connected to the WiFi network - event based/long polling. This would no doubt consume power (Maybe it DOES need to be plugged in?)
I think your choices are narrowing a bit... probably upscale in the Arduino range or to a different platform altogether. Pi, BB, or maybe an embedded PC type of device.
I'll leave it to those more familiar, but it's not a hard project at face value, just needs to be planned properly with knowledge of the requirements and budget/tools etc.
I've done a lot of searching - which is why I arrived at the dilemma of Arduino or Raspberry Pi
It could be done using Raspberry Pi however once you move from a prototype to manufacturing the price won't change much. With Arduino it seems easier to isolate the components that are required for a final board BUT it's really at that point where it looks like a better fit for Raspberry Pi
I would like to stay with Arduino - challenging but I feel if successful will finish as a cheaper product
My background is 20+ years of Application development.
Grace of the research I've done so far I have arrived at this point. The question I was unable to answer was if I was going down the wrong path with Arduino (I don't think so but I can see it's a stretch)
As you say - it appears straight forward but the 'Devil is in the detail'
Thus I could really benefit from the guidance of a seasoned Arduino developer to point me in the right direction. I have done a lot of research before coming here.
How many images (bitmaps, compressed or generated) - they all require different storage and processing.
Does the display need to refresh or update while a new (yet unseen) image is being received? etc
There are several other metrics like these, but these alone could sink the 16MHz Arduinos if the amount of data gets too high, and as above, the storage may sink you as well.
If 'message' means just text on a typical 16x2 LCD, the only hurdle is internet connectivity for the board. An Arduino with wifi could handle it just fine. An ESP8266 board would be more elegant.
Phone cameras nowadays take huge images. You could run an ESP8266 as a webserver but link to uploaded images. Uploading to the net would allow a resizing in the same step. Just a matter of making predictable image links.
I would assume that greyscale jpg would be the obvious choice. A smaller image would transfer faster over WiFi.
Yes Raspberry Pi would have EVERYTHING (It's a mini computer)
However - as I've already pointed out when you move to the next phase of production you will end up with a product that's almost the same price as an eReader - Who's going to buy that just to display a message..?
What's the point of showing a QR anyway? A screen being a human interface device, would still need interpreting because no one look at a QR code and can decipher it into an URL.
Phone takes a pic of QR, its output from an APP should be an URL, that URL gets sent as a text string, it would actually mean something to the human looking at it. It could also then be used easily by whatever board is used.
Sigh...
That attitude will see you stuck at blinking LEDs.
Everything is beyond the Arduino if you take it to the possible extents.
Putting a SINGLE 1024x768 mono bitmap up will be fine, if you do nothing else.
*** 786,000 LEDs. Not a problem if the hardware and electronics are designed properly.
Two images will start to consume memory, then changing images will take a moment - not instantaneous...
I'm not doing the maths for all permutations of this project - but processors are a finite resource.
If you throw them at infinite problems you are doomed to disappointment.