Here is a link to a few free software programs that some of you may find useful when testing communication. The TCP tool should be helpful for testing getting info between two ESPs.
https://www.simplecomtools.com/produ...p?idCategory=5
John
Here is a link to a few free software programs that some of you may find useful when testing communication. The TCP tool should be helpful for testing getting info between two ESPs.
https://www.simplecomtools.com/produ...p?idCategory=5
John
tried this
but I have three android devices two lockup the eps8266 instantly,the other (asus transformer) is okCode:< DOCTYPE htmlPUBLIC"-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> < html><TITLE>PBP ESP8266 demo</TITLE> < H1>Testing the ESP8266</H1> < H3>Cool stuff!</H3> Page visits:3 < formmethod="get"action="set"> < inputmaxlength="5"value="3" name ="MyInput"size="5"> < inputvalue="Change MyInput"type="submit"> </ form></html>
I think as a web server these things are just too flaky , any simultaneous requests will cause instant lookup , the onboard wdt seems to ignore this state likewise for a soft reset .
fyi the ie browser connect/response pkt is upto 324 bytes, and for the transformer 490 bytes ,its not going to be pic friendly this way.
will try tcp/udp or even telnet next
Hi Richard,
I haven't played any more so you're way ahead of me. Copy/pasting your HTML code into a .txt file (renamed to .htm of course) and opening it in IE does not look like anything really usable to me. Of course, I know very little HTML :-(
Regarding multiple connections, did you set it up to allow that and are you servicing the second connection request or just ignoring it?
Why? You don't really need to grab the buffer everything in the PIC, you can parse it on the fly as it arrives. With that said, there are plenty of PICs available with RAM to spare, you do need to go to a 28pin 18F device to "max out" though.fyi the ie browser connect/response pkt is upto 324 bytes, and for the transformer 490 bytes ,its not going to be pic friendly this way.
/Henrik.
the html code is a copy and paste from "komposer" a free html editor I found on the net , its really just what you did with an input field MyInput added in to a form and levered into your setup .
it does nothing useful just demonstrates sending data from the browser back to the pic. it works ok
if have stepped up to a pic18f45k20 so resources aren't an issue yet , biggest problem is if a connection is made while you are serving a page the incoming link request just stops everything dead .
and if you hit the refresh on the browser before current request (same connection ) is dealt with it all comes to a crashing halt.
parsing the data on the fly is a bit tricky if you are looking for multiple keys eg in the server loop I am looking for ,"busy" , "OK" and "MyInput" and trying to respond appropriately ,
I think I need to watch for "'Link", "Unlink" and "Error" too. I found it easier to swallow the lot and then pick the good bits out (a bit crude I admit but I'm looking at proof of concept here)
I'm not sure about the "channel" thing looking on the salea all link requests are ch 0 so far ,this is probably due to the CIPCLOSE=0 at the end of the served page, but if that's removed the browser locks up .
I know approx. nothing about http-html and it may stay that way for sanity reasons
managed to capture problem on the logic analyser ,I might get this yet
ps the logicdata.txt file is a salea logic file not text , there's a wish for the forum allow logicdata files
things improve if :-
1. I serve up the webpage in one continuous string
2. I control when the rxbuffer actually accumulates data (it auto triggers on a \r ( 0x10) ) , still needs a 350 byte buffer or 500 bytes for some browsers
the cache toggle signal in this example toggles when a rxbyte is cached and the reply signal when the rxbuff is emptied and parsed for data.
multiple connections still elude me , I find the behaviour of some browsers is quite baffling ,and they lock up the module upon connection .
hitting the refresh button while the current page is still coming causes the esp module to reset and start talking at a different baud rate , I can find no cure for this other than a hardware or a power on reset.
I think I have a workable multi connection model worked out . it doesn't like a few browsers esp some Linux/android ones at this stage its been done in C
if anyone is interested PM me and you can get the ip address and have a go (its probably prudent not make it public) and you're welcome to the code too.
after playing with these things for days I think a multi connection version for pbp is not worth the effort and not necessary for me anyway . I really just want to monitor remote things and maybe tweak a few of their settings on the fly . one connection is amply for most if not all my requirements ,and it will be great just being able to set the time on the solar tracker for daylight savings time changes without having to get on the roof and plug the laptop into the tracker
a header like thiswhere yyy = refresh rate in seconds and xxx is the number of bytes in your page (the header not included) is a good thingHTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: close\r\nRefresh: yyy\r\nContent-Length: xxx\r\n\r\n
The AT+CIPCLOSE,NN is no required when you do this , although multiconnections are even more problematic a single user connection is more robust
ps this is a header not a <heading>
FYI for those of us that remember teletype which required a CR & LF in any order, these devices do not work that way.
You MUST send CR LF (10,13) in the correct order to work consistently. 10,13 will *sometimes* work, but not always.
according to the http://www.electrodragon.com/w/Wi07c web site since firmware 0.92 the terminator is \r\n previously was \n\r.
\r\n has worked for all my ebay supplied esp2866's but the firmware needed updating for a decent result to be achievable
ps
cr=13=\r
lf=10=\n
Last edited by richard; - 30th December 2014 at 09:44. Reason: ps
I have what might be a really stupid question.
Is it possible (and if it is then how) to send serial data from one wifi module to an other when they are both connected to the same wifi router?
I would like to remove some cables in a rs-485 network and replace then with uart wifi solution. I just dont know where to start.... well I have a wifi router :-) and the modules and lots of PICs and programmers . Does anyone know?
you may not even need a router the esp modules can also act a access point . I have not tried that sort of comms yet but there are examples around on the web using TCP/UDP packets , or you could try TELNET mode . I think telnet is the closest match to what you wantIs it possible (and if it is then how) to send serial data from one wifi module to an other when they are both connected to the same wifi router?
True, but I need to assign an IP to the module and I can not see any AT command for that ... and I really would like to have static IP so each module always had the same number even when the system is re-booted.
How else do we know who is on the other end of the net?
if you do a AT+CIFSR you get two ip addresses the first is the modules ap address the second the dhcp address from your router , question is the first ip address identical on all modules ,maybe they can network that way. " silicon chip" magazine had an article on using these modules as ap's and assigning addresses to other devices using that ap , but I can find no mention of assigning the ap address anywhere . maybe you do need a router , most routers allow permanent address assignments/reservations (usually nested about ten levels deep in some arcane menu structure) .
I think this site might be interesting for the IoT:
https://thingspeak.com/
After registration you get a free channel for your data to be stored, graphed or used as you want.
Ioannis
True. People have done amazing things with the ESP8266, and uploading to Thingspeak. Also absolves you from having to learn HTML, I guess.
For those yet to discover these, there have been a slew of development utilities for the ESP8266.
And, folks have ported LUA (remember CHDK for Canon point-and-shoots?!), a scripting language to the ESP. The benefit being to be able to use the microcontroller on the module directly to store and execute simple programs. And with its own IO, one wouldnt even need a pic for simple applications.
My favourites are ESPLORER (multi-purpose, works with stock firmware and LUA) and LuaLoader (only for LUA).
Regards,
Anand
These are available from Amazon (some via Prime with free shipping) for about $8. Now, to see if I can talk some dialect of Basic to them.
I bought 5 of these modules for $13.45 plus $2.25 shipping on ebay. I can't wait to start playing with these modules.
"No one is completely worthless. They can always serve as a bad example."
Anonymous
Greetings, Dave!
There is indeed a basic-of-sorts, a scripting language called LUA thats already been ported to the ESP8266.
Makes things much easier, and other folks have developed IDEs to be able to upload/load LUA files directly on the module.
In fact LUA is getting so popular, they have a separate sub-form for LUA at www.esp8266.com
If this generates more interest, I'll post all the LUA related URLs in my record.
Regards,
Anand
Bookmarks