Design and Install a whole-school LED Bell System

Hey OP...
Where did you get with your plan?
It sounds like a a fun project - too bad I'm on the opposite side of the planet, or I'd offer to get hands on with your effort!
regards

That really is too bad! At the moment we're deciding between offering this as a class for a semester starting in September, or going with the original plan of building it out over the summer. The big challenge is balancing how much exploration the students should be doing vs. how much guidance we give them- and it's difficult because of my inexperience!

A wired solution seems like it will be much more reliable, so at the moment I'm trying to select materials that we'll definitely be able to build a working solution from, ordering them, and coming up with some kind of quick proof-of-concept prototype... but not knowing the limitations and strengths of the various components on offer has stalled me somewhat

I'm going to chip in here... but go against the current trend of wired connection is better.

Assuming your school has a WiFi network available at all of the locations you wish to put these modular led notification devices you could use something like the NodeMCU board (running arduino code not lua) instead of a nano. It should offer sufficient digital input and output options but will also make communication simple. (FYI you can get these for <£5 each if you order in advance and can handle the slow delivery from china)

You can transmit commands over the WiFi network using the UDP protocall (plenty of examples out there) which is remarkably simple to use.

Security wise you could require password attached to the commands you send to the modules - During dev have it set to "test" or similar then reprogram each module once your up and running with a code that is not available to the students.

Again i agree on making the local stations "dumb" / slaves. If you set up a standard communication protocall e.g. first 5 bytes are the password, 6th is on/off, 7th is colour etc. you can create a program in Processing (google it, java based software dev) and have all the commands run from your PC or a secretarys PC that is also connected to the same network! Then it is just up to your kids to develop the interface to change the programmed on/off timings!

EDIT:

Just a thought - you could also actually build in that password change functionality and store the current value in some non volatile memory (external EEPROM stuff is really cheap as you would need very little). maybe excessive but would prevent you having to reflash every single one if you wanted to change the password (standard provide old password to change new password system)

EDIT2:

It would appear that ESP8266 / NodeMCU has internal EEPROM, who knew!

slzer:
Security wise you could require password attached to the commands you send to the modules - During dev have it set to "test" or similar then reprogram each module once your up and running with a code that is not available to the students.

Wow! "Security through obscurity" eh? That always works, doesn't it?

Setting the students a little challenge.

Paul__B:
Wow! "Security through obscurity" eh? That always works, doesn't it?

Setting the students a little challenge.

There are definitely advantages in the challenge of student's improving their skills in order to crack into the lighting system to achieve different effects of change the colors. It would obviously be frustrating if they did unrecoverable damage but I would be tempted to design it so that students are almost invited to try to get in.

Maybe that's just jurassic-park levels of crazy.

banj:
There are definitely advantages in the challenge of student's improving their skills in order to crack into the lighting system to achieve different effects of change the colors. It would obviously be frustrating if they did unrecoverable damage but I would be tempted to design it so that students are almost invited to try to get in.

Maybe that's just jurassic-park levels of crazy.

My thoughts too - effective enough to prevent anyone just changing it. Anyone who goes to the effort of monitoring the UDP port and decoding the passworded section A)deserves to leave 5 minutes early and B)probably has better things to hack

#notASecurityExpert

This project is getting off the ground! We weighed the factors and decided to launch the activity as a permanent after school club- there is huge student interest, and for the next few weeks we're all engaging in some guided learning and research, taking the initial ideas and letting students explore the possibilities, generate ideas, make the project theirs, before distilling it into a minimum viable roadmap and ordering some sample components for students to cut their teeth on. Thanks all the the different suggested approaches; at this stage we'll probably experiment with both wired and wifi solutions in the long run so the students can be in control of identifying the vulnerabilities and fragilities.

The idea to use processing.js was great, as that's something the students see in their classes, so it gives them something with some familiarity to launch from.

I'll keep updates coming. Continuing to do my research. One large conceptual block I have is that I can visualize some kind of arduino uno module with RBG LED strips, but I'm not sure which components to research for setting the time-schedule and keeping the modules syncronized. I read about one project which had time-based changes by counting miliseconds- is that the direction I should be looking? Building one module that changes to a schedule is one thing, but making sure that all of them are changing at the same time is another thing- I would have thought maybe I'd need some kind of added clock-component

to start, you can try the system clock, and there are ways to make it more accurate.
your other options are
-see when the school clock says it is time. if there is any sort of morning bell, this would not be hard to do.
-if you have internet access. you could pull the time from that
-if you have GPS, you could get the time from that
-there is a clock module, but with any of the above, it may not be needed

for learning, you could do all of the above.