HI
HimanshuChauragade/Wireless-Morse
A peer-to-peer wireless communication system using Arduino Uno, a 16×2 I2C LCD Display and NRF24L01 transceiver modules to transmit and receive Morse code messages. This project demonstrates encoding text into Morse code, transmitting it wirelessly, and decoding it back into human-readable form.
🚀📡 Wireless-Morse-Code-Communication-System
✨⚙️ Features
- A peer-to-peer wireless communication system using Arduino Uno,
- This project demonstrates encoding text into Morse code,
- Transmitting it wirelessly, and decoding it back into human-readable form.
- NRF24L01 transceiver modules to transmit and receive Morse code messages.
- It uses 2.4GHz global open ISM band, license-free in India.
- Range upto 1500 meters in line of sight with SMA Antenna.
- Display messages on a 16×2 LCD screen
- Option to build circuit with or without I2C module
📖 Introduction
Morse code is a communication method that uses short and long signals
- Different combination and sequence of dots
·and dashes–to encode text in morse code.
(space too for switching between words.) - This project implements a wireless Morse code communication system using NRF24L01 modules for transmission and reception, and a 16×2 LCD to display messages.
🎥📷 Demo
🔧🔌 Hardware Used
| Component | Description |
|---|---|
| Arduino Uno (ATmega328P) | Microcontroller board |
| NRF24L01 2.4 GHz Transceiver Modules (x2) | Wireless radio communication modules |
| 16×2 LCD Display (HD44780) | Character LCD display |
| I2C Serial Interface Adapter Module (PCF8574) | Enables I2C communication with LCD |
| Push Buttons | User input controls |
| Miscellaneous Components | Resistors, breadboard, jumper wires, etc. |
📦📚 Libraries Used
| Library | Purpose |
|---|---|
#include <LiquidCrystal.h> |
For LCD display |
#include <SPI.h> |
For SPI communication |
#include <avr/wdt.h> |
Watchdog Timer library |
#include <RF24.h> |
For NRF24L01 wireless communication |
#include <nRF24L01.h> |
For NRF24L01 wireless communication |
📐📊 Circuit Options Comparison
| Option | Description |
|---|---|
| With I2C Module | - Simplifies the circuit design - More beginner-friendly - Frees up I/O ports for other uses |
| Without I2C Module | - Adds complexity to the circuit - Consumes additional I/O pins - Attempt with prior experience. |
⚙️ Circuit With I2C Module
⚙️ Circuit Without I2C Module
🔮🌱 Future Improvements
- Make a 3D printed portable version with rechargable Li-Polymer battery
- Add buzzer/vibration feedback for Morse input
- Add support for mesh (multi-node) communication (multiple devices)
- Implement error-checking for more reliable transmission
🤝 Contributing
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
🙌 Development Guidelines
- Follow Arduino coding best practices
- Keep circuit diagrams clear and well-documented
- Use meaningful and descriptive commit messages
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Arduino community for open-source hardware & libraries
- nRF24L01 & rf24 for the NRF24L01 library support
- HD44780 & PCF8574 documentation for LCD interfacing
- Open-source contributors for inspiration and resources
- Electronics hobbyist forums for troubleshooting help
📞 Contact
- GitHub: @HimanshuChauragade
- LinkedIn: Himanshu Chauragade
- Email: 2024000129@mssu.ac.in
⭐ Star this repository if you found it helpful!




