Reading the Weather Using the GSM Module Connected to the Microcontroller

Reading the Weather Using the GSM Module Connected to the Microcontroller

Regarding our previous article, we wanted to make an application example. If you want to read the previous article first, you can click the link below:

Using the GSM Module for Internet Connection -

Application Name:
Connecting to the internet using a GSM module connected to Arduino and getting temperature data of a place like London.

You can use an API or weather service for this. There are many free weather APIs available on the internet.

We plan to make our example with Arduino UNO.

#include <SoftwareSerial.h>
SoftwareSerial gsmModule(10, 11); // RX and TX pins of the GSM module
void setup() {
   Serial.begin(9600); // Serial communication is started
   gsmModule.begin(9600); // the communication speed of the GSM module is set

   delay(2000); // Waiting time for module initialization
   getTemperature(); // Get temperature data
}

void loop() {
   // Other operations can be done if needed
}

void getTemperature() {
   gsmModule.println("AT+SAPBR=3,1,\"Contype\",\"GPRS\""); // Internet connection type is set
   delay(1000);

   gsmModule.println("AT+SAPBR=1.1"); // Internet connection opens
   delay(3000);

   gsmModule.println("AT+HTTPINIT"); // The HTTP connection is started
   delay(2000);

   gsmModule.println("AT+HTTPPARA=\"CID\",1"); // Set connection id for HTTP connection
   delay(2000);

   gsmModule.println("AT+HTTPPARA=\"URL\",\"http://api.openweathermap.org/data/2.5/weather?q=London,uk&appid=YOUR_API_KEY\""); // Add your weather service API address and API key here
   delay(2000);

   gsmModule.println("AT+HTTPACTION=0"); // HTTP GET operation is performed
   delay(5000);

   gsmModule.println("AT+HTTPREAD"); // read the HTTP response
   delay(5000);

   while (gsmModule.available()) {
     char c = gsmModule.read();
     Serial.write(c); // Prints the response to the serial monitor
   }

   gsmModule.println("AT+HTTPTERM"); // HTTP connection is terminated
   delay(2000);
}

The example code above retrieves London's weather data using the GSM module. In the relevant code snippet, you can specify the weather service API address and API key.


You need to add AT+HTTPPARA=\"URL\",\"http://api.openweathermap.org/data/2.5/weather?q=London,uk&appid=YOUR_API_KEY\" to the relevant places.

In order for the code to work correctly, your GSM module must support AT commands and have features that can send HTTP requests.

You can review GSM Devices for IoT Applications with Ethernet by clicking the link below:

NOrvi GSM IoT