Needs analysis: who needs what?
Needs analysis means finding the real problem before building anything.
- Pick a user (a child, an elder, a farmer, a shop owner).
- Watch or ask: what is difficult, slow or unsafe for them?
- Write the need in one sentence: “Grandmother needs to remember to water the plant.”
- List limits: cost, size, power (battery or plug), place (indoor or outdoor), time to build.
Compare ideas by usefulness, cost and how easy they are to build. Drop the ideas that are too big for the time you have.
Function design: what must it do?
A function is one thing the device must do. Break the need into small functions, each with an input, a rule and an output.
- Measure soil moisture (input: moisture sensor)
- Decide if it is too dry (rule: reading below a limit)
- Warn the user (output: LED and buzzer)
Write them as a requirements list and mark each as must have or nice to have. Do the must-haves first.
Appearance design: shape, size and feel
Look and feel decide whether people use the device. Think about:
- Size and shape: everything must fit inside with room for wires and a battery.
- Material: cardboard for a first model, 3D-printed plastic or wood later; water and heat need safe cases.
- Ease of use: big buttons, clear light colours, a sound that is not too loud.
- Safety: no open wires, no sharp edges, low voltage.
Make a paper or cardboard model first and ask the user to try it. Change the design before you solder anything.
Choosing a board
Compare boards using a table of what you need.
- Pins: count digital and analog pins for all modules, and add 20% spare.
- Connectivity: Wi-Fi or Bluetooth needed? If not, skip them to save money and power.
- Memory and speed: enough for your program; simple projects need little.
- Voltage: 5 V or 3.3 V boards need matching modules.
- Size, power and price: small battery projects need small, low-power boards.
- Community: a popular open-source board has many examples and help online.
Choose the smallest and cheapest board that fits all of the must-haves.
Try it: choose a board for your idea
In the 3D go to the last step. Set pins needed to 12 and no Wi-Fi: which board gets the star? Now turn Wi-Fi on. What changes? Predict first, then check.
At home: write your own idea in three lines (user, need, three functions), count the pins, and pick a board from a list in a shop or online catalogue.
Key formulas and definitions
- Pins needed = digital + analog + extra for serial and spare
- Pins to look for = pins needed × 1.2 (20% spare)
- Total cost = board + modules + case + power
- Key terms: need, requirement, function, module, board, spare pins
Worked examples
1. A project uses 3 LEDs, 2 buttons, 1 analog sensor and 1 buzzer. How many pins are needed? Which of these boards fit: 8, 20 or 30 pins?
Pins = 3 + 2 + 1 + 1 = 7. With 20% spare, 7 × 1.2 = 8.4, so about 9. The 8-pin board is just too small. Choose the 20-pin board.
2. The same project must also send data over Wi-Fi. Which board is now the choice, if only the 30-pin board has Wi-Fi?
Wi-Fi is a must-have, so only the 30-pin Wi-Fi board fits.
3. The Small board costs 1 unit, Standard 2 units and Wi-Fi board 3 units. A project needs 12 pins and no Wi-Fi. Which is the best?
Small has 8 pins: too few. Standard has 20 pins: fits and is cheaper than the Wi-Fi board. The Standard board is the best.
4. Write the need and three functions for a school bag alarm that tells a child when a book is missing.
Need: the child must not forget books. Functions: detect each book (input), compare with the list (rule), beep and show a light (output).
5. Your box is 8 cm wide. The board is 7 cm wide, the battery 3 cm wide, placed side by side. Will they fit?
Total width = 7 + 3 = 10 cm, which is more than 8 cm. They will not fit. Put the battery above the board, or use a wider box.
Common mistakes
- Choosing the board first and the need later.
- Picking the biggest board 'to be safe'. It costs more and wastes power.
- Forgetting spare pins, so adding one more module later is impossible.
- Building the final case before testing a cardboard model with a user.