I need to broadcast small amounts of data in a radius of about 500 meters to 2 Kms. in real time. Any compatible receiver in the range should be able to receive that data. Is there a suitable module for the same? I am considering HC-12 but don't think it can used for broadcasting data to all the surrounding receivers.
Maybe you can look into the LoPy Microcontroller, a MicroPython enabled controller, that has a 1km WiFi range. It uses the Espressif ESP32 chipset (with 802.1b/g/n 16mbps WiFi) and has Bluetooth (BLE & Classic) integrated into the board.
You can use NRF2L01 2.4ghz rf tranceivers.They have a range of approx 1 km without antannae and 1.8 km with antannae.Also the ESP8266 wifi module normally has a range of 300m but can be used for the ranges you require with some big dish antannae.