Stefan,
Thanks for your explanation on Lua. Its much better than I did.
My next test is going to be trying to get my ESP-01 to do both the server (lighting LEDs on GPIO 0 & 2), and as a client delivering those settings back to Thingspeak/Xively on each change.
Also, since my internet is via cellular and hence my IP is dynamic, I think each time the ESP is setup, I should send the IP address to thingspeak/xively so I can find the IP remotely.
And for a joke I am thinking about setting one as a standalone esp as a simple server with
ssid="SurveillanceUnit7",password="ASIO" (in the US you would use "FBI" or "DEA")
and put it in a cigarette plug for my car
Drac,
xively looks good too.
Can you use google gauges?
Can you use google maps? (thingspeak cannot do live update coordinates, nor tracks - only fixed programmed location )
Doesn't xively use git for storage?
xively seems much harder to setup than thingspeak.
Thanks for posting the great info guys! I finally got a pair of these today. I used the Prop Plug, external power supply, breadboard, two push buttons (rst,prog), 2.2k pullups on the four middle pins and PuTTy.
My initial firmware didn't work, I updated to 00200.9.5(b1) aka AI-v0.9.5.0 AT Firmware. I think it shipped with 9.2.2 AT but no way of telling.
It has been a lot of fun playing with the AT commands. I managed to get a DHCP IP, and assigned a reservation for it in my DHCP server. I was able to telnet and serve up some basic HTML to a browser by manually typing it via AT commands.
It hasn't drawn more than 60ma @ 2.8v. The PING times are very good at long range. So far very happy! I might have to take it home and spend the night playing with it...
Sure will. I tried to setup a basic web server using AT commands and.. bleh..
I have the propeller serial talking to the ESP8266 using full duplex object. Lua sounds way more enticing than spending anymore time on this. It's easy enough to open the connection and send html then close the connection but it's too cumbersome. I'm having a hard time detecting which connection is opened 0-3 to have the response sent back to the same connection.
The AT command set was an excellent way to get the initial configuration done though.
I also tried to return some of the output, works fine on PST, couldn't get it to display on an LCD. I think it's break time!
This ESP8266 seems to really knock the wind out of the Electric Imp http://www.adafruit.com/products/1129. Except of course the Electric Imp guys supply all the "cloud" infrastructure for your IoT things. Which is fine by me as I have cloud enough already and don't want to have to rely on them.
Oddly the Electric Imp guys tried to use Lua in their WIFI module originally but at the last minute found it was unworkable because it consumed far to much memory in their device. Shortly before product launch that switched to Squirrel https://electricimp.com/docs/squirrel/squirrelcrib/
If anyone is interested here is how I breadboarded my ESP8266.
You may want to get a module without headers if you want to use a breadboard. I used two strips of four right angle headers soldered on opposite sides. It's sits like a DIP.
I haven't used Lua connected to the Propeller but holy smokes it is awesome so far! UNBELIEVABLE! NodeMCU is freaking awesome! Suddenly this thing went from, "oh well it was $4" to WOW! Encrypted access point and web server with captive portal for $4 running on a coin cell. Unreal.
I'll have to learn some Lua serial commands next. Everything in my house will have one of these in it. Everything.
I'm not familiar with Arduino. A year ago I used the Arduino IDE just to upload a CNC-Firmware (GRBL) into an arduino
that's all.
With the ESP8266 I used the tool LUALoader http://benlo.com/esp8266/
which makes some things easier. LoaLoader has a Upload-File feature.
Did anybody find a tool which has an integrated texteditor? Or an IDE with "off the server" downloadable
configurationfiles for: hit hotkey and IDE does all that is needed to start an Upload-Tool uploading the file opened in the IDE ?
I entered my commands from the PC using a terminal program and a PropPlug (without the Prop) to get it running.
So, just write your commands in spin and use fullduplexserial to send/receive from the ESP8266.
BTW you can store your Lua commands in a file(s) on the ESP8266 and just call the filename from the Prop (or whatever).
While Lua may be easy, it suffers from memory constraints on the ESP8266. By using the Arduino IDE, you have way more flexibility in coding, and less issues with memory.
BTW, can you elaborate how spin can be used to program the ESP8266?
can you tell numbers how much memory is available for Lua-scripts and how much memory is available when using Arduino-IDE?
a precise comparison could be made by writing code with a certain functionality in Lua and as an arduino-sketch
and then compare how much memory it will occupy.
I'm not sure what you mean by "how spin can be used to program the ESP8266"
Do you mean using a "spin-firmware" uploading SPIN-bytecode and this SPIN-bytecode will be executed by a SPIN-interpreter inside the ESP8266
or do you mean using a propeller-chip running SPIN to "program" the ESP8266.
And if this way what kind of programming?
- Sending AT-commands to the original firmware?
- serial communication with an arduino-sketch?
- Uploading Arduino-sketches or Lua-scripts via a propeller-chip?
please give a more detailed explanation of what you mean
I'm not familiar with Arduino. A year ago I used the Arduino IDE just to upload a CNC-Firmware (GRBL) into an arduino
that's all.
With the ESP8266 I used the tool LUALoader http://benlo.com/esp8266/
which makes some things easier. LoaLoader has a Upload-File feature.
Did anybody find a tool which has an integrated texteditor? Or an IDE with "off the server" downloadable
configurationfiles for: hit hotkey and IDE does all that is needed to start an Upload-Tool uploading the file opened in the IDE ?
best regards
Stefan
I don't know if this has all (or any) of the features you're looking for, but I've used ESPlorer and I do like the way it is laid out:
can you tell numbers how much memory is available for Lua-scripts and how much memory is available when using Arduino-IDE?
a precise comparison could be made by writing code with a certain functionality in Lua and as an arduino-sketch
and then compare how much memory it will occupy.
I'm not sure what you mean by "how spin can be used to program the ESP8266"
Do you mean using a "spin-firmware" uploading SPIN-bytecode and this SPIN-bytecode will be executed by a SPIN-interpreter inside the ESP8266
or do you mean using a propeller-chip running SPIN to "program" the ESP8266.
And if this way what kind of programming?
- Sending AT-commands to the original firmware?
- serial communication with an arduino-sketch?
- Uploading Arduino-sketches or Lua-scripts via a propeller-chip?
please give a more detailed explanation of what you mean
best regards
Stefan
When using the Arduino IDE, you are uploading sketches that get compiled into firmware that is loaded onto the ESP8266.
As far as the memory limitations of NodeMCU, it's pretty well documented. See the following link:
After reading this, I wasn't even aware that comments in your lua script count against the memory being used. I seem to recall that lua scripts are limited to about 100 lines of code, which have been an issue for some developers.
As for spin, I was just commenting on what Cluso99 mentioned about it being used with the ESP8266.
You can use prop to send commands to NodeMCU which are effectively sending Lua scripts. So on the prop you would just write a spin program which the prop would execute and send the appropriate commands to the ESP8266. This will not require much space on the ESP8266 because you send the commands and receive the responses on the prop running spin and fdx.
You can use prop to send commands to NodeMCU which are effectively sending Lua scripts. So on the prop you would just write a spin program which the prop would execute and send the appropriate commands to the ESP8266. This will not require much space on the ESP8266 because you send the commands and receive the responses on the prop running spin and fdx.
Ok, I understand now. At first I thought you were implying that it was possible to program the esp8266 directly in spin without a propeller mcu. Currently this is the case with the Arduino IDE, which is why I suggested it as an alternative to NodeMCU.
its been a while sinds ive posted on this form .Hope someone can point me in the right direction here .
I have a few senseair K-30 CO2 sensors lying around , thought might be a great idea to connect them all to a propeller , and use an esp8266 to send the data to my server.
but having some minor troubles getting the post command working
I managed to get the esp connected and responding , it also seems to connect to my server , but the post command is not going tru
In the terminal I get a wrong syntax message follow by error, not getting how to fix that.
The idea is that i later will grab the data and display it in a highchart graph.
waitcnt(clkfreq*4+cnt)
term.str(string("Starting Up Terminal",13))
sendCommand(string("AT+RST"))
getResponse
sendCommand(string("AT+CWMODE=3"))
getResponse
'sendCommand(string("AT+CWLAP")) ' list nearby wifi points
'getResponse
sendCommand(string("AT+CWJAP=",34,"H220N540448",34,",",34,"6FB977231C28",34)) ' connect to wifi point
getResponse
waitcnt(clkfreq+cnt)
'waitcnt(clkfreq*5+cnt)
sendCommand(string("AT+CIFSR?")) 'Show name connected wifi
getResponse
'sendCommand(string("AT+CWJAP?")) 'Show name connected wifi
'getResponse
'sendCommand(string("AT+CIFSR")) 'GET IP ADRES
'getResponse
'waitcnt(clkfreq*2+cnt)
sendCommand(string("AT+CIPMUX=1")) 'turn on multiple connections
getResponse
waitcnt(clkfreq+cnt)
sendCommand(string("AT+CIPSTART=4,",34,"TCP",34,",",34,"192.168.2.50",34,",80",13,10)) 'connect to my server
getResponse
waitcnt(clkfreq+cnt)
when i just run this url (http://192.168.2.50/index.php?sensor1=12444444) in a browser. it will collect the variable and put it in a database table like expected , so that seems to be working fine.
have tryed a few different thing none realy working so would love some help in the right direction .
Once everything is working the idea is that i will post the working code to github , for others intrested.
php page on server
<?php
$servername = "localhost";
$username = "root";
$password = "xxxxx";
$dbname = "esp8266";
this busy....
and error-messages is a typical behaviour of this in my opinion buggy original firmware.
and this was the reason why I changed to the nodeMCU-firmware
here is an example of a Lua-script which creates a website with to buttons you can switch on / off via your webbrowser
wifi.setmode(wifi.STATION)
wifi.sta.config("MyRouter","MyPassword")
print(wifi.sta.getip())
led1 = 3
led2 = 4
gpio.mode(led1, gpio.OUTPUT)
gpio.mode(led2, gpio.OUTPUT)
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive", function(client,request)
local buf = "";
local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
if(method == nil)then
_, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
end
local _GET = {}
if (vars ~= nil)then
for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
_GET[k] = v
end
end
buf = buf.."<h1> ESP8266 Web Server</h1>";
buf = buf.."<p>GPIO0 <a href=\"?pin=ON1\"><button>ON</button></a> <a href=\"?pin=OFF1\"><button>OFF</button></a></p>";
buf = buf.."<p>GPIO2 <a href=\"?pin=ON2\"><button>ON</button></a> <a href=\"?pin=OFF2\"><button>OFF</button></a></p>";
local _on,_off = "",""
if(_GET.pin == "ON1")then
gpio.write(led1, gpio.HIGH);
elseif(_GET.pin == "OFF1")then
gpio.write(led1, gpio.LOW);
elseif(_GET.pin == "ON2")then
gpio.write(led2, gpio.HIGH);
elseif(_GET.pin == "OFF2")then
gpio.write(led2, gpio.LOW);
end
client:send(buf);
client:close();
collectgarbage();
end)
end)
with some lines of code you are up and running.
If somebody is an expert about the AT-commandset: feel free to post code that does the same functionality
I have a little breakout board between the propplug and esp8266. It has a 3v3 regulator on it to take the usb 5v down to 3v3 for the esp8266.
Is that required? I connected the Vss,tx and rx of the Prop Plug directly to the ESP. The Prop Plug specs say 3.3v tolerant and provides no +5 Vdd so I was assuming this was okay.
It's probably worth mentioning, as an alternative to NodeMCU (Lua) the esp8266 can also be programmed directly in the Arduino IDE.
Maybe someone here could figure out how to do the same with Propeller Tool or SimpleIDE.
The SOC is great for the wifi stack but the only hope I have for this is to interface with another microcontroller. Lua can take you very close to its limits.
Is that required? I connected the Vss,tx and rx of the Prop Plug directly to the ESP. The Prop Plug specs say 3.3v tolerant and provides no +5 Vdd so I was assuming this was okay.
I have my own propplug design which outputs the 5v. The propplug design uses the FTDI chip with 3v3 I/O but the 3v3 voltage from the proplug is insufficient to power any but the lowest of systems. While my breakout board for the esp8266 has a number of links, its main purpose is to give me a regulated 3v3 output to power the esp8266 with the usb 5v being the input.
So yes, connect Vss(Gnd), TX and RX to your ESP8266, and you will have to provide 3v3 power to your ESP8266 as well. You have to also connect one IO of the ESP8266 alternately to 3v3 / GND for programming and operation (forget which way around). There is also a reset on the ESP8266 that can be used.
Comments
I would recommend the ESP-12 module - it has onboard aerial and more IO on a castellated board but 2mm pitch. I have a couple on order from here
http://www.aliexpress.com/item/Free-Shipping-2pcs-lot-ESP8266-remote-serial-Port-WIFI-wireless-module-through-walls-Wang-ESP-12/32245681016.html
and I also ordered these pcbs to mate with it
http://www.aliexpress.com/item/Serial-WIFI-ESP8266-module-adapter-plate-Full-IO-port-leads-only-adapter-plate/32273534748.html
If you want the ESP-01 module (the normal 8 pin which has 2 I/O) then I have a couple on order from here
http://www.aliexpress.com/item/Free-Shipping-ESP8266-remote-serial-Port-WIFI-wireless-module-through-walls-Wang/32262360397.html
Previously, I bought my ESP-01 from here (so I know they work) but are more expensive now
http://www.aliexpress.com/item/Free-Shipping-esp-8266-serial-port-wifi-wireless-module-esp8266/32210521318.html
I also bought an ESP-03 (an older pinout with more IO) - untried but I would now recommend the ESP-12.
http://www.aliexpress.com/item/ESP8266-serial-WIFI-industry-milepost-unbeatable-price-type-ESP-03/32220264430.html
With these prices, even if they don't deliver, or they are rubbish, you haven't lost much.
BTW Most sellers don't do PayPal but you can pay via AliExpress with credit card.
Thanks for your explanation on Lua. Its much better than I did.
My next test is going to be trying to get my ESP-01 to do both the server (lighting LEDs on GPIO 0 & 2), and as a client delivering those settings back to Thingspeak/Xively on each change.
Also, since my internet is via cellular and hence my IP is dynamic, I think each time the ESP is setup, I should send the IP address to thingspeak/xively so I can find the IP remotely.
And for a joke I am thinking about setting one as a standalone esp as a simple server with
ssid="SurveillanceUnit7",password="ASIO" (in the US you would use "FBI" or "DEA")
and put it in a cigarette plug for my car
I imported the dataset from a csv file, not from the ESP8266 yet.
https://thingspeak.com/channels/31617#publicview
Now that this is working, its time to get the ESP8266 to send data to ThingSpeak.
Drac, how does this compare to xively?
Screenshot of what xively looks like.
xively looks good too.
Can you use google gauges?
Can you use google maps? (thingspeak cannot do live update coordinates, nor tracks - only fixed programmed location )
Doesn't xively use git for storage?
xively seems much harder to setup than thingspeak.
ThingSpeak has both private and public web pages.
My initial firmware didn't work, I updated to 00200.9.5(b1) aka AI-v0.9.5.0 AT Firmware. I think it shipped with 9.2.2 AT but no way of telling.
It has been a lot of fun playing with the AT commands. I managed to get a DHCP IP, and assigned a reservation for it in my DHCP server. I was able to telnet and serve up some basic HTML to a browser by manually typing it via AT commands.
It hasn't drawn more than 60ma @ 2.8v. The PING times are very good at long range. So far very happy! I might have to take it home and spend the night playing with it...
Fantastic. Would you like to post your code?
I have been using NodeMCU with Lua. It's a lot easier than using the AT commands.
All the NodeMCU and Lua info is on the esp8266.com website/forum.
I have the propeller serial talking to the ESP8266 using full duplex object. Lua sounds way more enticing than spending anymore time on this. It's easy enough to open the connection and send html then close the connection but it's too cumbersome. I'm having a hard time detecting which connection is opened 0-3 to have the response sent back to the same connection.
The AT command set was an excellent way to get the initial configuration done though.
I also tried to return some of the output, works fine on PST, couldn't get it to display on an LCD. I think it's break time!
Oddly the Electric Imp guys tried to use Lua in their WIFI module originally but at the last minute found it was unworkable because it consumed far to much memory in their device. Shortly before product launch that switched to Squirrel https://electricimp.com/docs/squirrel/squirrelcrib/
Does the ESP8266 hand https?
You may want to get a module without headers if you want to use a breadboard. I used two strips of four right angle headers soldered on opposite sides. It's sits like a DIP.
I'll have to learn some Lua serial commands next. Everything in my house will have one of these in it. Everything.
Edit: this is the code I used, very easy to modify has lots of good stuff in it - https://raw.githubusercontent.com/dannyvai/esp2866_tools/master/nodemcu/scripts/server_hotspot_untill_connect_lua
Maybe someone here could figure out how to do the same with Propeller Tool or SimpleIDE.
I entered my commands from the PC using a terminal program and a PropPlug (without the Prop) to get it running.
So, just write your commands in spin and use fullduplexserial to send/receive from the ESP8266.
BTW you can store your Lua commands in a file(s) on the ESP8266 and just call the filename from the Prop (or whatever).
I'm not familiar with Arduino. A year ago I used the Arduino IDE just to upload a CNC-Firmware (GRBL) into an arduino
that's all.
With the ESP8266 I used the tool LUALoader http://benlo.com/esp8266/
which makes some things easier. LoaLoader has a Upload-File feature.
Did anybody find a tool which has an integrated texteditor? Or an IDE with "off the server" downloadable
configurationfiles for: hit hotkey and IDE does all that is needed to start an Upload-Tool uploading the file opened in the IDE ?
best regards
Stefan
While Lua may be easy, it suffers from memory constraints on the ESP8266. By using the Arduino IDE, you have way more flexibility in coding, and less issues with memory.
BTW, can you elaborate how spin can be used to program the ESP8266?
can you tell numbers how much memory is available for Lua-scripts and how much memory is available when using Arduino-IDE?
a precise comparison could be made by writing code with a certain functionality in Lua and as an arduino-sketch
and then compare how much memory it will occupy.
I'm not sure what you mean by "how spin can be used to program the ESP8266"
Do you mean using a "spin-firmware" uploading SPIN-bytecode and this SPIN-bytecode will be executed by a SPIN-interpreter inside the ESP8266
or do you mean using a propeller-chip running SPIN to "program" the ESP8266.
And if this way what kind of programming?
- Sending AT-commands to the original firmware?
- serial communication with an arduino-sketch?
- Uploading Arduino-sketches or Lua-scripts via a propeller-chip?
please give a more detailed explanation of what you mean
best regards
Stefan
I don't know if this has all (or any) of the features you're looking for, but I've used ESPlorer and I do like the way it is laid out:
https://github.com/4refr0nt/ESPlorer
When using the Arduino IDE, you are uploading sketches that get compiled into firmware that is loaded onto the ESP8266.
As far as the memory limitations of NodeMCU, it's pretty well documented. See the following link:
http://internetofhomethings.com/homethings/?p=424
After reading this, I wasn't even aware that comments in your lua script count against the memory being used. I seem to recall that lua scripts are limited to about 100 lines of code, which have been an issue for some developers.
As for spin, I was just commenting on what Cluso99 mentioned about it being used with the ESP8266.
Ok, I understand now. At first I thought you were implying that it was possible to program the esp8266 directly in spin without a propeller mcu. Currently this is the case with the Arduino IDE, which is why I suggested it as an alternative to NodeMCU.
I have a few senseair K-30 CO2 sensors lying around , thought might be a great idea to connect them all to a propeller , and use an esp8266 to send the data to my server.
but having some minor troubles getting the post command working
I managed to get the esp connected and responding , it also seems to connect to my server , but the post command is not going tru
In the terminal I get a wrong syntax message follow by error, not getting how to fix that.
The idea is that i later will grab the data and display it in a highchart graph.
My terminal output looks like below.
AT+CWMODE=3
no change
AT+CWJAP="SSID","Password"
AT+CIFSR?
busy p...
OK
AT+CIPMUX=1
OK
AT+CIPSTART=4,"TCP","192.168.2.50",80
busy p...
OK
Linked
AT+CIPSEND=4,30
> POST /index.php?sensor1=12345\r\n
SEND OK
wrong syntax
ERROR
THe spin code that does the job ,
PUB main | i,j
serial.start(TXPIN, RXPIN, 00, baud)
term.start(31,30,00,115200)
waitcnt(clkfreq*4+cnt)
term.str(string("Starting Up Terminal",13))
sendCommand(string("AT+RST"))
getResponse
sendCommand(string("AT+CWMODE=3"))
getResponse
'sendCommand(string("AT+CWLAP")) ' list nearby wifi points
'getResponse
sendCommand(string("AT+CWJAP=",34,"H220N540448",34,",",34,"6FB977231C28",34)) ' connect to wifi point
getResponse
waitcnt(clkfreq+cnt)
'waitcnt(clkfreq*5+cnt)
sendCommand(string("AT+CIFSR?")) 'Show name connected wifi
getResponse
'sendCommand(string("AT+CWJAP?")) 'Show name connected wifi
'getResponse
'sendCommand(string("AT+CIFSR")) 'GET IP ADRES
'getResponse
'waitcnt(clkfreq*2+cnt)
sendCommand(string("AT+CIPMUX=1")) 'turn on multiple connections
getResponse
waitcnt(clkfreq+cnt)
sendCommand(string("AT+CIPSTART=4,",34,"TCP",34,",",34,"192.168.2.50",34,",80",13,10)) 'connect to my server
getResponse
waitcnt(clkfreq+cnt)
'sendCommand(string("AT+CIPMODE=1")) 'enter transmission mode
'getResponse
' waitcnt(clkfreq+cnt)
sendCommand(string("AT+CIPSEND=4,28")) 'enter transmission mode
getResponse
waitcnt(clkfreq+cnt)
sendCommand(string("POST /index.php?sensor1=12345\r\n")) 'enter transmission mode
' sendCommand(string("POST /index.php HTTP/1.1\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 13\r\n\r\nsensor1=12345\r\n\r\n")) 'enter transmission mode
getResponse
waitcnt(clkfreq*5+cnt)
'sendCommand(string("AT+CIFSR"))
'getResponse
when i just run this url (http://192.168.2.50/index.php?sensor1=12444444) in a browser. it will collect the variable and put it in a database table like expected , so that seems to be working fine.
have tryed a few different thing none realy working so would love some help in the right direction .
Once everything is working the idea is that i will post the working code to github , for others intrested.
php page on server
<?php
$servername = "localhost";
$username = "root";
$password = "xxxxx";
$dbname = "esp8266";
$sensor1 = $_GET;
/*$sensor2 = $_GET;
$sensor3 = $_GET;
$sensor4 = $_GET;
$sensor5 = $_GET;
$sensor6 = $_GET; */
$length1 = strlen($sensor1);
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
/* $sql = "INSERT INTO co2 (sensor1, sensor2, sensor3, sensor4, sensor5, sensor6)
VALUES ($sensor1, $sensor2, $sensor3, $sensor4, $sensor5, $sensor6)"; */
$sql = "INSERT INTO co2 (sensor1, sensor2)
VALUES ($sensor1, $length1)";
// use exec() because no results are returned
$conn->exec($sql);
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
Cluso99, any issues with voltage levels using the Prop Plug??
and error-messages is a typical behaviour of this in my opinion buggy original firmware.
and this was the reason why I changed to the nodeMCU-firmware
here is an example of a Lua-script which creates a website with to buttons you can switch on / off via your webbrowser
with some lines of code you are up and running.
If somebody is an expert about the AT-commandset: feel free to post code that does the same functionality
best regards
Stefan
Is that required? I connected the Vss,tx and rx of the Prop Plug directly to the ESP. The Prop Plug specs say 3.3v tolerant and provides no +5 Vdd so I was assuming this was okay.
The SOC is great for the wifi stack but the only hope I have for this is to interface with another microcontroller. Lua can take you very close to its limits.
So yes, connect Vss(Gnd), TX and RX to your ESP8266, and you will have to provide 3v3 power to your ESP8266 as well. You have to also connect one IO of the ESP8266 alternately to 3v3 / GND for programming and operation (forget which way around). There is also a reset on the ESP8266 that can be used.
the line in question is the post data command (last command)
sendCommand(string("AT+CIPMUX=1")) 'turn on multiple connections
getResponse
sendCommand(string("AT+CIPSTART=4,",34,"TCP",34,", ",34,"192.168.2.50",34,",80",13,10)) 'connect to my server
getResponse
waitcnt(clkfreq+cnt)
sendCommand(string("AT+CIPSEND=4,28")) 'enter transmission mode
getResponse
waitcnt(clkfreq+cnt)
sendCommand(string("POST /index.php?sensor1=12345\r\n")) 'enter transmission mode
can this also be accounted for by buggy firmware , or is the line just not ok ?
hope someone can help me out
I know nothing of how the ESP8266 works but a HTTP POST request requires two carriage return line feeds at the end of the header. As shown here:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html
You can test these kind of requests manually by connecting to your server with telnet, here is an example using by Raspberry Pi server: Please excuse the crazy long host name. Not the extra blank line after the GET request. After that is shown everything that came back from the server.
So, in short, perhaps you need:
Have you considered flashing NodeMCU? Lua works much better than the AT commands because with the AT firmware the command formatting changes.