Hey! Since there have been various comments indicating that this method is not working, I checked it again. Its working fine for me. But, there is also another way to do this. Use these commands: AT+CIPSEND=48 (for 2 digit values) [string length(46)+2] > GET /update?api_key=xxxxxxxxxxxxxxxx&field1=30 AT+CIPSEND=49 (for 3 digit values) [string length(47)+2] > GET /update?api_key=xxxxxxxxxxxxxxxx&field1=100 One more doubt that people ask often is how to send values of multiple sensors simultaneously. It can be done in the below manner: Eg. "GET /update?api_key=xxxxxxxxxxxxxxxx&field1=100&field2=50" Calculate the string length and add 2. Eg. 57+2 +2 is for carriage return and line feed.
ok guys here are some changese we have to make, When you go to your channel in thingspeak, you click API Keys and then in there on the right side you will the API request and there you will find the update a channel feed. So there is a sting associated to it. so just copy all the string from GET to 0, remember you have to count the string i think with the single digit its exactly 73(better check online you can find string calculator), this value is very important. Now when you paste in the serial monitor remember that there is chance to have a space, this is also counted as string by the software so just press backspace once. Now do as she says you will find it.
Hi Nivetha Need a help..After entering the update? command i got the "send ok" response but not receiving the number of entries and nor the data is uploaded to the Thingspeak...Yes i checked my key too
I still can't get this to work. I get the SEND OK to the GET but I don't get a update number from the server. I have succeeded with the same command using the POSTMAN program. Actually is the TCP POST command more appropriate?
Hi! I have problem. I can update only one value. After I send AT+CIPSEND=48 GET /update?api_key=CAAN9SBWNRF9L858&field1=20 Response is: send ok +CIPRXGET:1 closed Why connection is closed after sending value?
I want to ask after sent all command properly to GSM SIM 900 module by using xctu terminal the value is not getting updated what is the problem please tell me from terminal it's show my data is send ok but after login and checking the thingspeak the value is not updated ...
i use mini a6 gsm module, for a while i'm stuck in AT+CIPSTART="TCP","184.106.153.149","80" command always get error response, but accidentally i'm write AT+CIPSTART="TCP","184.106.153.149",80 and it's connect. port setting : first "80" and error then just 80 and connect. maybe anyone can try this.
Mam ... what logic we will have to apply to Continuously Collect Data and Bulk-Update on ThingSpeak Channel in serial communication of SIM 900A AND ARDUINO uno
its calculating the string length and then after the strings reach they would close....you can google (char)26. its also a way to use if you dont want to calculate the string length
Hi Nivetha, When I use this IP address, my module says TCP closed. What does this ip address represent. Can you tell what could be the possible error? AT+CIPSTART="TCP","184.106.153.149","80" OK AT+CIPSEND=44 ERROR STATE: TCP CLOSED
because 44 stands for the number of charater u have used there....You should also count the space for this....and i think her method to use the GET doesnot work i think i am using sim800l and having problem
Anuj Regmi can you me to figure it out what's the problem of data not getting updated while SIM 900 send data continuously but thingspeak channel not updated ???
@mahesh thakur. You need give a delay...u cant run it in a loop. There is certain time delay required by your internet connection and also thingspeak cant update as it also require some delay. Try to keep some delay with every step. after writing the AT command just 5 seconds delay for all. and then after completing the all the AT command keep a 1 minute delay in the void loop. Just try it.
@Mahesh Thakur As far as I know, that IP address redirects to Thingspeak server and port 80 is the Thingspeak port for uploading any values. Does the connection get closed every time you give the cipstart command? Sometimes after a while it got closed automatically when I was using.
Hi, I am trying to send data of MPU6050 sensor by using SIM 900a. but there is some erroe on AT+HTTPINIT command. Can you please help me on my project.
If you want to upload values for multiple sensors at a time then send the GET command like this: GET /update?key=S**************2&field1=10&field2=13.. Calculate the AT+CIPSEND value by adding the number of extra characters you are sending with 44..
Thanks a lot. following command is working to upload two values. But can please tell me the how to send the two sensor data. Say first sensor data I received in 'x' and second one in 'y' then how to send these value. Serial.print("AT+HTTPPARA=\"URL\",\"api.thingspeak.com/update?api_key=8MMR5DD7QC42NAUJ&field2='a'&field1=4\"\ \ "); SIM900.println("AT+HTTPPARA=\"URL\",\"api.thingspeak.com/update?api_key=8MMR5DD7QC42NAUJ&field2='a'&field1=4\"");
Hi Nivetha, Do you have an email to clarify a few questions on module SIM900. Im working on a project where Id like to upload some parameters such as amperage to thingspeak. Thanks,Rigo
Vishnudev K I have not been able to get it working either. I think that the SIM800 communication is working but it is not getting received at the right point in ThingSpeak. It is very frustrating. Let me know when you get it working. Nivetha seems to have the magic touch.
I did exactly what u said but the data is not updating to the channel although it says send OK.. can you tell me whats problem and the API key is correct i have double checked.. please figure out what could I be doing wrong ?
Rakeh Saleem I read that you need to add 4 to the character count for the update to happen. If this works please let me know. I am not able try it until Thursday.
Rakeh Saleem Actually as far as I can tell the string length is 42. The extra two CHARACTERS (CIPSEND=44) are for RETURN and for new line. So the rule might be to add 2 to the string length in the CIPSEND declaration. I would also want to try using CIPSEND without a setting and adding to the end of the string.
TQ for the explanation it helped me 😊,but I problem in updating my value to thingspeak channel (after at+cipsend=71,I am getting only 'send ok' entries are not displaying and also my data is unable to update in channel )plzzz help what should i do?
I found out the solution in comments. 1st: u use AT+CIPSEND=48 (for 2 digit values) ... like author's comment and then u use GET /update?api_key=....( if you are using terminal, $0D) .I think that's okie. Respone if you will be succeed or have any problems.
Another method, you only use AT+CIPSEND , then GET /update?api_key=.... and subsequently you send in hexa 0x1A. If you're testing via terminal u can write $1A which depended what type of terminal you're using. I have tested, that's fine! Respone if you conflict any problems.
Hey! Sorry for late reply.. I have used a 8051 daughter board/programmer and connected respective rx and tx pins.. To connect it in a simpler manner, RS232 wire can be used or a USB to RS232 converter can be used to connect.. You can refer to these videos for further information: ruclips.net/video/zBA6glLSXWk/видео.html ruclips.net/video/GlHJckUDaUo/видео.html
thanku so much mam... Mam i am able to upload one data on thingspeak using SIM 900 but i am not able to upload more than one data at the same time ... please mam can you help me...
If you want to upload values for multiple sensors at a time then send the GET command like this: GET /update?key=S**************2&field1=10&field2=13.. Calculate the AT+CIPSEND value by adding the number of extra characters you are sending with 44
Do you just want to upload the values? If you want to plot it in a map, I won't be of any help. I don't have the proper knowledge on that. I can try help you to upload in a graph if you need.
Hey! Since there have been various comments indicating that this method is not working, I checked it again. Its working fine for me.
But, there is also another way to do this.
Use these commands:
AT+CIPSEND=48 (for 2 digit values) [string length(46)+2]
> GET /update?api_key=xxxxxxxxxxxxxxxx&field1=30
AT+CIPSEND=49 (for 3 digit values) [string length(47)+2]
> GET /update?api_key=xxxxxxxxxxxxxxxx&field1=100
One more doubt that people ask often is how to send values of multiple sensors simultaneously.
It can be done in the below manner:
Eg. "GET /update?api_key=xxxxxxxxxxxxxxxx&field1=100&field2=50"
Calculate the string length and add 2. Eg. 57+2
+2 is for carriage return and line feed.
yes ! u are right, there is one more method to do the same job too. everyone have their own method,
and good attempt its too much helpful thank you ma'am.
ok guys here are some changese we have to make,
When you go to your channel in thingspeak, you click API Keys and then in there on the right side you will the API request and there you will find the update a channel feed. So there is a sting associated to it. so just copy all the string from GET to 0, remember you have to count the string i think with the single digit its exactly 73(better check online you can find string calculator), this value is very important. Now when you paste in the serial monitor remember that there is chance to have a space, this is also counted as string by the software so just press backspace once. Now do as she says you will find it.
Anuj Regmi I was very optimistic reading this but it still didn't work. Thanks for the glimmer of hope you gave me. Did it work for you?
do you use skype find regmianuj..it will be better to be in touch
Thanks works perfect!!
When uploading multiple three digit values do we just add to the GET expression. Your video is very helpful. Thank you.
Hi Nivetha! Is the loop sketch sending your input to the GSM using println?
Those instructions in notepad work for which of the gsm libraries??
there are many of them
Hi to upload a 4 digit value should we keep AT+CIPSEND=46 ?
Hi Nivetha
Need a help..After entering the update? command i got the "send ok" response but not receiving the number of entries and nor the data is uploaded to the Thingspeak...Yes i checked my key too
I still can't get this to work. I get the SEND OK to the GET but I don't get a update number from the server. I have succeeded with the same command using the POSTMAN program. Actually is the TCP POST command more appropriate?
Hi! I have problem. I can update only one value. After I send
AT+CIPSEND=48
GET /update?api_key=CAAN9SBWNRF9L858&field1=20
Response is:
send ok
+CIPRXGET:1
closed
Why connection is closed after sending value?
How to send the AT commands to the GPRS module through the Serial Monitor?
Hi, I would like to ask how did you acquired the IP address of your channel?
I want to ask after sent all command properly to GSM SIM 900 module by using xctu terminal the value is not getting updated what is the problem please tell me from terminal it's show my data is send ok but after login and checking the thingspeak the value is not updated ...
Have you entered the correct Write API key?
Hi Mam, How did you get IP Address of think speak channel?
Hello mam.. is it possible to send the thingspeak data to the server created on my pc ?
i use mini a6 gsm module, for a while i'm stuck in AT+CIPSTART="TCP","184.106.153.149","80" command always get error response, but accidentally i'm write AT+CIPSTART="TCP","184.106.153.149",80 and it's connect. port setting : first "80" and error then just 80 and connect. maybe anyone can try this.
Mam ... what logic we will have to apply to Continuously Collect Data and Bulk-Update on ThingSpeak Channel in serial communication of SIM 900A AND ARDUINO uno
Sorry. I'm afraid I dont know much about that..
its ok mam ..... thnks a lot
Why is it 43, 44, or 45 after at+cipsend?
its calculating the string length and then after the strings reach they would close....you can google (char)26. its also a way to use if you dont want to calculate the string length
HI Im also getting connected and it says send ok, but im not seeing the values in my thingSpeak channel....please help me
Hey.. Make sure you are entering the correct Write API Key.
Hi Nivetha,
When I use this IP address, my module says TCP closed. What does this ip address represent. Can you tell what could be the possible error?
AT+CIPSTART="TCP","184.106.153.149","80"
OK
AT+CIPSEND=44
ERROR
STATE: TCP CLOSED
because 44 stands for the number of charater u have used there....You should also count the space for this....and i think her method to use the GET doesnot work i think i am using sim800l and having problem
Anuj Regmi can you me to figure it out what's the problem of data not getting updated while SIM 900 send data continuously but thingspeak channel not updated ???
@mahesh thakur. You need give a delay...u cant run it in a loop. There is certain time delay required by your internet connection and also thingspeak cant update as it also require some delay. Try to keep some delay with every step. after writing the AT command just 5 seconds delay for all. and then after completing the all the AT command keep a 1 minute delay in the void loop. Just try it.
@Anuj Regmi It worked for me as shown in the video. Or else how would I have been able to record it. I tried it with GSM SIM900A and SIM808.
@Mahesh Thakur As far as I know, that IP address redirects to Thingspeak server and port 80 is the Thingspeak port for uploading any values. Does the connection get closed every time you give the cipstart command? Sometimes after a while it got closed automatically when I was using.
Hello mam ..can we automatically detect the apn....here we have to give the name but can we automatically detect it
Sorry for the late reply. As far as I know, I dont think thats possible.
Hi, I am trying to send data of MPU6050 sensor by using SIM 900a. but there is some erroe on AT+HTTPINIT command. Can you please help me on my project.
Some GPRS modules may not have the firmware to support HTTP commands. Even mine had that problem so I used TCP/IP commands to upload the values.
Nivetha Mohan thanks for your suggestion. Please tell me the command to upload 2 variables value to server (thingspeak).
If you want to upload values for multiple sensors at a time then send the GET command like this:
GET /update?key=S**************2&field1=10&field2=13.. Calculate the AT+CIPSEND value by adding the number of extra characters you are sending with 44..
Nivetha Mohan I used this command but it is not working. Please share your email id so that i will share my written script.
Thanks a lot. following command is working to upload two values. But can please tell me the how to send the two sensor data. Say first sensor data I received in 'x' and second one in 'y' then how to send these value.
Serial.print("AT+HTTPPARA=\"URL\",\"api.thingspeak.com/update?api_key=8MMR5DD7QC42NAUJ&field2='a'&field1=4\"\
\
");
SIM900.println("AT+HTTPPARA=\"URL\",\"api.thingspeak.com/update?api_key=8MMR5DD7QC42NAUJ&field2='a'&field1=4\"");
Can u help me for arduino programming
Hi Nivetha, Do you have an email to clarify a few questions on module SIM900. Im working on a project where Id like to upload some parameters such as amperage to thingspeak. Thanks,Rigo
Ya.. But I'd suggest that you ask them here cuz your mail might go unnoticed since I dont check them often.
pls i need the AT command on how retrieve information from my thingspeak chanel(A6)
Sorry.. I tried but I couldn't figure out how to do that..
cdn-shop.adafruit.com/datasheets/SIM808_GPS_Application_Note_V1.00.pdf
mam can I get Arduino code for sending sensor values to thingspeak using gsm module
I guess this would work.
#include
SoftwareSerial mySerial(9, 10);
void setup()
{
mySerial.begin(9600); // Setting the baud rate of GSM Module
Serial.begin(9600); // Setting the baud rate of Serial Monitor (Arduino)
delay(100);
}
void loop()
{
call();
while(1);
}
void call()
{
mySerial.println("AT+CIPSHUT");
delay(1000);
while(mySerial.available()>0)
Serial.write(mySerial.read());
mySerial.println("AT+CIPMUX=0");
delay(1000);
mySerial.println("AT+CGATT=1");
delay(1000);
mySerial.println("AT+CSTT=\"bsnlnet\",\"\",\"\"");
delay(1000);
mySerial.println("AT+CIICR");
delay(2000);
mySerial.println("AT+CIFSR");
delay(2000);
mySerial.println("AT+CIPSTART=\"TCP\",\"184.106.153.149\",\"80\"");
delay(4000);
mySerial.println("AT+CIPSEND=44");
delay(1000);
mySerial.println("GET /update?key=XXXXXXXXXXXX&field1=60");
delay(4000);
}
Nivetha Mohan thanks a lot mam
After the last command i am receiving send but not the number of entries so the channel is unable to update
Are you receiving SEND OK and the entry number? If yes, make sure you have entered the right API key.
Me too. Thinkspeak is not updated.
I too got only send ok..nothing..pls help..been searching for few days
Vishnudev K I have not been able to get it working either. I think that the SIM800 communication is working but it is not getting received at the right point in ThingSpeak. It is very frustrating. Let me know when you get it working. Nivetha seems to have the magic touch.
David Tucker same here..it's frustrating...pls do tell me.if you got....I am not able to get anything from send ok..
Okay it is the length of the character string that you are about to send
please can i get the code for this
I did exactly what u said but the data is not updating to the channel although it says send OK..
can you tell me whats problem and the API key is correct i have double checked.. please figure out what could I be doing wrong ?
Rakeh Saleem I read that you need to add 4 to the character count for the update to happen. If this works please let me know. I am not able try it until Thursday.
Rakeh Saleem You notice that in the video the script is much less than the 43 defined in the string that is pasted in to the serial monitor.
Rakeh Saleem Actually as far as I can tell the string length is 42. The extra two CHARACTERS (CIPSEND=44) are
for RETURN and
for new line. So the rule might be to add 2 to the string length in the CIPSEND declaration. I would also want to try using CIPSEND without a setting and adding
to the end of the string.
Rakeh Saleem Put
twice at the end of the request string.
Thank you Mr. David.. appreciate your response and infact i tried it and it worked before you answer. but anyways thank you sir for kind response
Thank you for this video, GBU!
Thanks for your video. In thinkspeak website, how do we see the old data uploaded, like yesterday's, last week/month's..?
on the particular field chart u will see four options... move to field chart options, then edit the result to enter max no. of results u wanna see
Hi can i get the source code
Hey can you share your code please?
TQ for the explanation it helped me 😊,but I problem in updating my value to thingspeak channel (after at+cipsend=71,I am getting only 'send ok' entries are not displaying and also my data is unable to update in channel )plzzz help what should i do?
Hi, My problem is the same yours. My value can not uploaded to thingspeak channel.
What's the solution?
I found out the solution in comments. 1st: u use AT+CIPSEND=48
(for 2 digit values) ... like author's comment and then u use GET /update?api_key=....( if you are using terminal,
$0D) .I think that's okie. Respone if you will be succeed or have any problems.
Another method, you only use AT+CIPSEND
, then GET /update?api_key=.... and subsequently you send in hexa 0x1A. If you're testing via terminal u can write $1A which depended what type of terminal you're using. I have tested, that's fine! Respone if you conflict any problems.
@@dtinkvoduong9318 I am working on putty terminal (SIM808)
AT+CIPSEND=71
+CME ERROR:3
I am getting this error,plz help me
hello mam can u please send me the info regarding module connections done and GSM MODULE info..plzz reply mam
Hey! Sorry for late reply.. I have used a 8051 daughter board/programmer and connected respective rx and tx pins.. To connect it in a simpler manner, RS232 wire can be used or a USB to RS232 converter can be used to connect.. You can refer to these videos for further information: ruclips.net/video/zBA6glLSXWk/видео.html ruclips.net/video/GlHJckUDaUo/видео.html
thanku so much mam... Mam i am able to upload one data on thingspeak using SIM 900 but i am not able to upload more than one data at the same time ... please mam can you help me...
If you want to upload values for multiple sensors at a time then send the GET command like this:
GET /update?key=S**************2&field1=10&field2=13.. Calculate the AT+CIPSEND value by adding the number of extra characters you are sending with 44
thnku so much mam...
Happy I could help :)
please send the code.
Tnk U very much .....!!! ,it helped me a lot --:)
Try to use HTTP for send value
Source code?
Eh the code is above? To program a micro-controller to send this out is relatively easy process.
How can I contact you? Can I have your email ?
Sorry for the late reply. You can ask anything you want here..
Nevermind, I already finish my project by my own. Thanks for the reply :)
Well done... Welcome :) ..
thank you mam
How do upload variables to the thingspeak fields?
Ma'am, Can you please help me to send gps data to thingspeak channel using sim800
Do you just want to upload the values? If you want to plot it in a map, I won't be of any help. I don't have the proper knowledge on that. I can try help you to upload in a graph if you need.