If you can not find this board you can buy other good development boards like:
1. Development board with ESP8266 module and power supply.
2. Battery operated development board
3. Small form factor development board
The parcel contained one ESP201 an SDK Development board and a DHT11 sensor. No cables or power supply. I've ordered two extra ESP201 so I've replaced the faulty one with a good ESP201.
As you can see in the image there are two USBs. The microUSB located on the top right is just for powering the board. The other usb, a type B USB can be used to power the board, and to write firmware to ESP201 flash. The usb to serial on board is a CH340G chip. My win7 didn't complain about it, I was able to write the flash to ESP201.
The only problem is that the transfer was done at 9600 or less (like 5 minute for 200k), after I've modified in the DeviceManager the speed for the port, the transfer rate was increased. But this happened only once, so I gave up using the CH340G chip for now. I've removed the red jumpers and I used my old Prolific USB/serial.
I'll reinstall the drivers for CH340G chip with this one later and I'll see if helps.
ESP201 SDK development board |
Now let's talk about the connections. As you can see the dev board has:
- a relay
- a RGB led
- a white led ( almost under the RGB led which is above the buzeer)
- DHT11
- buzzer
- two switched S2 and S3
- a variable rezistor for ADC ( on the left of relay ) connected to ADC pin.
- a 5v to 3v3 convertor
- a main switch in the right upper corner (this switch is just for ESP201 board I guess, I have the impression that the CH340G is still receiving power even the switch is off).
DIP functionality
On the PCB near the DIP switch there are the values :
- R - should be the RED led from the RGB connected to the IO15 pin. Putting the R DIP to ON will light RED if the GPIO15 is HIGH.
- G - GREEN led from RGB led is connected to IO13. Putting the G DIP to ON will light GREEN if the GPIO13 is HIGH.
- B - BLUE led from RGB led is connected to IO12. Putting the B DIP to ON will light BLUE if the GPIO12 is HIGH
- W - WHITE led located almost under RGB led is connected to the IO14 pin. Putting HIGH on GPIO14 and DIP switch on ON will light the WHITE led
- J - relay pin connected to IO16 ( which is always HIGH - I have no idea why . This behavior and the RED led that is not working can be because I have a bad board or the design for all the boards is wrong. Connecting the IO16 to GND (not recommended) will stop the relay, otherwise it will be ON all the time the J DIP pin is ON.
- B - BUZZER connected to IO5 pin throuch B DIP switch. Having GPIO5 HIGH and B on DIP switch ON will prove that the buzzer is working.
- K1 - I assume is connected to S2
- K2 - I assume is connected to S3.
A schematics on a napkin will look like this one:
Napkin schematics :-) |
And thanks to Scott Snowden and jwbr from http://www.bpower.nl/ there is a complete schematics of the board.
Wifi Module Develop Board 8266 schematics |
On IO4 is connected the DHT11 sensor. I didn't use it because I have a DHT22 which is more accurate.
How to write flash.
1.Power off the board.
2.Keep S2 pressed and power on the board using the switch located in the right top of the board.
3.Now you can write the flash from the ESP201 board.
Conclusions:
It is a very good board, no issues found. If you want a rapid development board you can buy this one.
And the final config will look like in this picture (2 external relays, 2 external LEDs DHT22). Pretty crowded. Breadboard is just for GND.
UPDATE1: See what to do to have access on the GPIO15 ( Red led from RGB) - HERE
UPDATE2: See what to do for controlling the relay connected on the XPD / GPIO16 - HERE
UPDATE3: A IoT plug based on ESP-01 - HERE. A lawn irrigation IoT based on this board is coming soon.
UPDATE4: Now I have a unix cron functionality on my ESP8266 chips.
UPDATE5: MQTT broker running on ESP8266
Hi can you help me with the use of this board via wifi?
ReplyDeleteregards Paolo
Hi Paolo what is the problem. Do you have the board ?
ReplyDeleteyes i have the board! I'm able to connect to its wifi , but how i canon a web service with browser? how i can send commands to boards ?
ReplyDeleteIf you didn't write a new software on the board, and the board has the AT code, you may check first this link http://www.electrodragon.com/w/ESP8266_IoT
ReplyDeleteFor the AT commands you can see the linkhttp://wiki.iteadstudio.com/ESP8266_Serial_WIFI_Module. Also if tou have the latest SDK there is in it a directory name documents where there are manuals for AT commans. Personally I am not using AT commands, I am writing my own software that receive commands from via my broker. I am controlling plugs, security monitor with PIR, irrigation control with relays.
hi,
ReplyDeletei have installed nodemcu firmware but i'm not ready to set pin high !!! can you help me?
Hi Paolo,
ReplyDeleteHi Paolo, Good job! I've didn't work with nodemcu, but take a look on this link http://nodemcu.com/index_en.html#fr_5475f7667976d8501100000f
where there is an example how to work with GPIO on nodemcu
I guess for a led blink the code should be ( IS NOT TESTED)
pin = 2
-- led connected on gpio 2
gpio.mode(pin,gpio.OUTPUT)
gpio.write(pin,gpio.HIGH)
tmr.alarm(0,1000,1,function()
if gpio.read(pin) ==0 then
gpio.write(pin,gpio.HIGH)
else
gpio.write(pin,gpio.LOW)
end
end)
Alternatively you can use the http://myesp8266.blogspot.ro/2015/03/example-blink-led.html but this will be without nodemcu.
Hi tank you for your answer. i'm able with this code to read temperature from dht11 sensor
ReplyDelete-------------------------------------
local moduleName = ...
local M = {}
_G[moduleName] = M
local humidity
local temperature
function M.read(pin)
local checksum
local checksumTest
humidity = 0
temperature = 0
checksum = 0
-- Use Markus Gritsch trick to speed up read/write on GPIO
local gpio_read = gpio.read
local bitStream = {}
for j = 1, 40, 1 do
bitStream[j] = 0
end
local bitlength = 0
-- Step 1: send out start signal to DHT22
gpio.mode(pin, gpio.OUTPUT)
gpio.write(pin, gpio.HIGH)
tmr.delay(100)
gpio.write(pin, gpio.LOW)
tmr.delay(20000)
gpio.write(pin, gpio.HIGH)
gpio.mode(pin, gpio.INPUT)
-- Step 2: DHT22 send response signal
-- bus will always let up eventually, don't bother with timeout
while (gpio_read(pin) == 0 ) do end
local c=0
while (gpio_read(pin) == 1 and c < 500) do c = c + 1 end
-- bus will always let up eventually, don't bother with timeout
while (gpio_read(pin) == 0 ) do end
c=0
while (gpio_read(pin) == 1 and c < 500) do c = c + 1 end
-- Step 3: DHT22 send data
for j = 1, 40, 1 do
while (gpio_read(pin) == 1 and bitlength < 10 ) do
bitlength = bitlength + 1
end
bitStream[j] = bitlength
bitlength = 0
-- bus will always let up eventually, don't bother with timeout
while (gpio_read(pin) == 0) do end
end
hum=" "
tem=" "
chk=" "
--DHT data acquired, process.
for i = 1, 16, 1 do
hum=hum.." "..tostring(bitStream[i])
tem=tem.." "..tostring(bitStream[i+16])
if (bitStream[i] > 3) then
humidity = humidity + 2 ^ (16 - i)
end
if (bitStream[i + 16] > 3) then
temperature = temperature + 2 ^ (16 - i)
end
end
for i = 1, 8, 1 do
chk=chk.." "..tostring(bitStream[i+32])
if (bitStream[i + 32] > 3) then
checksum = checksum + 2 ^ (8 - i)
end
end
checksumTest = (bit.band(humidity, 0xFF) + bit.rshift(humidity, 8) + bit.band(temperature, 0xFF) + bit.rshift(temperature, 8))
checksumTest = bit.band(checksumTest, 0xFF)
if temperature > 0x8000 then
-- convert to negative format
temperature = -(temperature - 0x8000)
end
-- conditions compatible con float point and integer
if (checksumTest - checksum >= 1) or (checksum - checksumTest >= 1) then
humidity = nil
end
--print("checksum ", checksum)
--print("checksumTest ", checksumTest)
--print("humidity - timing of bits ",hum)
--print("temperat - timing of bits ",tem)
--print("checksum - timing of bits ",chk)
end
function M.getTemperature()
return temperature
end
function M.getHumidity()
return humidity
end
return M
------------------------------
and
-----------------------
sensorType="dht11" -- set sensor type dht11 or dht22
PIN = 2 -- data pin, GPIO0
humi=0
temp=0
--load DHT module for read sensor
function ReadDHT()
dht=require("testdht")
dht.read(PIN)
chck=1
h=dht.getHumidity()
t=dht.getTemperature()
if h==nil then h=0 chck=0 end
if sensorType=="dht11"then
humi=h/256
temp=t/256
else
humi=h/10
temp=t/10
end
fare=(temp*9/5+32)
print("Humidity: "..humi.."%")
print("Temperature: "..temp.." deg C")
-- release module
dht=nil
package.loaded["testdht"]=nil
end
ReadDHT()
----------------------------
but when i try to set high any pin i have no response from board. the deep switch work correctly. i don't understand!!! can you test it with me?
Sure, send me an email and will continue discussion over there.
DeleteThanks for the informations provided in yours blog!
ReplyDeleteMy board (the same model as yours) was having trouble too in usb adaptador, I dislocate very carefully the crystal, and she had a significant improvement
Another good link to get some information is the blog
http://scottsnowden.co.uk/?p=393
In my case i install a newest NodeMCU firmware, and use a LuaLoader for the initial tests and some LUA scripts...
http://benlo.com/esp8266/esp8266QuickStart.html
Cool. Let me know about your project with ESP8266 board. Please share with us your findings.
DeleteCan someone explain the DHT22 code. How do I get this to work with the module. I understand the code is in. 2 parts. Does the first one need to be saved as init.lua and the second dht22.
ReplyDeleteUnsure as to the process to make it work.
Thank you in advance
Hi.
ReplyDeleteThere is a bug on this board as the potentiometer can send 3.3V direct to the ADC wich must be 0 - 1.0V.
I have modified the board by cutting a track an soldering a 22k resistor on the underside:
https://dl.dropboxusercontent.com/u/5062915/Duino/ESP8266_modi1.jpg
https://dl.dropboxusercontent.com/u/5062915/Duino/ESP8266_modi2.jpg
https://dl.dropboxusercontent.com/u/5062915/Duino/ESP8266_modi3.jpg
You have right ! Cool finding. I'll modify my board too.
DeleteAccording to Kelly from Espressif ( producer of the ESP8266 chip) the analog input can handle 3.3V.
Delete"Digital and IO Power Supply(Pin 11, Pin 17): 1.8V ~ 3.3V
Analog and PA Power Supply(Pin 1, Pin 3, Pin 4, Pin 29, Pin 30):3.0V ~ 3.6V."
Has anyone found the resolve for GPIO16. LuaLoader says it does not exist???
ReplyDeleteI am using it, but with the C code, not with lua. See http://myesp8266.blogspot.ro/2015/03/esp201-dev-board-one-more-finding-2.html?m=1
Deletehow to flash esp201 for use AT Command ?
ReplyDeletewhat primary baud rate in esp201?
how to connect esp201 to arduino and control led?
thank you
how to flash esp201 for use AT Command ?
ReplyDeletewhat primary baud rate in esp201?
how to connect esp201 to arduino and control led?
thank you
esp201 is having the AT firmware by default. I am using 115K as baud rate. The init is at 75. Why do you need to control a led with arduino when you can do it with esp201 itself ? If you want to connect arduino with ESP connect the serial interfaces together.
ReplyDeleteHi, I have the same board. When I connect load to relays (220v), the relay flikers quickly between on and off a few times when I turn it off, then it turn off. Actually, all the board flickers (rgb led,...). It works as expected without load. Have you idea of the reason? Thanks a lot.
ReplyDeleteWhat is the output current for your power supply ?
ReplyDeleteI tried some power supply, 2A also. Thanks for your reply.
DeleteTry to power the board not through USB connectors, but directly to pins around the ESP201 module. BE SURE THAT YOU ARE USING 3.3V NOT 5V. It is possible that the on board converter (5V to 3.3V) not supplying the current requested by the board and relay. Can you measure the current ?
DeleteI digged better on internet and I found the problem could be the inductive load. The relay has to drive a electric valve (inductive load) and it could give spikes to the board (if there is no snubber). I used a light bulb instead and it works. Thanks! I tested the dht11 holes with ds18b20 (OneWire) and it works.
Deletethanks for the reply!
ReplyDeleteI tried some power supply, even 2A...
I appreciate your great work. Thanks for sharing. Keep me more update in future.
ReplyDeleteCustom neon business signs
Auto insurance led sign
LED business sign
LED writing boards
Great article ! I would buy this board but before I need to know the exact dimensions (height x width x depth) because of the constrains of the project. Could someone send me this infos ?
ReplyDeleteThank you
Dimensions are 95mmx70mmx19mm .
Deletewhat board name and programmer should I choice in Arduino 1.8.2?
ReplyDeleteBoard: Generic 8266 Module, Flash size: 512 (no SPIFFS) , Programmer AVRISP mkII
ReplyDeleteOn my 201 board Mini and Micro USB Boards are in parallel - both can be used for power and communcation.
ReplyDeleteUploading using the USB-Port (Mini or Micro) can be done with my board at 74800 bd, both K1 and K2 have to be ON during power-up for loading. I switch on the board when compile has finished and loading starts. Both switches my be set to OFF after loading has started. If only K1 is set, the board is in boot flash mode - used together with the espressif loader.
ReplyDelete
ReplyDeleteI really enjoyed reading your article. I found this as an informative and interesting post, so i think it is very useful and knowledgeable. I would like to thank you for the effort you have made in writing this article.13 Below