Thursday, December 24, 2015

Beginner's ESP32 guide to getting started

Beginner's ESP32 guide to getting started


Yours truly is one of the lucky 200 to receive an ESP32 for beta testing. The neat little package came few days before Christmas. indeed, Christmas came early! It is a tough call, wrestling with the decision to roast the bird for Christmas eve dinner or to explore the ESP32. The latter won! we shall have chinese takeaways for dinner later.

A little bit of trivia. Back in June15 at MakerFaire Shenzhen, yours truly was sitting in the same row with the real mccoy https://twitter.com/ceo_espressif whom created the ESP8266, listening to the real arduino https://twitter.com/mbanzi giving a keynote on the yet to be released Genuino, and not forgetting yours truly getting his paws on the newly released nodeMCU v1.0 (black) http://shin-ajaran.blogspot.sg/2015/09/stream-iot-... from "zhao zhong 赵总" at a very competitive price.

ESP32 was featured on MAKE, Hackaday, and Adafruit. Do check the reference section for the details. Conventional wisdom assumes ESP32 is going to supersede the hugely successful ESP8266 for IoT application. But yours truly begs to differ. ESP8266 is targeted at the "everything" market, where gazilllions of IoT enabled sensors aka "throwies" are deployed to form an ubiquitous computing framework to collect data on just about anything! A plethora of boards manufacturer have utilized the ESP8266 in their respective iteration of IoT with cloud offerings. Hence the "everything". The ESP32 sports much bigger processing power, more RAM, and most importantly encryption at hardware level. Perfect timing to address the insecurities in the IoT devices sending data in clear text over the network via http or mqtt. ESP8266 is going for USD4 (got it for SGD9 at 2014). Unfortunately, the users (yours truly included) do not have the slightest hint on the price for the ESP32.

Below is a quick summary of the ESP32

Faster WiFi: Wifi has been upgraded to support HT40 speed (150 Mbps)
Bluetooth Low Energy (BLE) and Classic Bluetooth
Dual processor: 2x Tensilica L108 processors clocked at up to 160 MHz
Low Power Mode: deep sleep, etc.....
IO: Capacitive touch, ADCs, DACs, I2C. UART, SPI, SDIO, I2S, RMII, PMW
RAM: 400 KB on-chip RAM
Security for IoT: Hardware accelerated AES and SSL, etc

If you could recall about a year or so when ESP8266 was first released, the lack of proper, consistent, and precise documentation in the English Language has led to many frustrations among the early adopters. Great progress we have witnessed in 2015 for the developments of the ESP83266 by the members of this community. Makers alike, yours truly paid his due diligence in sharing a how-to guide on instructables http://www.instructables.com/id/noobs-guide-to-ESP... to address the inconsistency. This time round with ESP32, the documentations are much better!! Sorry, could not share the documentations now due to confidentiality. Let's wait for the full release straight from the horse's mouth. IMHO the documentations can still be a steep learning curve for the beginner. Furthermore, the QFN -ish packaged ESP32 chip that is fully assembled on a breakout board sports a 1.27mm (50mils) spacing between the pins (pitch) on the supposedly breakout board. It is very intimidating to solder onto the other provided breakout board to make it breadboard friendly. A beta tester has reported on an unfortunate event of damaged ESP32 http://esp32.com/viewtopic.php?f=2&t=41. Another beta tester have used the solder paste + heat gun method https://harizanov.com/2015/12/esp32/

This i'ble is an ongoing process aims at addressing the following

0. prep the ESP32 breakout board for prototyping on a breadboard

1. initial powering up and observations

2. setting up of programming environment + hello world

3. references

Soldering the ESP32 breakout board




parts needed
1. a 200 DegC temperature regulated, very fine tip solder iron, and 0.4mm solder.

2. heat gun. optional. useful if need to remove solder for SMD re-soldering work

3. soldering wick

4. solder flux and applicator

5. PCB vice of some sort

check out the annotations in the picture for a visualization on items needed

methodology

1. Practice some surface mount soldering before committing. yours truly only have 1 eval unit and can't afford to screw it up. If you have soldered ESP-12 and it's breakout board, it is definitely good experience. HIghly recommended to do SMD soldering in a well lit work area.

2. The ESP32 break out board moves around easily on the breakout board for breadboard. A tape of some sort is used to secure it in place. Make sure the pins are aligned properly on the 3 sides. Perhaps some heatsink compound can be applied on the small square on the breakout board for breadboard, and then the ESP32 board aligned on it. The tackiness of the heatsink compound will help to make the ESP32 stay in place.

3. Always ensure the pins are perfectly aligned on the ESP32 board to the breakout board for breadboard that is secured with a PCB vice. Apply solder flux on the soldering surface. If you are right hander, positions the pins to be soldered to be on your right hand side, such that your soldering movement is moving towards the right, bring the melted 0.4mm solder perpendicularly away from the neighbouring pins. 1.27mm spacing can be quite nerve wrecking to solder, and the random thoughts of screwing up is so strong! stay focus!

4. start soldering from the ground pins. Refer to the pin out diagram, there are 3 of them, one on each side of the ESP32 breakout board, and located at a convenient corner. Speaking from yours truly own experience in soldering the ESP32, if one of these is screw up, still have 2 more to go :) Once the 3 ground pins are soldered, the ESP32 should be perfectly aligned and sits securely on the breakout board for breadboard.

5. repeat step3 until all pins are soldered

Examine the solder work


Examine the SMD soldering under a magnifying glass for dry joints. Excess solder is fine as long as it doesn't overflow to neighbouring pins. A smartphone camera with it's magnifying function works well too.

It is recommended to fix the dry joints with another round of soldering.

If there are excess solder onto the neighbouring joints, use the soldering wick and heat it up with the solder iron or hot air gun to remove the excess.

once satisfied with the SMD soldering work, continue to solder the PTH male header pins.

check out the pictures for details

Powering up the ESP32 with CP2102 for the first time





Parts needed

1. CP2102 or any USB to TTL device

2. jumper wires

methodology

1. connect 3V3 and GND from CP2102 to ESP32.

2. connect TX of CP2102 to RX of ESP32, and RX of CP2102 to TX of ESP32

3. EN pin on ESP32 left floating ---> update: check out the next step for wiring a reset button

4. plug in CP2102 to USB port of computer

Observations

At first light, only the CP2102 lights up. yours truly thought he is going to have a piece of bricked ESP32 for Christmas, the thought of it is already depressing. As compared to the ESP8266 that sports a blue and a red LED, The ESP32 does not have any lights to indicate activity??? Upon further probing, under the wireless network of his win8.1, the ESP32 network shows up. what a relief :)

Putty with the setting of 115200 8 N 1 no flowcontrol is used to monitor the serial output of the ESP32 via CP2102. The screenshot here is so much different from Martin's. Not sure why is this so at the moment of writing -> update: check out the next step for wiring a reset button.

Powering up the second time with a reset switch



continuing from the previous step, some modifications to it.

the EN pin on ESP32 is pull high with a 10K resistor, and then grounded via push button switch to reset the ESP32 if asserted. Using putty with the setting of 115200 8 N 1 and no flow control, the same output is acquire as per martin's blog, just by resetting the ESP32 using the newly added push button. refer to picture for the details.

Setting up minicom



yours truly decide to setup minicom on ubuntu14.10 hosted in a virtual machine. Perhaps there is some command can be issued to the ESP32 to give the same output as martin's.

check out the screenshots for the commands and observations.

Still not a single clue of the debug message on the serial comm. Time to RTFM in detail.

Setting up the software enviroment & hello world


place holder for future updates

quick update1: the installation of the cross tool keeps breaking on a u14.04 Server 64bit hosted in a VM on w8.1. still probing around the error messages displayed

quick update2: after fixing some broken dependencies, finally the *.bin are compiled successfully. check out the screenshots. Next, need to figure out what's the functionality of the *.bin compiled from the provided "project_template". Then decides whether to upload to the ESP32 or otherwise. Still finding a way to "backup" the out of the box *.bin in the ESP32. just as an insurance to recover from mistakes.

Reference
MAKE: http://makezine.com/2015/12/09/meet-esp32-new-big-...

Hackaday: https://hackaday.com/2015/12/23/the-esp32-beta-uni...

Adafruit: https://www.youtube.com/watch?v=HCGHb0OVz1s

Martin's : https://harizanov.com/2015/12/esp32/

also on Instructables http://www.instructables.com/id/Beginners-ESP32-Guide-to-Assembly-Testing/

Thank you

thank you for coming thus far.

special thanks to

espressif CEO & reps for the ESP32

Mr.Dorville for the loan of SMD rework soldering station.

Merry Christmas 201

Friday, December 18, 2015

Lightsaber ala over-easy

running short of time to make a lightsaber to bring along to the cinema to watch the latest installation of starwars? fret not. you will make your own lightsaber in about 30 minutes or so and still able to make it in time to rescue princess leia. 
many years back, yours truly have made a DIY lightsaber with a differnt methodology, URL here http://www.instructables.com/id/DIY-light-saber-for/
In this guide, we will be making a lightsaber ala over-easy; we shall address the electromechanics needed to build a lightsaber with surpluses from previous project. The design of the lightsaber holder deserves an i'ble by itself.
lightsaber over-easy is de-constructed as per the following parts needed
1. a diffuser. In this i'ble i have used 5mm OD side glow fiber optics inserted into a 10mm OD acrylic tube.
2. a light source. There are 2 flavours here. one with a 3W blue LED, and the other with a lightsaber holder look-alike torchlight.
3. power supply. 5V from a mobile power bank made with 18650 cells or coin cells.
4. 3D printed holder of some sort to bind the diffuser, the light source, and the power supply.

a 5V USB power bank is used as the power source to turn on a blue 3W LED mounted on a heat sink.
Assuming the forward bias voltage is 3.3v, and ideal current of 350mA, i would need a 4ohm 2W resistor. I only have a 10ohm 2W resistor handy.
to construct the light source, these are the items used
1. small veroboard
2. 1x USB male connector
3. 1x 3W LED (BLUE) mounted on the heatsink, collimator (focus beamacr) is optional
4. 1x 2W 4ohm resistor
5. 1x usb mobile power bank made with 18650 cells
*note: the 3W LED and resistor get hot after several minutes of play.
The force must have led me to discover this lightsaber holder look-alike torch light that was well hidden deep inside the goods cabinet in the local hardware shop.
The acrylic tube inserted with the sideglow fiber optics is connected to the lightsaber holder look-alike torch light with a 3D printed adapter.
Link to the 3D model of the lightsaber adapter herehttps://www.tinkercad.com/things/2pGvKJvmqpj
check out the pictures for a detail description on the assembly


Do or do not, there is no try.


Sunday, November 1, 2015

Maker's IoT Kit for ESP8266 (ESP-01)

Maker's IoT Kit for ESP8266 (ESP-01)

the real McCoy PCB milled on LPKF103


Background
Ah, the beloved ESP8266, so many variants, so many choices, so many different pricing points, the one true chip (read: cheap) that offers internet connectivity to the unplugged. but which one is suitable for me? Since ESP8266's inception, with the debut of the ESP-01, a myriad of ESP8266s'have been released. Starting form ESP-01 to the latest addition that sports ESP12E , and finally the WROOM. The debut started with ESP-01 URL http://shin-ajaran.blogspot.co.id/2014/12/noobs-guide-to-esp8266-with-arduino.html, an U$4 (yours truly got it for S$9 from a local vendor back in 2014) full featured ESP8266 but only 2 I/O the GPIO0 and GPIO2 are break out in the form of the DIP pin package. Along the way, ESP7, ESP12, ESP12E, came by. These ESPes' lack of one thing in common to facilitate a maker to rapid prototype an IoT idea: a daughter board that breaks out the I/O (breadboard friendly or otherwise) to control stuff over the internet URL http://shin-ajaran.blogspot.co.id/2015/01/internet-controlled-ac-appliances-with.html , and at the minimum comes with a 3V3 voltage regulator. Finally the holy grail of all ESP, the NodeMCU URL http://shin-ajaran.blogspot.co.id/2015/09/stream-iot-sensor-data-esp8266-nodemcu.html, a full featured ESP8266 ESP12E with 10 I/Os break out conveniently and just need to be plugged on a breakboard to be usable. A standalone NodeMCU is easily USD9 per pop. One might argue the entry pricing point is cheap, but one has to remember the price excludes the accessories. The "shield" for nodeMCU can be as costly as the nodeMCU itself.


Intro
For a maker that wants to bring the prototype built with ESP8266 out of the breadboard environment, into a deployment environment, the said prototype has to be fully robust, and survive a few hard knocks in the "real world". An ESP8266 planted on a breadboard with loads of interconnected wire as if it is a prop straight out of a Hollywood sci-fi bomb is not going to cut it. A (poor) maker is left with not much of a choice but have to solder it on a stripboard, and hopefully the VC will fancy it. IoT enabled devices are on the rage when this come to the economies of scale; A prototype demo during an elevator pitch with a gazillion IoT devices definitely going to pack a heavy punch as compared to a demo with a lone IoT device. oh wait, solder a gazillion prototypes to test out the economics of scale for IoT?!



The Maker's IoT Kit for ESP8266 (ESP-01) has a unique standpoint point in the landscape of ESP8266 enabled IoT devices. It has a very low entry barrier on the technical department. It addresses the total cost of ownership pricing issue with the choice of ESP8266 ESP-01, and the need for a minimum of 1 input and 1 output to be interfaced with sensor & actuator, just to be useful enough to control things over the Internet. Essentially, Maker's IoT Kit is a break out board (BoB) for ESP8266 ESP-01 that fully embrace the design "philosophy" behind ESP-01: Low cost, testing of IoT ideas by rapid prototyping with ESP-01, and deployable en masse. The beauty of Maker's IoT Kit: it address the choice to remain free from obligations & restrictions; there is no tie in to a specific set of I/O board manufacturers. Approx U$2 for ESP-01, U$0.5 for The Maker's IoT Kit, total cost of an IoT device that supports 1 input and 1 output can be as low as U$2.5. Surely any research grant handed to yours truly will enable many many IoT devices to be deployed.

Prior to the release of ArduinoIDE-for-ESP8266, an Arduino Uno or Arduino Mega is needed to piggy back the ESP8266. To the layman, an Arduino IDE is definitely much "friendlier" compared to Writing a custom firmware using espresif SDK on Eclipse. The technical barrier to get started with the SDK is somewhat complex to the naked untrained eye. Ah, and not forgetting the constant swapping the ESP-01 boards between programming mode and prototype testing mode; compiling, and downloading the compiled code to ESP8266 with CP2102, and then transplant IO board to interface with the sensors. In hindsight, the Maker's IoT Kit for ESP8266 (ESP-01) was born out of regenerative iterating prototypes to quickly test out IoT ideas.

Methodology
The design principles of The Maker's IoT Kit for ESP8266 (ESP-01) are listed in the following.

The Maker's IoT Kit is both a programmer board with the use of CP2102 as the USB serial, and also a prototyping board. To change between the programming mode and the prototyping mode is done With the help of a jumper. The PCB is designed as a single layer PCB on purpose, lowering the entry barrier for it to be easily reproduced by any PCB milling machine available in workshops, FabLabs or maker spaces. It coveniently breaks out GPIO0 and GPIO2 for the ESP8266 ESP-01. GPIO2 is used for 3V3 input device, and GPIO0 is used for 3v3 output device. By design, a 5V output is available on GPIO0, and this is done with additional NPN transistor.  Assuming the prototype and source code behaves according to specifications, then the ESP8266 ESP-01 can be left as it is on the Maker's IoT Kit to be deployed in the field and to collect data of interest. Power supply to the prototypes built with ESP8266 has been a constant headache, especially deployed outdoors. This Maker's IoT Kit sports 3 possible inputs for power supply. first the 5V from the CP2102. this mode is only recommended for programming the ESP8266, but not for deployment due to the current required by ESP8266. Next, a 2pin molex pin for power supply from DC adapter. The voltage from DC adapter varies from 5v to 12v, as long as it is within the specs of the LM317 voltage regulator. Lastly, power supply via USB B port, this opens a much wider selection ranging from power banks to mobile phone charger. A diode is added to the USB B port, due to an experience of magic smoke stemming from a bad USB cables powering my precious. no brownie points for guessing where the cables orginated from.

Learning from collective wisdom of ESP8266 enthusiasts, the peculiarity of ESP8266 GPIO0 turning high during bootup is addressed by the NPN transistor.

first iteration

fifth iteration

powered via laptop USB port to CP2102 to down load the program into ESP-01

powered via USB B port connected to powerbank

powered by 4x AA battery connected to 2pin molex pin


use this URL to download the gerber file https://www.dropbox.com/s/hww0v930wmmmrzy/gerber.rar?dl=0

operations
First, download the gerber and mill the Maker's IoT Kit for ESP8266 (ESP-01). Solder the necessary electronic components on the milled PCB w.r.t the schematic posted here. plug in a CP2102, and the ESP-01 on the daughter board, take special precautions on the polarity and orientation of the pin out. Set the jumper "p-mode" to programming mode (short the left and middle pin). Plug the CP2102 end to a computer equipped with Arduino-ESP8266. The steps are quite similar to this guide http://shin-ajaran.blogspot.sg/2015/09/stream-iot-sensor-data-esp8266-nodemcu.html, just take note in the board to be selected is "ESP8266 Generic". compile and download source code to ESP-01.
Once download is completed, unplug from computer; then unplug CP2102 from daughter board. Set the jumper "p-mode" to operation mode (short the right and middle pin), plug in a power supply of choice, and you are good to IoT your way to the cloud.


Observation
So, what to make with it?

for starters yours truly have tested the The Maker's IoT Kit with ESP8266 (ESP-01) with a DS18B20 temperature probe as input, LED as output. The temperature data is sent wirelessly to thingspeak, and the LED simulates the turning on/off of a load in-place of a Solid State Relay (SSR). Yes, as of what you have guessed, yours truly is going to up the ante to build a sous vide that is controllable over the internet via wireless network. In short, the cooking temperature can be changed, monitored and recorded over the Internet during sousvide cooking. Think along the line of you browsing popular sous vide cooking website, and there is a "cook" button next to your favourite dish. Magically, your sous vide meal will be prepared when you are back from work. of course, some devine intervention of acquiring the edibles, packing it into a vacuum bag, and lowering it into a sous vide water bath equipped with ESP01 is required.  An earlier iteration URL http://shin-ajaran.blogspot.co.id/2015/01/iot-streaming-temperature-data-acquired.html 


conclusion
in this post, we only address the hardware part of a ESP8266 enabled IoT devices, and this is hardly half of the entire story told. The parts missing are communication stacks with MQTT, a cloud computing solution to act as the collector and aggregator of data, and of course, the holy grail of all this IoT craze: Predictive analytics from the data collected. An earlier iteration with thingspeak http://shin-ajaran.blogspot.co.id/2015/02/setting-up-iot-server-with-thingspeak.html


nodered on Ubuntu to be used with ESP8266 






code here:



special thanks to my padawans jia yi, william tan, bryan, and etc for strip board, manning the PCB milling machine, sourcing for milling bits and cheap copper boards, and testing.

Thursday, October 1, 2015

makeup for 3D printed parts

yes, among the many things yours truly could do: 3D prints, 3D scans, CNC mill; but his lack in the department of aesthetics is severe. Same as everything pretty, makeup must be applied for aesthetics reasons.

If you recalled many full moons ago, yours truly http://shin-ajaran.blogspot.sg/2015/03/seal-deal-digitally-fabricated-personal.html  created a personal seal using only digital fabrication techniques.  The 3D printer of choice is still the ultimaker2, materials of choice is PLA, and 3D prints at 100micron layer height. 100 micron seems to be pushing the envelop for desktop based 3D printers. This choice of layer height and without makeup is good enough to ornate yours truly office. Assuming the 3D printed object need to be used to handle other materials with "fine" particles as the by product of the material, it falls short. The grooves between each layer of prints could possibly habours dirt, or worst, sickness inducing bacteria. Hence, there were some suggestions on the Internet on how to do post treatment to PLA 3D printed parts  aka makeup to achieve water tight, smooth finish, and the pinnacle of all post treatment/makeup: food safe grade, i.e food debris will not be caught in-between the layers and prohibits bacteria growth on 3D printed parts.

The suggestions for post treatment aka makeup for 3D printed parts. Some suggested to use food grade PLA, but the grooves between the layers are still a nuisance to human health, and boon to bacteria. Sandblasting on the 3D printed parts to get a smooth matt finish, doable, but access to machine might be prohibitive. Coating the 3D printed parts with food safe resin, definitely doable. your truly have not got the chance to do any of the above, yet.

So, the adventure begins at bangkok mini maker faire and yours truly chance upon "solution X aka solution 555" (5 in thai language rhymes with ha) for post treatment of 3D printed parts, by one of the makers presented there.


Saw the makeup demo on PLA 3D printed parts, and was quite intrigue at the speed of the post production of 3D printed parts; yours truly can't wait to get his paws on them. unfortunately, he is such as cheapo and bought the cheapest air ticket without check-in luggage. Of course you know the airport security is very tight and will not allow liquid > 100ml per bottle on board. tough luck. yours truly struck a deal with native partners, co sharing 400g and 500g bottles of "solution 555" into smaller bottles < 100ml . yours truly could not sleep, due to the fact of the access to 120ml worth of solution 555 makes him keep waking up at night. Yes, yours truly is an impulsive buyer, buying things that caught the cat's curiosity. He walked away with the last set of solution 555 kit available for sale on that rainy day, without means to bring it back to aiur.

Social capital plays a big part in how yours truly manage the issue of getting it back without paying extra for check-in luggage, nor breaking any laws. The rest was history.

the full kit: 500g of grey and 400g of white. yes, instructions is in thai language.

The first victim to be applied with solution 555 makeup. 3D printed lion head from a previous project: ultimaker2, 100micron layer height, PLA
closeup: sorry for the lousy picture quality. yours truly used a 2year old phone camera for this.
mix 3 part from grey bottle and 1 part from white bottle. gettin ready to makeup with the mixture.
can you tell which is with makeup and which is without makeup?
ooops... yours trully missed a spot.

conclusion: money well spent on "solution 555". after the first layer of makeup, the visible lines along the layers smoothed, it has a glossy look, and definitely would be better with more layers of makeup. The 3D printed part earned the permission to be relocated in the house from his missus. 



Wednesday, September 9, 2015

Stream IoT sensor data ESP8266 NodeMCU v1.0 ESP12-E with Arduino IDE

Stream IoT sensor data ESP8266 NodeMCU v1.0 ESP12-E with Arduino IDE
Streaming sensor data using ESP8266 NodeMCU v1.0 ESP12-E with Arduino IDE to Thingspeak

Sorry for the long hiatus, yours truly was busy trying to put bacon on the table, and also playing catch-up with the increasing rent.

Back in late 2014 and early 2015, your truly came across this nifty WiFi Chip ESP8266 (the ESP-01) and have to battle among the inconsistent documentations from various sources. For the spur moment, he documented his frustrations (findings) as an instruction guide ESP8266 guide http://shin-ajaran.blogspot.sg/2014/12/noobs-guide-to-esp8266-with-arduino.html or on instructables ESP8266 guide http://www.instructables.com/id/noobs-guide-to-ESP8266-with-Arduino-Mega-2560-or-U/ . In due course, the ESP8266 WiFi has opened a whole new window of opportunity for him and his padawans.

The caveat at the moment of writing in 2014/2015 was to find a way to eliminate the “middle” MCU, the well-loved Arduino Uno (or Arduino Mega). It doesn’t make sense to forgo the ESP8266 that sports a 32bit CPU by using an Arduino Uno that sports an 8bit CPU for computations. Over the several months of dec14 to sept15, several IDE flavours/methodologies was released on the Internet to use standalone ESP8266, e.g to use ESP8266 and the available IO pins sans the Arduino Uno or Arduino Mega. From retrospective view, the cost of deploying an IoT framework to collect data has gone down drastically with just the standalone ESP8266 alone as the sentinel device.  The flavours of standalone mode are ESP8266 Lua, and ESP8266 Arduino IDE. Check out the reference section for details.

After two Maker Faires (Maker Faire Singapore, and Maker Faire Shenzhen), one Tan Kah Kee Young Inventors Award which students won a Merit Award, one SUTD Design & Technology Contest which students won third prize and merit prize, one IDC Robocon which students represented Singapore, one IEEE AIYEHUM 2015 which student shortlisted as finalist, and countless submissions later; the hiatus is over. In Maker Faire Shenzhen, yours truly rub shoulders with several big names in the industry; perhaps the mostly-male playing field (for the record there were females; @juliewatai @sexycyborg, etc were surrounded by hordes of testosterone raging males armed with cameras of various sizes firing away, while your truly observe with amusement from afar) and the maker-ish aura projected by yours truly. One of them was Zhao Zong (赵总) of AI Thinker, the manufacturer of NodeMCU (a breakout version of the ESP8266 ESP12-E and CP2102, with out of the box support for LUA). Yours truly landed his salty porky hands on a bunch of NodeMCU v1.0 at very competitive price (友情价).

In this write up, yours truly is introducing the use of NodeMCU v1.0 (black) with ESP8266 Arduino IDE 1.6.5. There are lots of write up on the NodeMCU v0.9 or ESP8266 ESP-01 and variants with LUA, but information is scarce for NodeMCU v1.0 and ESP8266 Arduino IDE. This post is also a superseding update of an earlier how-to post of using ESP8266 ESP-01 with Arduino Mega and the temperature data is streamed to thingspeak http://shin-ajaran.blogspot.sg/2015/01/iot-streaming-temperature-data-acquired.html .

Parts needed
Hardware
1x DS18B20 temperature sensor with 4.7k resistor across vcc and data pin
1x NodeMCU v1.0 (black)
1x Access Point Connected to Internet

Software:
Source code available at the footer
Thingspeak account setup, and API key acquired.

Methodology
Caveat: the physical pin2 on NodeMCU v1.0 does not corresponds to pin D2 in Arduino IDE. Check out the URL in the references.
1.      It is assumed that the Access Point is able to access to internet, and a thingspeak account is set up accordingly.
2.      Connect 3.3v and gnd from NodeMCU v1.0 to DS18B20 respectively.
3.      Connect data from DS18B20 to pin4 on NodeMCU v1.0 (in code, it will be used as pin2)
4.      Connect microUSB to NodeMCU v1.0




















5.      Launch ESP8266 Arduino IDE, Select Tools -> Board -> NodeMCU v1.0; and ensure parameters are correct. Refer to screenshot. 























6.      Ensure the libraries required are installed, Select Sketch -> Include Libraries -> Manage Libraries or add zip library
7.      Program the source code to read DS18B20 using one wire protocol and the acquired data to be sent to thingspeak.
8.      Compile & upload source code to NodeMCU v1.0 

9.      Observe data update of sensor data on thingspeak.














Observation
Having done the above, congratulations on sending sendor data using NodeMCU v1.0 with Arduino IDE. Now the biggest question comes begging, does this ESP8266 Arduino IDE supports all the fancy pansy libraries supported on vanilla Arduino IDE?? That is for us to discover and update on the git hub page.

Implications
Internet enable any of your creations realised on Arduino Uno (or mega) have become even simpler than previously thought. Yours truly traversed the era of sending serial data, packing data for Ethernet, WiFly, ZigBee, and now ESP8266. ESP8266 is very convenient to use.

What’s next?
Alright, time to internet enable my sous vide setup: temperature sensor DS18B20 data streamed over the Internet to a cloud computing facility to compute PID and then output the control data over the internet to control the state of the solid state relay that in turn controls the AC appliance. Earlier yours truly have controlled a IoT lamp from a virtual machine http://shin-ajaran.blogspot.sg/2015/01/internet-controlled-ac-appliances-with.html, now is to connect the dots.

Reference

thingspeak data update iframe



source code

Friday, July 10, 2015

Maker Faire Singapore 2015 SP Makers FabLab@SP Makerspace@SP booth


check out our booth at Maker Faire Singapore 2015!

Look out for the laser cut acrylic signage we made with attiny85 ws2812


some of the maker inspired projects you will see at maker faire singapore:
techno mohawk v2.0 http://shin-ajaran.blogspot.sg/2015/07/techno-mohawk-v20-arduino-attiny85-rgb.html

attiny85 ws2812 spectrum analyzer http://shin-ajaran.blogspot.sg/2015/07/attiny85-ws2812-fastled-electret.html

attiny85 ws2812 fastled electret spectrum analyzer

maker faire singapore 2015 sound to light gizmos using attiny85 ws2812 fastled spectrum analyzer












check out the video here: https://www.dropbox.com/sc/nsjunacap3cr12w/AADT2sgzaEYcHgDU00clG0aNa

source code: here

Techno mohawk v2.0 Arduino ATtiny85 RGB LED Spectrum Analyzer

techno mohawk v2.0 for maker faire singapore 2015.
made a maker hat for maker faire singapore 2015.


























for more details about how to make it, refer to my blog post http://shin-ajaran.blogspot.sg/2014/11/attiny85-spectrum-analyzer-for-music-to.html