tag:blogger.com,1999:blog-21377432837160159092024-03-13T23:49:18.705+08:00shinajaranAlways two there are, a master and an apprentice. -yodasjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.comBlogger199125tag:blogger.com,1999:blog-2137743283716015909.post-37839783319760823502019-12-31T12:48:00.002+08:002019-12-31T12:48:33.702+08:00quick summary 2019[oct18] Achieved AWS Certified Solutions Architect Professional<br />
<br />
[oct18] Supervised 2 DCPE students in International Programming Contest and won Special Prize at Japan.<br />
<br />
[oct18] Supervised 3 DASE students in SP Group Cogito Ideation Competition and won 2nd runner up award.<br />
<br />
[oct18] Supervised multidisciplinary team team DCPE, DEEE, DID in AWS Cloud Technology Hackathon and won 1st runner up award and Visitor's Choice Award at MBSCC.<br />
<br />
[oct18] Secured AWS to feature DCPE student for PR launched on youtube for AWS Educate<br />
https://www.youtube.com/watch?v=dprIkNit_F0&t=92 <br />
<br />
[Oct18] Mentored 1FT student for International Science Enterprise Challenge 2018 “National Round”. Student (and team) won First Prize.<br />
<br />
[nov18] Inducted into AWS Academy Leadership Council (global)<br />
<br />
[nov18] Supervised 2 DASE students in Samsung Solve For Tomorrow Challenge and selected as top10 finalist.<br />
<br />
[Nov18] Coached 1FT students and was featured on Straits Times “Singapore Poly students' tech solutions to help Parkinson's disease patients and the elderly”. <br />
<br />
[dec18] Supervised multidisciplinary EA teams consist of DEEE DARE DME in SUTD Design Odyssey;1 team won Best Team Award and one student won Best Speaker Award<br />
<br />
[Jan19] Trained students for WSS Cloud Computing. 1 student emerged with Medallion of Excellence.<br />
<br />
[Feb19] Supervised 3 DCPE students for Airbus-SSTA HADR Challenge. Student team won second prize, and was invited to exhibit at GSTC 2019.<br />
<br />
[mar19] Secured sponsorship from AWS for Overseas Study Trip for EEE students to Taylor’s University at Kuala Lumpur, Malaysia, to show & tell the solution developed in hackathon to an audience of about 1000 students from various IHLs.<br />
<br />
[mar19]<span style="white-space: pre;"> </span>Supervised student in internship project and he was sponsored by EOS, NTU to technical exchange at NASA JPL, California, USA.<br />
<br />
[mar19] ECG and mentored PTN students and were awarded SP Model Student Award 2019<br />
<br />
[mar19] Supervised five SP teams and two were shortlisted as top 5 among 70 teams based in Singapore in AWS Hackday 2019 Singapore.<br />
<br />
[Apr19] Invited to be speaker and spoke at AWS Summit Singapore (Student Track).<br />
<br />
[Apr19] Supervised EA 2FT students in AWS DeepRacer League Singapore, defended their pole positions #4, #6, #45 in a gruesome race on the track with their Reinforced Learning (RL) Autonomous Ground Vehicle (AGV).<br />
<br />
[Apr19] Mentored student for university scholarship, was offered NUS EE with Engineering Scholars Programme, and promptly accepted.<br />
<br />
[May19] Mentored student for university scholarship, was offered SUTD Global Distinguished Scholarship, and promptly accepted.<br />
<br />
[May19] Invited to judge Tech For Good Coding Competitions in SG: Digital Wonderland.<br />
<br />
[May19] Inducted into AWS Educate Cloud Ambassador Leadership Council, one of the 18 members globally, amongst peer from MIT, Havard. https://aws.amazon.com/blogs/publicsector/aws-educate-announces-its-inaugural-cloud-ambassador-cohort/<br />
<br />
[May19] Invited to speak at Fostering a Growth Mindset (GM) culture in the Faculty -Planning for Continuous Learning for professors from King Mongkut's University Thailand North Bangkok (KMUTNB).This is a The Growth Mindset Train-the-Trainer programme organized by LSC<br />
<br />
[May19] Mentored studentfor TFI SUTD STEP Aviation Forum, team won First Prize.<br />
<br />
[May19] Industry Visit to Google Data Center.<br />
<br />
[May19] Mentored and prepared students for PSC Scholarship. A student accepted PSC Engineering Scholarship.<br />
<br />
[Jun19] Secured Grab Singapore for student internship in AY1920S2<br />
<br />
[Jun19] Mentored student for SUTD-Google Computer Science Summer Institute Extension Program (CSSIx), a two weeks of intensive, interactive, hands-on and fun programme at SUTD’s campus and Google’s Singapore office, and a project.<br />
<br />
[Jun19] Supervised 2 teams of students in Tan Kah Kee Young Inventor Award. One team won commendation prize, another team shortlisted as finalist.<br />
[Jul19] Supervised SP EEE student teams in CodeXtremeApps Hackathon Open Category, one team of EEE EA students won First Prize.<br />
<br />
[Jul19] Supervised EEE EA student teams in Engineering Innovation Challenge, one team of EEE EA students won First Runner-up Prize.<br />
<br />
[Jul19] Supervised EA student teams and shortlisted among top 20 finalist teams in IKEA Young Designer Award (YDA).<br />
<br />
[Jul19] Recruited EEE and SoC students for WSS CC 2020, and started training sessions.<br />
<br />
[Jul19] Mentored student and secured internship with Grab Singapore as Software Engineering Intern in AY1920S1.<br />
<br />
[Sep19] Supervised students in Build On Singapore hackathon. Student teams won Champion, First Runner up, and Viewer's Choice Prizes.<br />
<br />
[Sep19] Student teams featured on News Portal https://straitstimes.com/singapore/education/youth-draw-from-their-own-experiences-to-find-solutions-in-cross-institution<br />
<br />
[Oct19] Supervised students in Hack Asia hackathon. Student teams won Second Place Prize.<br />
<br />
[Nov19] Supervised students in SmartPoly hackathon. Student teams won First Runner up, and Second Runner Up Prizes.<br />
<br />
[Dec19] Supervised students in Smart Nation + U hackathon. Student teams won Champion, First Runner up, and Special Mentioned Prizes.<br />
<br />
[Dec19] Industry visit to Grab Internship open housesjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com3tag:blogger.com,1999:blog-2137743283716015909.post-88022936510320860362018-12-21T14:23:00.003+08:002018-12-21T14:23:51.351+08:00end of 2018<br />
[jan18] Mentored MDP students offered SUTD Global Distinguished Scholarship, SUTD Merit Scholarships.<br />
[jan18] Mentored FYP student offered and accepted SUTD Global Merit Scholarship.<br />
[jan18] Coached 2 students (DCPE1FT, DIT2FT) passed exam for AWS certified Solutions Architect Associate (SAA)<br />
[jan18] Supervised FYP groups Smart Club House won Gold, and JAE chatbot won commendation award respectively in Smart Poly FYP Challenge.<br />
[jan18] winner FYP projects exhibited at SmartFest2018.<br />
[jan18] Supervised EA students won Airbus - SSTA HADR Challenge 2018<br />
[feb18] Mentored EA students that won Airbus - SSTA HADR Challenge 2018 demo their solution to Minister S Iswaran at Global Space & Technology Conference<br />
[feb18] Coached EA students featured by Straits Times and CNA http://www.straitstimes.com/singapore/singapore-to-develop-small-satellite-capabilities<br />
[mar18] Supervised EA MDP students won coveted Best Business Pitching prize in Social Innovation Project Closing Showcase, SUTD.<br />
[apr18] Supervised EA MDP students won Commendation Award in Tan Kah Kee Young Inventors Award<br />
[apr18] Supervised EA 1FT students won 2nd runner up in Cat-E, Singapore Amazing Flying Machine Competition.<br />
[jun18] Supervised EA students to Make4ThePlanet (M4TP) Hackathon<br />
[jun18] Supervised DCPE DEEE DVMD students to AWS Hackday Hackathon<br />
[jun18] Supervised DCPE DEEE DVMD students to Bosch Hackathon and won First Prize.<br />
[jul18] Coached students that won 1st prize Bosch Hackathon to pitch at Boschville.<br />
[jul18] Managed a sponsored overseas trip for EA students to International Capstone Design Project (ICDP), Korea.<br />
[jul18] Invited as judge for CodeXtremeApps (CXA) hackathon<br />
[jul18] Supervised DCPE DEEE DVMD DIT students to CXA Hackathon, 3 teams selected as Finalist of 8 teams, 1 team won First Prize.<br />
[jul18] Mentored PTN tutee and received DSO Scholarship.<br />
[aug18] Supervised EA students won Merit Award in LTA Smart Bus Challenge.<br />
[aug18] Featured on news article on TNP https://www.tnp.sg/news/singapore/cultivating-growth-mindset<br />
[sep18] Managed a sponsored overseas trip for DIT students to pitch to CTO motorola at Chicago, USA.<br />
[sep18] Supervised DASE1FT students and selected as finalist and won 2nd runner up in COGITO 2018.<br />
[sep18] Supervised students, Merit Award, SUSS-Microsoft Analytics Hackathon<br />
[oct18] Supervised DCPE students, Special Prize, International Programming Contest (Procon)<br />
[oct18] Supervised DCPEDEEE DVMD students, First Runner Up Award, and Visitor's Choice Award, AWS Cloud Technology Hackathonsjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com2tag:blogger.com,1999:blog-2137743283716015909.post-23876858512446082322017-12-25T17:59:00.001+08:002017-12-25T18:01:58.315+08:00quick summary 2017dear readers,
as some of you guessed yours truly went off the grid from the inherent lack of updates for the last year.
Sorry for the hiatus at this blogsphere. yours truly was busy making ends meet in real life.
<br><br>
2017 was BRILLIANT!!!! His dedication to making the ends meet were rewarded with victories.
<br><br>
the following list is a shameless plug extracted from his resume:
<br><br>
2017 Supervisor, Gold award for “Smart Club House”, and Commendation award for “Smart JAE ChatBot with NCS ChatConnect”, SmartPoly FYP Challenge
<br><br>
2017 Supervisor, “MakeSense1”, special prize, International Programming Contest (ProCon), Japan.
<br><br>
2017 Mentor, second prize, Cisco APJ Global Problem Solver Challenge
<br><br>
2017 Mentor, “Honourable Mention” prizes, AWS IoT APP Challenge
<br><br>
2017 Mentor, First Prize in student category, AWS Hackday, IoT hackathon
<br><br>
2017 Mentor, second runner up, Bosch BoT Hackathon
<br><br>
2017 Mentor, student startup “MakerFoundry LLP”, product development “SPEEEduino”
<br><br>
2017 Speaker, and panel member, AWS Singapore Summit, AWS Education User group
<br><br>
2017 Speaker, Maker Conference Singapore
<br><br>
2017 Organizer, ASEAN100 hackathon, sponsored by AWS, Bosch, Cisco.
<br><br>
sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com4tag:blogger.com,1999:blog-2137743283716015909.post-80562322819273826362017-06-21T20:33:00.001+08:002017-06-21T20:33:50.138+08:00Infrared Goggles an Urban Armoury SeriesThe objective of Infrared goggles is to protect privacy of a private citizen in this social media frenzied world where one could be accidentally included in the massive occurrence of picture and video taking in public places and then sharing on social media.
<div class="separator" style="clear: both; text-align: center;"><a href="https://cdn.instructables.com/F8H/0VVC/J44FR9QD/F8H0VVCJ44FR9QD.LARGE.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://cdn.instructables.com/F8H/0VVC/J44FR9QD/F8H0VVCJ44FR9QD.LARGE.jpg" width="400" height="239" data-original-width="800" data-original-height="478" /></a></div>
<br>
True, one could argue that why not wear a sunglasses or oversized sunnies? The matter of discussion here is for the private citizen to remain connected and socially included in the community, maintaining eye contact with another human being during a conversation while being shielded from preying lenses. On the contrary, sunglasses abstracted such functions and hence the less emphatic approach.
The crux of this i'ble is based on the concept of human eyes are incapable of perceiving infrared light at the spectrum of 700nm to 1000nm, while modern lenses and picture taking devices are able to captured it.
More details here https://www.eyespypro.com/pages/Understanding-IR-Illuminiation.html
While wearing this Infrared Goggles, the humans engaged in the conversation will be oblivious to the urban armour, but image acquisition devices will perceived light.
It is very simple to construct Infrared Googles.
One would need some Infrared LED strip, a clear type eye protection PPE, some hot glue, and adequate power supply.
In this i'ble, an 850nm Infrared LED strip is used with a 59mm clear type eye protection PPE. power supply is LiFePO4 battery pack that supplies 12V with a capacity of 2800mAH.
<div class="separator" style="clear: both; text-align: center;"><a href="https://cdn.instructables.com/FEL/ZKV1/J44FR9QN/FELZKV1J44FR9QN.LARGE.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://cdn.instructables.com/FEL/ZKV1/J44FR9QN/FELZKV1J44FR9QN.LARGE.jpg"
width="400" height="262" data-original-width="800" data-original-height="524" /></a></div>
<br>
this post is available on instructables <a href="http://www.instructables.com/id/Infrared-Googles-an-Urban-Armoury-Series/">http://www.instructables.com/id/Infrared-Googles-an-Urban-Armoury-Series/</a>sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com1tag:blogger.com,1999:blog-2137743283716015909.post-33919425546952257472016-12-25T13:53:00.000+08:002017-01-07T13:54:50.143+08:00SPEEEduino v1.0 and the VooDoo sequence<div class="separator" style="clear: both; text-align: center;">
<a href="https://cdn.instructables.com/FWU/BOMT/IX6FULFC/FWUBOMTIX6FULFC.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="https://cdn.instructables.com/FWU/BOMT/IX6FULFC/FWUBOMTIX6FULFC.MEDIUM.jpg" width="320" /></a></div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
<br /></div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
At that moment in time, yours truly only have 1x working Arduino Uno lying around, and definitely could not do Arduino as ISP to burn bootloader into a new ATMega328p on the SPEEEduino. So he transplanted the ATMega328p what is in working condition from the Arduino Uno into SPEEEduino, assumes it will work straight out of the box, and start to program away. Fate took an unfortunate turn when he tries to download the code into SPEEEduino transplanted with ATMega328p.</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
yours truly was greeted with the legendary<br />"<br /><span style="font-weight: 700;">avrdude: stk500_recv(): programmer is not responding</span></div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
<span style="font-weight: 700;">avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x47</span></div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
"</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
he thought he had a batch of bricked PCB, but upon closer examinations he noticed the LED on pin13 blinks according to the example code downloaded via the Arduino Uno to verify the functionality of ATMega328p before the transplant.</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
Then he verified the following connection via continuity test</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
DTR->pin1(MCU)->C3=ok</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
tx(CP2102)->rx pin2(MCU)=ok</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
rx(CP2102->tx pin3(MCU)=ok</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
VCC(CP2102)->pin7(MCU)=ok</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
GND(CP2102)->pin8(MCU)=ok</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
Computing Environment</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
1. Win8.1, Arduino IDE 1.6.7. SPEEEduino with transplanted ATMega832p gave this error of avrdude: stk500_recv(): programmer is not responding</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
2. Ubuntu14, Arduino IDE 1.6.8. SPEEEduino with transplanted ATMega832p works out of the box in this environment.</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
A little consolation prize is needed to keep troubleshooting to solve the mystery of not working in windows environment, but works in linux environment.</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
If you landed on this page looking for solution for the legendary error of avrdude: stk500_recv(): programmer is not responding or avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x47 look no further than the next step where yours truly outlined the voodoo sequence. If you are interested to know the troubleshooting sequence, look further.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://cdn.instructables.com/F0O/ZSUE/IX6FULDT/F0OZSUEIX6FULDT.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="254" src="https://cdn.instructables.com/F0O/ZSUE/IX6FULDT/F0OZSUEIX6FULDT.MEDIUM.jpg" width="320" /></a></div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
SPEEEduino is connected with CP2102 on a valid com port on a lenovo laptop running windows8.1 and Arduino IDE 1.5.6 r2 with verbose mode turn on upload via File->preferences</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
when you are about to press the "upload" button to compile and download the hex to the board, press and hold the "reset" button on SPEEEduino. upon seeing the first handshake "<span style="font-weight: 700;">avrdude: Send: 0 [30] [20] </span>", release the reset button. you will now able to program the ATMega328p. refer to the screenshot for details.</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
this voodoo sequence seems to be counter intuitive, because Arduino Bootloader supports auto reset feature with a 0.1uF cap and 10K resistor is connected between the DTR line to the RST on ATMega328.</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
yours truly took a 2 days scraping the Internet forum posts, and experimenting on many laptops to be able to download the hex successfully.</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
this voodoo sequence is the workaround for the legendary error of avrdude: stk500_recv(): programmer is not responding or avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x0a</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
Good Riddance</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
Post is also available on <a href="http://www.instructables.com/id/SPEEEduino-a-Christmas-Special/">http://www.instructables.com/id/SPEEEduino-a-Christmas-Special/</a></div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
<br /></div>
sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com1tag:blogger.com,1999:blog-2137743283716015909.post-46584628686443408322016-10-07T19:59:00.001+08:002016-10-07T21:02:53.416+08:00ESP32 With Arduino IDE<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
Christmas 2015 yours truly was one of the lucky few in the world to receive the<a href="http://www.instructables.com/id/Beginners-ESP32-Guide-to-Assembly-Testing/" rel="nofollow" style="color: #e86c00; text-decoration: none;">ESP32</a> for experimenting. The board was not assembled, and it was quite intimidating to assemble the board with just a fine tip solder. The experiment is documented at this URL: <a href="http://www.instructables.com/id/Beginners-ESP32-Guide-to-Assembly-Testing/" rel="nofollow" style="color: #e86c00; text-decoration: none;">http://www.instructables.com/id/Beginners-ESP32-Gu...</a></div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
This afternoon, yours truly came across the <a href="https://github.com/espressif/arduino-esp32" rel="nofollow" style="color: #e86c00; text-decoration: none;">Arduino Core for ESP32</a> on github URL here: <a href="https://github.com/espressif/arduino-esp32" rel="nofollow" style="color: #e86c00; text-decoration: none;">https://github.com/espressif/arduino-esp32 </a>. Very exited on this discovery, he was eager to experiment with it, but only when he is done with the consultations. If his STM serves him well, he recalled witnessing the exponential growth of IoT devices made with ESP8266 posted on the Internet, the ESP8266 board wars by the various board makers, professionals and amateurs alike. The growth was particular intriguing, especially after the ESP8266 development environment was ported from the regular GCC and make, to arduino IDE. He might relive the growth of ESP32, now with Arduino port.</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
After installing, the settings seems to be prim and proper. Check out the screenshot for details</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
The following was the setup environment for ESP32 with Arduino IDE</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
arduino IDE 1.6.5</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
Windows8</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
Python2.7<br />
<br />
<br />
<div style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin-bottom: 10px; margin-top: 3px;">
[UPDATE] The following setup that works: Ubuntu14.04 x86 desktop, Arduino IDE 1.6.12, python2.7<br />
<br />
<br />
There is a gotcha moment; caveat emptor. [UPDATE] : works with Ubuntu14.04</div>
<div style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin-bottom: 10px; margin-top: 3px;">
This is a work in progress post. [UPDATE] : check out new screenshots</div>
</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
The instructions given in github is crystal clear<br />
<a href="https://github.com/espressif/arduino-esp32" rel="nofollow" style="color: #e86c00; text-decoration: none;">https://github.com/espressif/arduino-esp32 </a>download the necessary files.</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
Here comes the fun bit, from the writeup it seems to be running off *nix. But since yours truly office laptop only comes with windows, he proceed nonetheless. Administrator rights needed to run the get.py</div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
check out the screenshots for the details on win8.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://cdn.instructables.com/FKM/KDVD/ITZM4MTD/FKMKDVDITZM4MTD.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="228" src="https://cdn.instructables.com/FKM/KDVD/ITZM4MTD/FKMKDVDITZM4MTD.MEDIUM.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://cdn.instructables.com/FKF/1KTU/ITZM4MTP/FKF1KTUITZM4MTP.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="128" src="https://cdn.instructables.com/FKF/1KTU/ITZM4MTP/FKF1KTUITZM4MTP.MEDIUM.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://cdn.instructables.com/FD8/CNN3/ITZM4MU2/FD8CNN3ITZM4MU2.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="347" src="https://cdn.instructables.com/FD8/CNN3/ITZM4MU2/FD8CNN3ITZM4MU2.MEDIUM.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="background-color: white; color: #333333; font-family: "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 17px; text-align: left;">Yours truly tried to compile the blink example with ESP32, but was greeted with this error.</span><span style="background-color: white; color: #333333; font-family: "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 17px;">On hindsight, perhaps it is better to install in the following environment</span></div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
Ubuntu14 or any other *nix distros</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://cdn.instructables.com/FVG/H574/ITZM4MU3/FVGH574ITZM4MU3.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="47" src="https://cdn.instructables.com/FVG/H574/ITZM4MU3/FVGH574ITZM4MU3.MEDIUM.jpg" width="400" /></a></div>
<div style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; margin-bottom: 10px; margin-top: 3px;">
<br />
Ubuntu14.04 x86<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.instructables.com/files/deriv/FHS/MLD1/ITZM4ROC/FHSMLD1ITZM4ROC.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.instructables.com/files/deriv/FHS/MLD1/ITZM4ROC/FHSMLD1ITZM4ROC.MEDIUM.jpg" height="400" width="373" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.instructables.com/files/deriv/F38/ZS0R/ITZM4RO7/F38ZS0RITZM4RO7.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.instructables.com/files/deriv/F38/ZS0R/ITZM4RO7/F38ZS0RITZM4RO7.MEDIUM.jpg" height="123" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.instructables.com/files/deriv/FTO/3PRZ/ITZM4RNE/FTO3PRZITZM4RNE.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.instructables.com/files/deriv/FTO/3PRZ/ITZM4RNE/FTO3PRZITZM4RNE.MEDIUM.jpg" height="257" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br /></div>
sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com3tag:blogger.com,1999:blog-2137743283716015909.post-37912187504898837762016-06-27T14:46:00.002+08:002016-08-31T20:07:36.411+08:00Maker Faire Singapore 2016<span style="font-family: "calibri" , sans-serif; font-size: 11pt;"><span style="font-size: 14.6667px;">Maker Faire Singapore 2016</span></span><br />
<span style="font-family: "calibri" , sans-serif; font-size: 11pt;"><span style="font-size: 14.6667px;"><br /></span></span>
<span style="font-family: "calibri" , sans-serif;"><span style="font-size: 14.6667px;">Efforts in Maker community and education recognized by Singapore Ministers. </span></span><br />
<span style="font-family: "calibri" , sans-serif; font-size: 11pt;"><span style="font-size: 14.6667px;"><br /></span><span style="font-size: 11pt;">24Jun16, Received </span></span><span style="font-family: "calibri" , sans-serif; font-size: 14.6667px;">“Certificate of Recognition for 5 years of continuous support & enthusiasm” from </span><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">Dr. Vivian Balakrishnan Minister of Foreign Affairs.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/MFS16/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="323" src="https://dl.dropboxusercontent.com/u/13507878/MFS16/1.PNG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<span style="font-family: "calibri" , sans-serif; font-size: 11pt;">25Jun16 Received </span><span style="font-family: "calibri" , sans-serif; font-size: 14.6667px;">“Certificate of Appreciation” from </span><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">Dr. Yaacob Ibrahim Minister of Communications and Information</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/MFS16/0.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://dl.dropboxusercontent.com/u/13507878/MFS16/0.PNG" width="320" /></a></div>
<span style="font-family: "calibri" , sans-serif; font-size: 11pt;"><br /><span style="font-size: 14.6667px;">https://dl.dropboxusercontent.com/u/13507878/flex300-1.svg </span></span>sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com2tag:blogger.com,1999:blog-2137743283716015909.post-25694062809029590712016-06-22T00:00:00.000+08:002016-06-27T14:43:41.807+08:00Fab Lab Fab Academy Final Project Software Defined Cooking with ESP8266 Fab Lab Fab Academy Final Project Software Defined Cooking with ESP8266<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://archive.fabacademy.org/archives/2016/fablabsingapore/students/100/presentation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://archive.fabacademy.org/archives/2016/fablabsingapore/students/100/presentation.png" height="358" width="640" /></a></div>
<br />
<h1 style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 36px; font-weight: 500; line-height: 1.1; margin: 20px 0px 10px;">
Software Defined Cooking with ESP8266</h1>
<span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">There is an idiom: the proof of the pudding is in eating it. Same applies to the successful implementation of Software Defined Cooking with ESP8266; the proof is in the egg and eating it. </span><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">The objective of this final project to be submitted in due course for completion of Fab Academy 2016 is to design and fabricate an apparatus that display & control the temperature of a heated water bath (Sous Vide) over the Internet. DS18B20 acquire the temperature of the water bath, ESP8266 send this data via HTTP to thingspeak, and via MQTT to Node-Red server hosted on Cloud or VM. PID controller is defined in Node-Red with a set point. Output of PID is send via MQTT to ESP8266 to control the CPC1966B connected with heater.</span><br />
<span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;"><br /></span>
<h1 style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 36px; font-weight: 500; line-height: 1.1; margin: 20px 0px 10px;">
Background</h1>
<span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">Ever since humans discovered fire to cook food. The desire to have tasty food hot, and ready to serve without significant labour contributed to the preparation is insatiable. Progressively over different period of time, the labour required to prepare food is contracted to another person whether specialized or otherwise. By logical extension of the idea of the labour is contracted out to prepare food for humans, here comes the robot cook. Hence the notion of Software Defined Cooking meant for robots or home appliances have to be defined. An industry framework is needed to define protocols, communication standards, recipe, dispensing of food items, quality assurance and etc for Software Defined Cooking. Through observations on demonstrations in CES over the years, the software defined cooking appliances meant for smart kitchens are implemented in product silos by the respective vendors. Appliances that do not interact with other makes of smart appliances, and human owners are nothing close to the ideals of a Software Defined Cooking. </span><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">Some vendors have disrupted the market by inventing heating mechanism meant for cooking that is controllable by software. FreeScale have invented a “solid-state, high-power output, high-operating temperature radio frequency (RF) transmitter technology” to address software defined cooking. This article</span><a href="https://medium.com/@TIRIAS_Research/software-defined-cooking-sdc-goes-solid-state-63809609ceb5#.qi0i5jtzp" style="background-color: white; box-sizing: border-box; color: #337ab7; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; text-decoration: none;">here</a><span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;"> explains the FreeScale RF solution and addresses the following issues: </span><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">1. “Heating is difficult to control with both thermal (heat) and temporal (time) precision. Heating elements take time to heat, are frequently not calibrated to a precisely measured numeric temperature scale, and then take time to cool to lower temperatures.”; </span><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">2. “It is extremely difficult to track the “doneness” state of the inside of food with precision.” </span><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">3. “The feedback loop between sensing doneness and adjusting temperature has been performed mostly by human observation, judgement and labor throughout recorded human history.” </span><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">The article above also outline three features of a Software Defined products </span><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">A. “Gather and analyze sensor data.” </span><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">B. ”Maintain peak performance and health based on sensor data analysis (feedback loop).” </span><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">C. “Communicate their analysis with other software-define products and cloud services for continuous improvement.” Besides the highlights of the 3 issues and 3 features, the article mentioned above and the product video of </span><a href="http://www.nxp.com/video/sage-freescales-vision-of-an-intelligent-connected-rf-cooking-appliance:RF-SAGE-VIDEO" style="background-color: white; box-sizing: border-box; color: #337ab7; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; text-decoration: none;">RFSage</a><span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">, an innovative appliance utilizing the FreeScale RF technology did not communicate enough details for a layman to deduce whether the RF mentioned is used for both transferring heat and communicating cooking data between different make of smart appliances in the category of software defined cooking.</span><br />
<h1 style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 36px; font-weight: 500; line-height: 1.1; margin: 20px 0px 10px;">
Proposal</h1>
<span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">A little more historical background. Back in 2011, I chanced upon sous vide while clicking away on cooking videos over the Internet, and saw a demo of thermal circulator in a chemistry lab, I have never looked back since. The essence of sous vide cooking is to maintain a water bath at precise temperature, with food placed in food safe bags submerged into this precise temperature controlled water bath. We started off with a store bought </span><a href="http://shin-ajaran.blogspot.sg/2012/05/diy-sous-vide.html" style="background-color: white; box-sizing: border-box; color: #337ab7; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; text-decoration: none;">DIY kit </a><span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">that cost quite an arm and leg. We even went to the extent to make </span><a href="http://www.instructables.com/id/Sous-vide-Arduino-Shield/" style="background-color: white; box-sizing: border-box; color: #337ab7; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; text-decoration: none;">sous vide shield </a><span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">for Arduino. At that point in time, a dedicated sous vide supreme is out of the equation, it has to give way to tuition fee, rent, transport, and food. </span><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">Sous vide solved two out of the three issues highlighted earlier. Doneness of the inside of the food is precise with sous vide, thus the inexperienced novice is spared from the labourious sensing doneness and adjusting temperature to prevent overcooking; hopefully stop food wasting from bad cooks. The other pressing issue is the calibration between heat transfer and time needed for heat to transfer is solved partially with some sous vide implementations. Some amateurish sous vide controller uses “bang-bang” algorithm for open feedback loop system, which is bad, really bad and hardly precise at the required set point. Some comes with PID controller, in which a controller for continuously adjusting the heat and time components in a closed feedback loop system. </span><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><br style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;" /><span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">The three features mentioned above speaks of the cloud computing itself without mentioning the name. A server in the cloud will collect and collate information send by the sensors, perform computations on the data collected, transmit control to the actuators, and lastly communicate to user through the use of visualizations. </span><br />
<span style="background-color: white; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;"><br /></span>
<h1 style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 36px; font-weight: 500; line-height: 1.1; margin: 20px 0px 10px;">
Full implementation here: <a href="http://archive.fabacademy.org/archives/2016/fablabsingapore/students/100/project04.html">http://archive.fabacademy.org/archives/2016/fablabsingapore/students/100/project04.html</a></h1>
sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com2tag:blogger.com,1999:blog-2137743283716015909.post-19413988568640506542016-01-22T14:07:00.000+08:002016-04-13T14:11:16.236+08:00Fab Academy16<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Fab_Lab_logo.svg/2000px-Fab_Lab_logo.svg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Fab_Lab_logo.svg/2000px-Fab_Lab_logo.svg.png" width="166" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.fablabs.io/">https://www.fablabs.io/</a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://new.academy.fablabbcn.org/wp-content/uploads/2014/01/fab-academy2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://new.academy.fablabbcn.org/wp-content/uploads/2014/01/fab-academy2.jpg" height="142" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://cba.mit.edu/events/03.05.fablab/fablab-dyd02.pdf">http://cba.mit.edu/events/03.05.fablab/fablab-dyd02.pdf</a> "This paper presents the composition and
the rationale behind the creation of a network of fabrication
laboratories, FAB LABs, whose mission is to provide
concrete examples that would lay the foundation for a new
framework for this reconceptualization. "</div>
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://digablefabrication.files.wordpress.com/2014/11/manifesto_fablab-milano1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="449" src="https://digablefabrication.files.wordpress.com/2014/11/manifesto_fablab-milano1.jpg" width="640" /></a></div>
<br />
weekly builds and guides at <a href="http://archive.fabacademy.org/archives/2016/fablabsingapore/students/100/index.html">http://archive.fabacademy.org/archives/2016/fablabsingapore/students/100/index.html</a><br />
<br />sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com1tag:blogger.com,1999:blog-2137743283716015909.post-19159338303133724352016-01-02T18:58:00.002+08:002017-05-01T13:01:17.092+08:00Sous Vide sur Internet: Node-RED, MQTT, ESP8266 Sous Vide sur Internet: Node-RED, MQTT, ESP8266<br />
<br />
Cooking over the Internet has always been my pet peeve. That is when I could marry two of my best loves, maybe into a product that pays. Sous Vide sur Internet, is in French, loosely translated to sous vide over the Internet. well, it doesn't takes much of my agar-logic to get the translation.<br />
<br />
Just a little bit of trivia:<br />
Back in 2010, 2 of my padawans are working on a Final Year Project making a web2.0 smart fridge that tracks item in the fridge by QR code follow by suggesting a youtube cooking video based on the items in the smart fridge. When DIY Sous Vide is all the rage on the Internet, I have my own fair share of experiments with sous vide with a myriad of implementations. Back in 2012, one of my padawans took it up the challenge to build a sous vide shield for arduino <a href="http://shin-ajaran.blogspot.sg/2012/12/coming-to-end-of-2012.html">http://shin-ajaran.blogspot.sg/2012/12/coming-to-end-of-2012.html</a>.<br />
<br />
Fast forward to 2016, The notion of Internet Enabling dumb devices aka household appliances is all in the rage. The release of ESP8266, a very cheap (USD4 at Dec2014) WiFi enabled microcontroller has kick start a whole plethora of IoT devices fuelling the development of devices once seem dumb. The <a href="http://shin-ajaran.blogspot.sg/2015/11/makers-iot-kit-for-esp8266-esp-01.html" target="_blank">Maker's IoT Kit</a> and the detail step by step guide on how to use ESP8266, maker IoT Kit break out board with arduino IDE located here <a href="http://shin-ajaran.blogspot.sg/2015/11/makers-iot-kit-for-esp8266-esp-01.html">http://shin-ajaran.blogspot.sg/2015/11/makers-iot-kit-for-esp8266-esp-01.html</a> is one such enabler to make dumb terminals smart by connecting to the Internet.<br />
<br />
Having the ESP8266, the <a href="http://shin-ajaran.blogspot.sg/2015/11/makers-iot-kit-for-esp8266-esp-01.html" target="_blank">Maker's IoT Kit for ESP8266</a> is only one third of the whole picture of the end to end IoT solution.<br />
<br />
The complete end to end IoT solution will have 3 parts,<br />
1. the Internet Enabled device with sensors<br />
2. the computing and data aggregation platform aka cloud computing<br />
3. the visualization over the Internet<br />
<br />
Earlier, the Internet Enabled sensor was addressed in this post in detail <a href="http://shin-ajaran.blogspot.sg/2015/11/makers-iot-kit-for-esp8266-esp-01.html">http://shin-ajaran.blogspot.sg/2015/11/makers-iot-kit-for-esp8266-esp-01.html</a>. The visualization of data was addressed in an earlier post too <a href="http://shin-ajaran.blogspot.sg/2015/09/stream-iot-sensor-data-esp8266-nodemcu.html">http://shin-ajaran.blogspot.sg/2015/09/stream-iot-sensor-data-esp8266-nodemcu.html</a>, via thingspeak.<br />
<br />
The computing and data aggregation platform is the gist of this guide. In the earlier post, the protocol of chose to stream data is via HTTP. There are pros & cons associated with this protocol in the implementation of IoT end to end solution, this post is not going to delve deep into the discussion of it. Assuming there are 1000000 IoT devices, quite chatty (in terms of data transmission) talking to a data aggregation server (assume to have 1 server in this discussion) concurrently via HTTP. The server might run into a resource squeeze after N-th connection. Hence MQTT comes to the rescue. MQTT is an "archaic" protocol (invented in 1999 by scientist working for IBM), partially revived by engineers working in Facebook for the real-time messaging function <a href="https://www.facebook.com/notes/facebook-engineering/building-facebook-messenger/10150259350998920/">https://www.facebook.com/notes/facebook-engineering/building-facebook-messenger/10150259350998920/</a> . MQTT follows a PubSub model, where sensors subscribed to a "topic" to listen to control command or publish to a "topic" to stream data to the data aggregation server. <br />
<br />
<h3>
Some readers informed me of the broken URL to screenshots hosted off Dropbox. It seems Dropbox no longer support hosting resources directly with unique URL. Please download directly instead <a href="https://www.dropbox.com/sh/q0iclluewfx49fs/AAASt4Uw8GB4VgEuHGQPEJEta?dl=0">https://www.dropbox.com/sh/q0iclluewfx49fs/AAASt4Uw8GB4VgEuHGQPEJEta?dl=0</a></h3>
In this guide, several software components are needed, on top of the hardware component <a href="http://shin-ajaran.blogspot.sg/2015/11/makers-iot-kit-for-esp8266-esp-01.html" target="_blank">Maker's IoT Kit for ESP8266</a>.<br />
<br />
Software needed<br />
1. Ubuntu Server 14.04 on a physical computer or virtual machine on the cloud<br />
2. MQTT protocol, the broker used here is mosquito MQTT http://mosquitto.org/<br />
3. Node-RED as the data aggregation platform http://nodered.org/<br />
<br />
The instructions to install the software on ubuntu is at the footer of this guide.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-TaCD8MgbDu8AH3EK1-bGrtH847261fzSGllypr3p678npn2GFw2hWbVKQQIlmErH-c_o8LVQAoRWlnEw3M3anv3HRFe4dQsROk7ukP1JTGsOhfJ6mz7lYnrOOWkrVXxl0Jj2FYmG5Q4m/s1600/0.0.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-TaCD8MgbDu8AH3EK1-bGrtH847261fzSGllypr3p678npn2GFw2hWbVKQQIlmErH-c_o8LVQAoRWlnEw3M3anv3HRFe4dQsROk7ukP1JTGsOhfJ6mz7lYnrOOWkrVXxl0Jj2FYmG5Q4m/s400/0.0.PNG" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
In the diagram above, the putty window on the right is the MQTT client, publishing data "data2" to the MQTT broker which is the putty window on the left. Node-RED is in the background, capturing the data transmission from MQTT client and MQTT broker, and it gives a visual on the "wiring" of the end to end IoT solution,</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodered/0.1.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="395" src="https://dl.dropboxusercontent.com/u/13507878/img/nodered/0.1.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
The Diagram follows the same arrangement as the previous, but with the addition of an ESP8266 enabled with temperature sensor to stream temperature data to thingspeak via HTTP, and to Node-RED via MQTT. We now have an end to end IoT Solution. but wait, it is unidirectional. the data only travels from the IoT sensor to the data aggregation server, but not the other way round. control needs to be issued from a server, just to complete the bidirectional communication possibly for an IoT solution.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodered/0.2.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="465" src="https://dl.dropboxusercontent.com/u/13507878/img/nodered/0.2.PNG" width="640" /></a></div>
<div class="" style="clear: both; text-align: center;">
Setting up the corresponding MQTT broker on Node-RED is very easy. simply drag the MQTT icon from the left hand side, and place it in the "canvas". edit the MQTT broker parameters accordingly.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodered/3.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="242" src="https://dl.dropboxusercontent.com/u/13507878/img/nodered/3.PNG" width="640" /></a></div>
<br />
Node-RED provides a visualization of IoT device, data aggregation, and it's connection, MQTT would function too. The above diagram describes the MQTT broker and the MQTT client in action.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodered/0.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="401" src="https://dl.dropboxusercontent.com/u/13507878/img/nodered/0.PNG" width="640" /></a></div>
<div class="" style="clear: both; text-align: center;">
The diagram above describes the Node-Red in operation, and the step by step guide to install additional "nodes" aka functionality to Node-Red</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodered/1.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="640" src="https://dl.dropboxusercontent.com/u/13507878/img/nodered/1.PNG" width="208" /></a></div>
<div class="" style="clear: both; text-align: center;">
The diagram above describes the successful addition of a PID controller for Node-RED.</div>
<div class="" style="clear: both; text-align: center;">
Are you thinking of what i am thinking? YES, cooking sous vide over Internet!! IoT sensor send the temperature of the cooking to Node-Red via MQTT. The computation of the PID based on the receive temperature data and the set point is offloaded from the ESP8266 to the Node-RED that is hosted on a virtual machine with much more muscle power as compared relatively. The delta, i.e turning on the heating element is the command to be sent from the computing platform to the ESP8266 IoT sensor that controls the relay. </div>
<div class="" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodered/mem.PNG" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="154" src="https://dl.dropboxusercontent.com/u/13507878/img/nodered/mem.PNG" width="640" /></a></div>
<div class="" style="clear: both; text-align: center;">
The source code for the ESP8266 temperature control and relay control is available at the footer. The above diagram describes the detail of the upload.<br />
<br />
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodered/12219441_1192858500729398_8544082780896237372_n.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="360" src="https://dl.dropboxusercontent.com/u/13507878/img/nodered/12219441_1192858500729398_8544082780896237372_n.jpg" width="640" /></a><br />
<br />
The above diagram describes the wiring of the Maker's IoT kit for ESP8266 to a multiplug modified with a solid state relay. The step by step guide of making the SSR plug is here <a href="http://shin-ajaran.blogspot.sg/2014/11/iot-inspired-multi-plug-modified-with.html">http://shin-ajaran.blogspot.sg/2014/11/iot-inspired-multi-plug-modified-with.html</a> or here <a href="http://www.instructables.com/id/IoT-inspired-multiplug-using-SSR/">http://www.instructables.com/id/IoT-inspired-multiplug-using-SSR/</a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodered/12219441_1192858500729398_8544082780896237372_n.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a></div>
<div class="separator" style="clear: both; text-align: center;">
The following diagrams describe the testing of the Sous Vide over Internet setup with Maker's IoT Kit for ESP8266, MQTT, and Node-RED </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodered/pid0.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="496" src="https://dl.dropboxusercontent.com/u/13507878/img/nodered/pid0.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
data aggregation and computation on Node-RED, data visualization on thingspeak</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodered/pid1.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="512" src="https://dl.dropboxusercontent.com/u/13507878/img/nodered/pid1.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
testing of the set point at 30degC</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodered/pid2PNG.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="484" src="https://dl.dropboxusercontent.com/u/13507878/img/nodered/pid2PNG.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
tuning parameters for PID</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodered/pid3.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="312" src="https://dl.dropboxusercontent.com/u/13507878/img/nodered/pid3.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
comparing the data output on serial from ESP8266, and Node-RED</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodered/pid4.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="312" src="https://dl.dropboxusercontent.com/u/13507878/img/nodered/pid4.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
asasdfa</div>
<div class="separator" style="clear: both; text-align: left;">
ESP8266 MQTT and ThingSpeak code here: <script src="https://gist.github.com/teos0009/844dd1da7e457004a32e.js"></script></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Node-RED setup here: <script src="https://gist.github.com/teos0009/8f424acb2352045c65f9.js"></script></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodered/3.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com1tag:blogger.com,1999:blog-2137743283716015909.post-44618368404607541602015-12-24T18:30:00.000+08:002015-12-25T17:25:55.586+08:00Beginner's ESP32 guide to getting startedBeginner's ESP32 guide to getting started<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FC9/E2NO/IIJKYKKH/FC9E2NOIIJKYKKH.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FC9/E2NO/IIJKYKKH/FC9E2NOIIJKYKKH.MEDIUM.jpg" height="225" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FJC/LQS2/IIJKYJ0P/FJCLQS2IIJKYJ0P.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FJC/LQS2/IIJKYJ0P/FJCLQS2IIJKYJ0P.MEDIUM.jpg" height="225" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Below is a quick summary of the ESP32<br />
<br />
Faster WiFi: Wifi has been upgraded to support HT40 speed (150 Mbps)<br />
Bluetooth Low Energy (BLE) and Classic Bluetooth<br />
Dual processor: 2x Tensilica L108 processors clocked at up to 160 MHz<br />
Low Power Mode: deep sleep, etc.....<br />
IO: Capacitive touch, ADCs, DACs, I2C. UART, SPI, SDIO, I2S, RMII, PMW<br />
RAM: 400 KB on-chip RAM<br />
Security for IoT: Hardware accelerated AES and SSL, etc<br />
<br />
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/<br />
<br />
This i'ble is an ongoing process aims at addressing the following<br />
<br />
0. prep the ESP32 breakout board for prototyping on a breadboard<br />
<br />
1. initial powering up and observations<br />
<br />
2. setting up of programming environment + hello world<br />
<br />
3. references<br />
<br />
Soldering the ESP32 breakout board<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FPI/8BM1/IIJKYKC6/FPI8BM1IIJKYKC6.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FPI/8BM1/IIJKYKC6/FPI8BM1IIJKYKC6.MEDIUM.jpg" height="225" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FSC/V61N/IIJKYK60/FSCV61NIIJKYK60.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FSC/V61N/IIJKYK60/FSCV61NIIJKYK60.MEDIUM.jpg" height="225" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FU5/MSA9/IIJKYJLI/FU5MSA9IIJKYJLI.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FU5/MSA9/IIJKYJLI/FU5MSA9IIJKYJLI.MEDIUM.jpg" height="225" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
parts needed<br />
1. a 200 DegC temperature regulated, very fine tip solder iron, and 0.4mm solder.<br />
<br />
2. heat gun. optional. useful if need to remove solder for SMD re-soldering work<br />
<br />
3. soldering wick<br />
<br />
4. solder flux and applicator<br />
<br />
5. PCB vice of some sort<br />
<br />
check out the annotations in the picture for a visualization on items needed<br />
<br />
methodology<br />
<br />
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.<br />
<br />
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.<br />
<br />
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!<br />
<br />
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.<br />
<br />
5. repeat step3 until all pins are soldered<br />
<br />
Examine the solder work<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FWQ/8A2T/IIJKYIQH/FWQ8A2TIIJKYIQH.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FWQ/8A2T/IIJKYIQH/FWQ8A2TIIJKYIQH.MEDIUM.jpg" height="225" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FSD/214J/IIJKYKLM/FSD214JIIJKYKLM.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FSD/214J/IIJKYKLM/FSD214JIIJKYKLM.MEDIUM.jpg" height="225" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
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.<br />
<br />
It is recommended to fix the dry joints with another round of soldering.<br />
<br />
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.<br />
<br />
once satisfied with the SMD soldering work, continue to solder the PTH male header pins.<br />
<br />
check out the pictures for details<br /><br />Powering up the ESP32 with CP2102 for the first time<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FMJ/TT3T/IIJKYK5Z/FMJTT3TIIJKYK5Z.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FMJ/TT3T/IIJKYK5Z/FMJTT3TIIJKYK5Z.MEDIUM.jpg" height="225" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/F4P/KS68/IIJKYIA4/F4PKS68IIJKYIA4.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/F4P/KS68/IIJKYIA4/F4PKS68IIJKYIA4.MEDIUM.jpg" height="185" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
<br />
Parts needed<br />
<br />
1. CP2102 or any USB to TTL device<br />
<br />
2. jumper wires<br />
<br />
methodology<br />
<br />
1. connect 3V3 and GND from CP2102 to ESP32.<br />
<br />
2. connect TX of CP2102 to RX of ESP32, and RX of CP2102 to TX of ESP32<br />
<br />
3. EN pin on ESP32 left floating ---> update: check out the next step for wiring a reset button<br />
<br />
4. plug in CP2102 to USB port of computer<br />
<br />
Observations<br />
<br />
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 :)<br />
<br />
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.<br /><br />Powering up the second time with a reset switch<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FPL/GOP3/IIJKZ0ZG/FPLGOP3IIJKZ0ZG.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FPL/GOP3/IIJKZ0ZG/FPLGOP3IIJKZ0ZG.MEDIUM.jpg" height="225" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FTA/TGO4/IIJKZ0ZH/FTATGO4IIJKZ0ZH.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FTA/TGO4/IIJKZ0ZH/FTATGO4IIJKZ0ZH.MEDIUM.jpg" height="400" width="366" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
continuing from the previous step, some modifications to it.<br />
<br />
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.<br />
<br />
Setting up minicom<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/F2L/VKM7/IIJKYJGE/F2LVKM7IIJKYJGE.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/F2L/VKM7/IIJKYJGE/F2LVKM7IIJKYJGE.MEDIUM.jpg" height="236" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/F5P/4AB8/IIJKYJ0T/F5P4AB8IIJKYJ0T.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/F5P/4AB8/IIJKYJ0T/F5P4AB8IIJKYJ0T.MEDIUM.jpg" height="332" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
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.<br />
<br />
check out the screenshots for the commands and observations.<br />
<br />
Still not a single clue of the debug message on the serial comm. Time to RTFM in detail.<br />
<br />
Setting up the software enviroment & hello world<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/F2G/T44K/IIKKAEAQ/F2GT44KIIKKAEAQ.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/F2G/T44K/IIKKAEAQ/F2GT44KIIKKAEAQ.MEDIUM.jpg" height="220" width="400" /></a></div>
<br />
place holder for future updates<br />
<br />
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<br />
<br />
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.<br />
<br />
Reference<br />
MAKE: http://makezine.com/2015/12/09/meet-esp32-new-big-...<br />
<br />
Hackaday: https://hackaday.com/2015/12/23/the-esp32-beta-uni...<br />
<br />
Adafruit: https://www.youtube.com/watch?v=HCGHb0OVz1s<br />
<br />
Martin's : https://harizanov.com/2015/12/esp32/<br />
<br />also on Instructables <a href="http://www.instructables.com/id/Beginners-ESP32-Guide-to-Assembly-Testing/">http://www.instructables.com/id/Beginners-ESP32-Guide-to-Assembly-Testing/</a><br /><br />
Thank you<br />
<br />
thank you for coming thus far.<br />
<br />
special thanks to<br />
<br />
espressif CEO & reps for the ESP32<br />
<br />
Mr.Dorville for the loan of SMD rework soldering station.<br />
<br />
Merry Christmas 201sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com2tag:blogger.com,1999:blog-2137743283716015909.post-76085216985159169492015-12-18T21:36:00.000+08:002015-12-18T21:36:08.892+08:00Lightsaber ala over-easy<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
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. </div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
many years back, yours truly have made a DIY lightsaber with a differnt methodology, URL here <a href="http://www.instructables.com/id/DIY-light-saber-for/" rel="nofollow" style="color: #e86c00; text-decoration: none;">http://www.instructables.com/id/DIY-light-saber-for/</a></div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
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.</div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
lightsaber over-easy is de-constructed as per the following parts needed</div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
1. a diffuser. In this i'ble i have used 5mm OD side glow fiber optics inserted into a 10mm OD acrylic tube.</div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
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.</div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
3. power supply. 5V from a mobile power bank made with 18650 cells or coin cells.</div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
4. 3D printed holder of some sort to bind the diffuser, the light source, and the power supply.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FX0/YJPW/IIBLJY8M/FX0YJPWIIBLJY8M.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FX0/YJPW/IIBLJY8M/FX0YJPWIIBLJY8M.MEDIUM.jpg" height="640" width="352" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/F6H/LJDQ/IIBLJY8G/F6HLJDQIIBLJY8G.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/F6H/LJDQ/IIBLJY8G/F6HLJDQIIBLJY8G.MEDIUM.jpg" height="640" width="352" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
a 5V USB power bank is used as the power source to turn on a blue 3W LED mounted on a heat sink.</div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
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.</div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
to construct the light source, these are the items used</div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
1. small veroboard</div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
2. 1x USB male connector</div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
3. 1x 3W LED (BLUE) mounted on the heatsink, collimator (focus beamacr) is optional</div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
4. 1x 2W 4ohm resistor</div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
5. 1x usb mobile power bank made with 18650 cells</div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
*note: the 3W LED and resistor get hot after several minutes of play.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FI5/4GMH/IIBLJYCR/FI54GMHIIBLJYCR.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FI5/4GMH/IIBLJYCR/FI54GMHIIBLJYCR.MEDIUM.jpg" height="360" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FXR/W5O8/IIBLJY92/FXRW5O8IIBLJY92.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FXR/W5O8/IIBLJY92/FXRW5O8IIBLJY92.MEDIUM.jpg" height="360" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FM4/VAMF/IIBLJYCC/FM4VAMFIIBLJYCC.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FM4/VAMF/IIBLJYCC/FM4VAMFIIBLJYCC.MEDIUM.jpg" height="360" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/F2J/ML4Q/IIBLJYCD/F2JML4QIIBLJYCD.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/F2J/ML4Q/IIBLJYCD/F2JML4QIIBLJYCD.MEDIUM.jpg" height="360" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FT6/1MTS/IIBLJYBB/FT61MTSIIBLJYBB.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FT6/1MTS/IIBLJYBB/FT61MTSIIBLJYBB.MEDIUM.jpg" height="360" width="640" /></a></div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
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.</div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
The acrylic tube inserted with the sideglow fiber optics is connected to the lightsaber holder look-alike torch light with a 3D printed adapter.</div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
Link to the 3D model of the lightsaber adapter here<a href="https://www.tinkercad.com/things/2pGvKJvmqpj" rel="nofollow" style="color: #e86c00; text-decoration: none;">https://www.tinkercad.com/things/2pGvKJvmqpj</a></div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
check out the pictures for a detail description on the assembly</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/F9P/PB9K/IIBLJY8H/F9PPB9KIIBLJY8H.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/F9P/PB9K/IIBLJY8H/F9PPB9KIIBLJY8H.MEDIUM.jpg" height="640" width="360" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn.instructables.com/FWK/GHC0/IIBLJYBK/FWKGHC0IIBLJYBK.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn.instructables.com/FWK/GHC0/IIBLJYBK/FWKGHC0IIBLJYBK.MEDIUM.jpg" height="360" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; text-align: left;">Do or do not, there is no try.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; text-align: left;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; text-align: left;">also available at <a href="http://www.instructables.com/id/Lightsaber-Ala-Over-easy/">http://www.instructables.com/id/Lightsaber-Ala-Over-easy/</a></span></div>
<div style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; line-height: 22.1px; margin-bottom: 10px;">
<br /></div>
sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com0tag:blogger.com,1999:blog-2137743283716015909.post-14313533045716069152015-11-01T00:00:00.000+08:002015-11-01T17:15:34.265+08:00Maker's IoT Kit for ESP8266 (ESP-01)Maker's IoT Kit for ESP8266 (ESP-01)<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/0.0.0.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/0.0.0.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
the real McCoy PCB milled on LPKF103</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/0.0.1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/0.0.1.jpg" width="480" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<b><br /></b>
<b>Background</b><br />
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 <a href="http://shin-ajaran.blogspot.co.id/2014/12/noobs-guide-to-esp8266-with-arduino.html">http://shin-ajaran.blogspot.co.id/2014/12/noobs-guide-to-esp8266-with-arduino.html</a>, 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 <a href="http://shin-ajaran.blogspot.co.id/2015/01/internet-controlled-ac-appliances-with.html">http://shin-ajaran.blogspot.co.id/2015/01/internet-controlled-ac-appliances-with.html</a> , and at the minimum comes with a 3V3 voltage regulator. Finally the holy grail of all ESP, the NodeMCU URL <a href="http://shin-ajaran.blogspot.co.id/2015/09/stream-iot-sensor-data-esp8266-nodemcu.html">http://shin-ajaran.blogspot.co.id/2015/09/stream-iot-sensor-data-esp8266-nodemcu.html</a>, 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.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/0.0.2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/0.0.2.jpg" width="640" /></a></div>
<br />
<br />
<b>Intro</b><br />
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?!<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/esp01%20BoB%20DSC_0017.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/esp01%20BoB%20DSC_0017.JPG" width="640" /></a></div>
<br />
<br />
<br />
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.<br />
<br />
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.<br />
<br />
<b>Methodology</b><br />
The design principles of The Maker's IoT Kit for ESP8266 (ESP-01) are listed in the following.<br />
<br />
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.<br />
<br />
Learning from collective wisdom of ESP8266 enthusiasts, the peculiarity of ESP8266 GPIO0 turning high during bootup is addressed by the NPN transistor.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/esp01%5Bshin%20mod%5D.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="462" src="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/esp01%5Bshin%20mod%5D.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
first iteration</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/esp01%20v0.5%20%5Bshin%20mod%5D.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="616" src="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/esp01%20v0.5%20%5Bshin%20mod%5D.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
fifth iteration</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/20151028_163010.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/20151028_163010.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
powered via laptop USB port to CP2102 to down load the program into ESP-01</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/20151028_163937.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/20151028_163937.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
powered via USB B port connected to powerbank</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/20151028_164816.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/20151028_164816.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
powered by 4x AA battery connected to 2pin molex pin</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
use this URL to download the gerber file <a href="https://www.dropbox.com/s/hww0v930wmmmrzy/gerber.rar?dl=0">https://www.dropbox.com/s/hww0v930wmmmrzy/gerber.rar?dl=0</a><br />
<br />
<b>operations</b><br />
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 <a href="http://shin-ajaran.blogspot.sg/2015/09/stream-iot-sensor-data-esp8266-nodemcu.html">http://shin-ajaran.blogspot.sg/2015/09/stream-iot-sensor-data-esp8266-nodemcu.html</a>, just take note in the board to be selected is "ESP8266 Generic". compile and download source code to ESP-01.<br />
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.<br />
<br />
<br />
<b>Observation</b><br />
So, what to make with it?<br />
<br />
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 <a href="http://shin-ajaran.blogspot.co.id/2015/01/iot-streaming-temperature-data-acquired.html" target="_blank">http://shin-ajaran.blogspot.co.id/2015/01/iot-streaming-temperature-data-acquired.html </a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/ts1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="624" src="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/ts1.PNG" width="640" /></a></div>
<br />
<br />
conclusion<br />
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 <a href="http://shin-ajaran.blogspot.co.id/2015/02/setting-up-iot-server-with-thingspeak.html">http://shin-ajaran.blogspot.co.id/2015/02/setting-up-iot-server-with-thingspeak.html</a><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/node-red%20u12.2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://dl.dropboxusercontent.com/u/13507878/img/esp01-bob/node-red%20u12.2.jpg" width="640" /></a>nodered on Ubuntu to be used with ESP8266 </div>
<br />
<br />
<br />
<br />
<br />
<br />
code here:<br />
<script src="https://gist.github.com/teos0009/cfc0bdc97873776040e6.js"></script><br />
<br />
<br />
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.sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com1tag:blogger.com,1999:blog-2137743283716015909.post-85924522237449078452015-10-01T14:19:00.000+08:002015-10-01T14:28:14.544+08:00makeup for 3D printed partsyes, 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.<br />
<br />
If you recalled many full moons ago, yours truly <a href="http://shin-ajaran.blogspot.sg/2015/03/seal-deal-digitally-fabricated-personal.html" target="_blank">http://shin-ajaran.blogspot.sg/2015/03/seal-deal-digitally-fabricated-personal.html </a> 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.<br />
<br />
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.<br />
<br />
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.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://scontent.xx.fbcdn.net/hphotos-xpa1/v/t1.0-9/12088157_1169632113052037_8827611164864214332_n.jpg?oh=c64b07a5d4595757421d5b17697deba8&oe=56AB82F5" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://scontent.xx.fbcdn.net/hphotos-xpa1/v/t1.0-9/12088157_1169632113052037_8827611164864214332_n.jpg?oh=c64b07a5d4595757421d5b17697deba8&oe=56AB82F5" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://fbcdn-sphotos-f-a.akamaihd.net/hphotos-ak-xap1/v/t1.0-9/12074939_1169677376380844_4097283749258849499_n.jpg?oh=134fad203264690b1466acaf7353a63d&oe=56954D67&__gda__=1451980638_f93de40d6af2178a496f457d24ba3c58" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://fbcdn-sphotos-f-a.akamaihd.net/hphotos-ak-xap1/v/t1.0-9/12074939_1169677376380844_4097283749258849499_n.jpg?oh=134fad203264690b1466acaf7353a63d&oe=56954D67&__gda__=1451980638_f93de40d6af2178a496f457d24ba3c58" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
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.<br />
<br />
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.<br />
<br />
the full kit: 500g of grey and 400g of white. yes, instructions is in thai language.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://scontent.xx.fbcdn.net/hphotos-xtp1/v/t1.0-9/11219627_1170179736330608_3574480657042933482_n.jpg?oh=3018f498ae97970aab4d1232cc706e88&oe=56A553C3" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://scontent.xx.fbcdn.net/hphotos-xtp1/v/t1.0-9/11219627_1170179736330608_3574480657042933482_n.jpg?oh=3018f498ae97970aab4d1232cc706e88&oe=56A553C3" width="221" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
The first victim to be applied with solution 555 makeup. 3D printed lion head from a previous project: ultimaker2, 100micron layer height, PLA</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-xta1/v/t1.0-9/10628353_1170179766330605_3284332991245906776_n.jpg?oh=4031ab68d91c664e13676aed9cd42f8f&oe=569C85A9&__gda__=1453951060_12ba898c5b3b1a05e4574357b2da40e9" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-xta1/v/t1.0-9/10628353_1170179766330605_3284332991245906776_n.jpg?oh=4031ab68d91c664e13676aed9cd42f8f&oe=569C85A9&__gda__=1453951060_12ba898c5b3b1a05e4574357b2da40e9" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
closeup: sorry for the lousy picture quality. yours truly used a 2year old phone camera for this.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://scontent.xx.fbcdn.net/hphotos-xap1/v/t1.0-9/12088183_1170179782997270_1589310984993883608_n.jpg?oh=7ed9a9c6192c12e5fb03e8ed081ca51b&oe=569AFE4A" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://scontent.xx.fbcdn.net/hphotos-xap1/v/t1.0-9/12088183_1170179782997270_1589310984993883608_n.jpg?oh=7ed9a9c6192c12e5fb03e8ed081ca51b&oe=569AFE4A" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
mix 3 part from grey bottle and 1 part from white bottle. gettin ready to makeup with the mixture.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://scontent.xx.fbcdn.net/hphotos-xpa1/v/t1.0-9/12039216_1170179832997265_2993649797218680185_n.jpg?oh=ae2bc0f0f63af1f562af1711b8615290&oe=56A9DDA1" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://scontent.xx.fbcdn.net/hphotos-xpa1/v/t1.0-9/12039216_1170179832997265_2993649797218680185_n.jpg?oh=ae2bc0f0f63af1f562af1711b8615290&oe=56A9DDA1" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
can you tell which is with makeup and which is without makeup?</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-xta1/v/t1.0-9/12079250_1170179802997268_9008649306620082058_n.jpg?oh=2c491dca526f99d15c65bed57a4dae11&oe=568BD765&__gda__=1453824920_afa233672b229724566c2360be87af7e" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-xta1/v/t1.0-9/12079250_1170179802997268_9008649306620082058_n.jpg?oh=2c491dca526f99d15c65bed57a4dae11&oe=568BD765&__gda__=1453824920_afa233672b229724566c2360be87af7e" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
ooops... yours trully missed a spot.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://scontent.xx.fbcdn.net/hphotos-xaf1/v/t1.0-9/12033181_1170179862997262_1105372793081660637_n.jpg?oh=0c688760b68461f393ca1da14bb24606&oe=56A22B8B" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://scontent.xx.fbcdn.net/hphotos-xaf1/v/t1.0-9/12033181_1170179862997262_1105372793081660637_n.jpg?oh=0c688760b68461f393ca1da14bb24606&oe=56A22B8B" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
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. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
album can be access on yours truly facebook album too: <a href="https://www.facebook.com/sj.teo.9/media_set?set=a.1170179562997292.1073741902.100000157784700&type=3&ref=notif&notif_t=like">https://www.facebook.com/sj.teo.9/media_set?set=a.1170179562997292.1073741902.100000157784700&type=3&ref=notif&notif_t=like</a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br /><!--100ml-->sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com0tag:blogger.com,1999:blog-2137743283716015909.post-10664833855376444822015-09-09T14:51:00.002+08:002015-09-09T14:51:33.847+08:00Stream IoT sensor data ESP8266 NodeMCU v1.0 ESP12-E with Arduino IDE<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal">
Stream IoT sensor data ESP8266 NodeMCU v1.0 ESP12-E with Arduino IDE<br />Streaming sensor data using ESP8266 NodeMCU v1.0 ESP12-E with
Arduino IDE to Thingspeak<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
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. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
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 <a href="http://shin-ajaran.blogspot.sg/2014/12/noobs-guide-to-esp8266-with-arduino.html">http://shin-ajaran.blogspot.sg/2014/12/noobs-guide-to-esp8266-with-arduino.html</a>
or on instructables ESP8266 guide <a href="http://www.instructables.com/id/noobs-guide-to-ESP8266-with-Arduino-Mega-2560-or-U/">http://www.instructables.com/id/noobs-guide-to-ESP8266-with-Arduino-Mega-2560-or-U/</a>
. In due course, the ESP8266 WiFi has opened a whole new window of opportunity
for him and his padawans.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
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.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
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 (<span lang="ZH-CN" style="font-family: SimSun; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: SimSun; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">赵总</span>) 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 (<span lang="ZH-CN" style="font-family: SimSun; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: SimSun; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">友情价</span>). <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
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 <a href="http://shin-ajaran.blogspot.sg/2015/01/iot-streaming-temperature-data-acquired.html">http://shin-ajaran.blogspot.sg/2015/01/iot-streaming-temperature-data-acquired.html</a>
.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Parts needed<o:p></o:p></div>
<div class="MsoNormal">
Hardware<o:p></o:p></div>
<div class="MsoNormal">
1x DS18B20 temperature sensor with 4.7k resistor across vcc
and data pin<o:p></o:p></div>
<div class="MsoNormal">
1x NodeMCU v1.0 (black)<o:p></o:p></div>
<div class="MsoNormal">
1x Access Point Connected to Internet<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Software:<o:p></o:p></div>
<div class="MsoNormal">
ESP8266 Arduino IDE <a href="https://github.com/esp8266/Arduino">https://github.com/esp8266/Arduino</a>
<o:p></o:p></div>
<div class="MsoNormal">
Source code available at the footer<o:p></o:p></div>
<div class="MsoNormal">
Thingspeak account setup, and API key acquired.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Methodology<o:p></o:p></div>
<div class="MsoNormal">
Caveat: the physical pin2 on NodeMCU v1.0 does not
corresponds to pin D2 in Arduino IDE. Check out the URL in the references. <o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]-->1.<span style="font-size: 7pt; font-stretch: normal;">
</span><!--[endif]-->It is assumed that the Access Point is able to
access to internet, and a thingspeak account is set up accordingly.<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]-->2.<span style="font-size: 7pt; font-stretch: normal;">
</span><!--[endif]-->Connect 3.3v and gnd from NodeMCU v1.0 to
DS18B20 respectively.<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]-->3.<span style="font-size: 7pt; font-stretch: normal;">
</span><!--[endif]-->Connect data from DS18B20 to pin4 on NodeMCU
v1.0 (in code, it will be used as pin2)<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]-->4.<span style="font-size: 7pt; font-stretch: normal;">
</span><!--[endif]-->Connect microUSB to NodeMCU v1.0<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodemcu/nodemcu3.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="335" src="https://dl.dropboxusercontent.com/u/13507878/img/nodemcu/nodemcu3.PNG" width="400" /></a></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<br /></div>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]-->5.<span style="font-size: 7pt; font-stretch: normal;">
</span><!--[endif]-->Launch ESP8266 Arduino IDE, Select Tools ->
Board -> NodeMCU v1.0; and ensure parameters are correct. Refer to
screenshot. </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodemcu/nodemcu4.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="370" src="https://dl.dropboxusercontent.com/u/13507878/img/nodemcu/nodemcu4.PNG" width="400" /></a></div>
<o:p></o:p><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]-->6.<span style="font-size: 7pt; font-stretch: normal;">
</span><!--[endif]-->Ensure the libraries required are installed,
Select Sketch -> Include Libraries -> Manage Libraries or add zip library<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]-->7.<span style="font-size: 7pt; font-stretch: normal;">
</span><!--[endif]-->Program the source code to read DS18B20 using
one wire protocol and the acquired data to be sent to thingspeak.<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]-->8.<span style="font-size: 7pt; font-stretch: normal;">
</span><!--[endif]-->Compile & upload source code to NodeMCU v1.0 <a href="https://dl.dropboxusercontent.com/u/13507878/img/nodemcu/nodemcu1.PNG" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" height="400" src="https://dl.dropboxusercontent.com/u/13507878/img/nodemcu/nodemcu1.PNG" width="397" /></a><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodemcu/nodemcu1.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a></div>
<div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]-->9.<span style="font-size: 7pt; font-stretch: normal;"> </span><!--[endif]-->Observe data update of sensor data on thingspeak.<br />
<!--[endif]--><o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/nodemcu/nodemcu2.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="238" src="https://dl.dropboxusercontent.com/u/13507878/img/nodemcu/nodemcu2.PNG" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div class="MsoNormal">
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Observation<o:p></o:p></div>
<div class="MsoNormal">
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 <b>all
</b>the fancy pansy libraries supported on vanilla Arduino IDE?? That is for us
to discover and update on the git hub page.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Implications<o:p></o:p></div>
<div class="MsoNormal">
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.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
What’s next?<o:p></o:p></div>
<div class="MsoNormal">
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 <a href="http://shin-ajaran.blogspot.sg/2015/01/internet-controlled-ac-appliances-with.html">http://shin-ajaran.blogspot.sg/2015/01/internet-controlled-ac-appliances-with.html</a>,
now is to connect the dots.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Reference<o:p></o:p></div>
<div class="MsoNormal">
ESP8266 Arduino IDE <a href="https://github.com/esp8266/Arduino">https://github.com/esp8266/Arduino</a>
<o:p></o:p></div>
<div class="MsoNormal">
ESP8266 Lua <a href="http://benlo.com/esp8266/">http://benlo.com/esp8266/</a>
<o:p></o:p></div>
<div class="MsoNormal">
LUA based <a href="http://www.instructables.com/id/Low-cost-WIFI-temperature-data-logger-based-on-ESP/">http://www.instructables.com/id/Low-cost-WIFI-temperature-data-logger-based-on-ESP/</a><o:p></o:p></div>
<div class="MsoNormal">
NodeMCU <a href="http://nodemcu.com/index_en.html">http://nodemcu.com/index_en.html</a>
<o:p></o:p></div>
<div class="MsoNormal">
NodeMCU v1.0 pin mapping <a href="https://github.com/esp8266/Arduino/blob/esp8266/hardware/esp8266com/esp8266/variants/nodemcu/pins_arduino.h">https://github.com/esp8266/Arduino/blob/esp8266/hardware/esp8266com/esp8266/variants/nodemcu/pins_arduino.h</a><o:p></o:p></div>
<div class="MsoNormal">
NodeMCU v1.0 pin mapping <a href="https://github.com/esp8266/Arduino/issues/584">https://github.com/esp8266/Arduino/issues/584</a><o:p></o:p></div>
<div class="MsoNormal">
NodeMCU <a href="https://vegardpaulsen.wordpress.com/2015/07/18/soldering-iron-and-nodemcu-iot-device/">https://vegardpaulsen.wordpress.com/2015/07/18/soldering-iron-and-nodemcu-iot-device/</a>
<o:p></o:p></div>
<div class="MsoNormal">
<a href="http://shin-ajaran.blogspot.sg/2015/02/setting-up-iot-server-with-thingspeak.html">http://shin-ajaran.blogspot.sg/2015/02/setting-up-iot-server-with-thingspeak.html</a><o:p></o:p></div>
<div class="MsoNormal">
<a href="http://shin-ajaran.blogspot.sg/2015/01/iot-streaming-temperature-data-acquired.html">http://shin-ajaran.blogspot.sg/2015/01/iot-streaming-temperature-data-acquired.html</a><o:p></o:p></div>
<div class="MsoNormal">
<a href="http://shin-ajaran.blogspot.sg/2015/01/internet-controlled-ac-appliances-with.html">http://shin-ajaran.blogspot.sg/2015/01/internet-controlled-ac-appliances-with.html</a><o:p></o:p></div>
<div class="MsoNormal">
<a href="http://shin-ajaran.blogspot.sg/2014/12/noobs-guide-to-esp8266-with-arduino.html">http://shin-ajaran.blogspot.sg/2014/12/noobs-guide-to-esp8266-with-arduino.html</a><o:p></o:p></div>
<div class="MsoNormal">
<a href="http://www.instructables.com/id/noobs-guide-to-ESP8266-with-Arduino-Mega-2560-or-U/">http://www.instructables.com/id/noobs-guide-to-ESP8266-with-Arduino-Mega-2560-or-U/</a>
<o:p></o:p></div>
<div class="MsoNormal">
<a href="http://www.instructables.com/id/Use-ESP8266-to-Internet-enabled-AC-Appliances/">http://www.instructables.com/id/Use-ESP8266-to-Internet-enabled-AC-Appliances/</a><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
thingspeak data update iframe<o:p></o:p></div>
<br />
<div class="MsoNormal">
<span style="background: white; color: #333333; font-family: "Trebuchet MS",sans-serif; font-size: 13.0pt; line-height: 107%;"><iframe height="260" src="http://api.thingspeak.com/channels/22051/charts/1?width=450&height=260&results=10&dynamic=true" style="border: 1px solid #cccccc;" width="450"></iframe><br /><br />source code</span><o:p></o:p></div>
<div class="MsoNormal">
<span style="background: white; font-size: 17.3333px; line-height: 18.5467px;"><span style="color: #333333; font-family: Trebuchet MS, sans-serif;"><script src="https://gist.github.com/teos0009/acad7d1e54b97f4b2a88.js"></script></span></span></div>
sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com2tag:blogger.com,1999:blog-2137743283716015909.post-12691990258820098832015-07-10T11:22:00.002+08:002015-07-10T11:22:09.362+08:00Maker Faire Singapore 2015 SP Makers FabLab@SP Makerspace@SP booth<br />
check out our booth at Maker Faire Singapore 2015!<br />
<br />
Look out for the laser cut acrylic signage we made with attiny85 ws2812<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/technom/plaque.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://dl.dropboxusercontent.com/u/13507878/img/technom/plaque.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
some of the maker inspired projects you will see at maker faire singapore:<br />
techno mohawk v2.0 <a href="http://shin-ajaran.blogspot.sg/2015/07/techno-mohawk-v20-arduino-attiny85-rgb.html">http://shin-ajaran.blogspot.sg/2015/07/techno-mohawk-v20-arduino-attiny85-rgb.html</a><br />
<br />
attiny85 ws2812 spectrum analyzer <a href="http://shin-ajaran.blogspot.sg/2015/07/attiny85-ws2812-fastled-electret.htm">http://shin-ajaran.blogspot.sg/2015/07/attiny85-ws2812-fastled-electret.htm</a>l<br />
<br />sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com0tag:blogger.com,1999:blog-2137743283716015909.post-7627145780039085902015-07-10T11:16:00.003+08:002015-07-10T11:16:58.843+08:00attiny85 ws2812 fastled electret spectrum analyzermaker faire singapore 2015 sound to light gizmos using attiny85 ws2812 fastled spectrum analyzer<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/technom/a0.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="180" src="https://dl.dropboxusercontent.com/u/13507878/img/technom/a0.jpg" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
check out the video here: https://www.dropbox.com/sc/nsjunacap3cr12w/AADT2sgzaEYcHgDU00clG0aNa<br />
<br />
source code: heresjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com1tag:blogger.com,1999:blog-2137743283716015909.post-3932209155990647452015-07-10T11:09:00.000+08:002015-07-10T11:09:52.873+08:00Techno mohawk v2.0 Arduino ATtiny85 RGB LED Spectrum Analyzertechno mohawk v2.0 for maker faire singapore 2015.<br />
<div>
made a maker hat for maker faire singapore 2015.</div>
<div>
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/technom/1m.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="180" src="https://dl.dropboxusercontent.com/u/13507878/img/technom/1m.jpg" width="320" /></a></div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/technom/0m.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="180" src="https://dl.dropboxusercontent.com/u/13507878/img/technom/0m.jpg" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
for more details about how to make it, refer to my blog post <a href="http://shin-ajaran.blogspot.sg/2014/11/attiny85-spectrum-analyzer-for-music-to.html">http://shin-ajaran.blogspot.sg/2014/11/attiny85-spectrum-analyzer-for-music-to.html</a> </div>
sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com0tag:blogger.com,1999:blog-2137743283716015909.post-38707704769420848742015-04-25T22:27:00.000+08:002015-05-09T23:14:42.342+08:003R power bank by Recycling Reusing and Repurposing3R power bank by Recycling Reusing and Repurposing<br />
<br />
Always wanted a 5v 1A mobile power bank to supply projects or to charge mobile devices?<br />
<br />
In this post, let's recycle li-ion batteries (18650 cells) from an old Laptop's battery pack into mobile power banks.<br />
<br />
<b><span style="color: red;">WARNING</span></b>: take extra precautions not to short the VCC and GND of the circuity that wired up the 18650 cells in the laptop battery back. One the casing of the battery pack, there are warnings and cautions.<br />
<br />
Remember the Fujitsu E8410 that was broken down to retrieve the tasty bits <a href="http://shin-ajaran.blogspot.sg/2014/02/breaking-down-laptop-for-tasty-spare.html">http://shin-ajaran.blogspot.sg/2014/02/breaking-down-laptop-for-tasty-spare.html</a> ?<br />
<br />
Remember the LCD panel of the Fujitsu E8410 laptop what was revived as a secondary monitor <a href="http://shin-ajaran.blogspot.sg/2014/03/fujitsu-e8410-laptop-lcd-panel-lt154p3.html">http://shin-ajaran.blogspot.sg/2014/03/fujitsu-e8410-laptop-lcd-panel-lt154p3.html</a> ?<br />
<br />
Yours truly is a hoarder. having break down the E8410 into tasty bits, nothing was wasted, including the battery packs. The battery pack's plastic cover will be pry open carefully to reveal the goodies: 18650 li-ion cells.<br />
<br />
please note the each of the 18650 li-ion cells is 3.7v; detail writeup of li-ion battery cells to follow soon. <br />
<br />
the objective is to harvest the 18650 li-ion cells from old laptop battery pack. The harvested cells than can be used as the reservoir with li-ion charging circuit that thats input from a renewable energy source such as solar, wind mill, hydro, or even a hamster wheel, and 5v dc booster circuit will provide constant 5V 1A output to power device such as arduino units or even mobile devices.<br />
<br />
parts needed<br />
1x old laptop battery pack<br />
1x lithium battery charger circuit TP4056<br />
1x DC-DC boost up circuit 5V BL8531<br />
<br />note: TP4056 and BL8531 circuits are bought from middle kingdom at 68cents and 80ctns respectively.<br />
<br />
methodology<br />
1. carefully remove the plastic cover of the battery pack. take extra precautions not to puncture or damage the 18650 cells.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/pwbnk/0.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="225" src="https://dl.dropboxusercontent.com/u/13507878/img/pwbnk/0.PNG" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
2. make sure the work area is free of conductors, eg small metal screws, paper clips etc. carefully remove the 18650 cells from the plastic enclosure<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/pwbnk/1.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="252" src="https://dl.dropboxusercontent.com/u/13507878/img/pwbnk/1.PNG" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
3. At the point of writing, there is a plan for the 18650 cells (in red) above. hence, it is not thoroughly broken down into individual pieces. A detailed step by step guide to break it down will follow in future post.<br />A regular 18650 cell (in blue) bought from stores will be used as a demo in the following steps.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/pwbnk/1a.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="235" src="https://dl.dropboxusercontent.com/u/13507878/img/pwbnk/1a.PNG" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
4. Solder multicore wires preferably AWG10 as leads.<br />
the PCB on the left is TP4056, PCB on the right is BL8531.<br />
A terminal block is used to allow for connection from a variety of clean energy sources eg solar cells, wind mills, hydro, or even human powered hamster wheel. the red and black wires exposed are meant to be connected to the li-ion battery made up of 18650 cells. the regular USB port is the output port.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/pwbnk/2.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="176" src="https://dl.dropboxusercontent.com/u/13507878/img/pwbnk/2.PNG" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
5. testing of the charging of 18650 li-ion battery cell from a usb source<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/pwbnk/3.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="173" src="https://dl.dropboxusercontent.com/u/13507878/img/pwbnk/3.PNG" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
6. testing of powering up and arduino using the 18650 li-ion cell as supply. note the usb port to charge the li-ion battery is disconnected.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/pwbnk/3a.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="302" src="https://dl.dropboxusercontent.com/u/13507878/img/pwbnk/3a.PNG" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
7. testing of charging the 18650 li-ion cell with solar panel rated at 6V and max output of 6.5W. Solar panel courtesy of Mr.Nalpon's stash at T1016 (before he retired).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/pwbnk/4.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="273" src="https://dl.dropboxusercontent.com/u/13507878/img/pwbnk/4.PNG" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
So, what can you do with it? have an idea on what to make with this setup? ping yours truly.sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com0tag:blogger.com,1999:blog-2137743283716015909.post-28159128752914311382015-03-30T17:33:00.000+08:002015-05-09T17:39:28.812+08:00Seal the Deal: digitally fabricated personal seal using 3D printing, laser cutter, and CNC millingSeal the Deal: digitally fabricated personal seal using 3D printing, laser cutter, and CNC milling<br />
<br />
since young, yours truly always wanted a personal seal. The reasons for a personal seal? it looks cool to "chop" (native colloquial for stamping) a document.<br />
<br />
A personal seal consist of 2 parts, the structure of the personal seal aka the body, and the calligraphy used as the seal's signage. <br />
<br />
the cost of owning a traditional personal seal is exorbitantly prohibitive. Firstly, the cost of the material for the personal seal. Usually semi precious stones such as jade is used. the choice of materials do affect the cost of the personal seal. Artistic impression on the body of seal. from blanks to simple engraving of philosophy quotes , and some went all out to have complicated sculptures carved on the body of the personal seal. Well, the cost will escalate accordingly too. Lastly, the calligraphy for the signage used in the personal seal.<br />
<br />
Luckily, yours truly have access to FabLab@SP, an arsenal of digital fabrication machines to choose from. Designing and fabricating a personal seal is a breeze with the availability of machines, tools, software, and expertise.<br />
<br />
equipment needed<br />
1. 3D printers<br />
1a. CNC milling machine<br />
2. laser cutters<br />
<br />
software needed<br />
1. inkscape<br />
2. tinkercad<br />
3. cura<br />
<br />
parts needed<br />
1. stl file of the personal seal structure<br />
2. dxf file of the caligraphy<br />
3. basswood (balsawood is too soft; after several stamps, the engraving gave way)<br />
<br />
the methodologies to digitally fabricate a personal seal:<br />
1. download a model of choice from thingiverse as the body of the personal seal.<br />
2. edit the model using simple cad modelling tools such as tinkercad. Here, a hallowed out base is created. This area hallowed out is to be inserted with the signage<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/sealdeal/0.0.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="348" src="https://dl.dropboxusercontent.com/u/13507878/img/sealdeal/0.0.PNG" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
3. send the edited STL file to be 3D printer. we have the stl file 3D printed using ultimaker2 at the highest resolution eg 20microns. Perform some final finishing moves such as acetone bath (if using ABS filament) or THF (if using PLA filament) on the 3D printed parts if desired.<br />
<br />
3a. the STL file can be used for CNC milling too. more about that in a future post.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/sealdeal/1.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="265" src="https://dl.dropboxusercontent.com/u/13507878/img/sealdeal/1.PNG" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
4. engrave the calligraphy on basswood with a laser cutter. several passes are needed to achieve atleast a 3mm deep engraving. note that there are 2 styles, the positive engraving (阳刻) on the surrounding of the calligraphy, and the negative engraving (阴刻) on the calligraphy itself.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/sealdeal/0.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="480" src="https://dl.dropboxusercontent.com/u/13507878/img/sealdeal/0.PNG" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
5. insert the engraved basswood into the hallowed out spacer of the 3D printed part.<br />
<br />
<br />
6. the final outcome<br />
<a href="https://dl.dropboxusercontent.com/u/13507878/img/sealdeal/2.PNG" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" height="375" src="https://dl.dropboxusercontent.com/u/13507878/img/sealdeal/2.PNG" width="400" /></a><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
next up: cnc milling of the personal seal on aluminium!sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com0tag:blogger.com,1999:blog-2137743283716015909.post-73480772322151312182015-02-14T16:19:00.000+08:002015-02-14T16:19:23.569+08:00Auto hot dater for Singles Appreciation Day (SAD)Out of luck, out of love, but definitely not out of job! On this fateful day (14feb15), yours truly come to realized one by one the brethren have left to join the dark side. Rather unfortunately, there is still one last man standing, holding the ground resisting the "social norms" to sign on the dotted line.<br />
<br />
In certain parts of the world with chinese populations 光棍节 (guang1 kun2 jie1) aka singles day is celebrated every 11november (11.11) of the year. However, in the other part of the world, it seems to yours truly singles are not celebrated. Yours truly celebrate Singles Appreciation Day aka S.A.D on 14Feb by making auto hot dater powered by arduino!!<br />
<br />
So, how do singles mingle??? What are the laws of attraction between male and female humans? What are the grounds two humans decided to stay together and till death do us part?? These are questions yours truly ponder upon but yet to have answers to them. Until recently, one of the "bro"was acquainted with a girl via dating apps on social media (tinder, paktor, and so many more. Yeah, he is a trawler). Quickly they become an item and subject to much gossip; which unfortunately yours truly is in the party and have to GIGO (Garbage In Garbage Out). Having heard the experience of him using dating apps, perhaps there is a way to quantify how human hookup. The biggest face palm moment is when "bro" mentioned he "swiped right" at every single female profile.<br />
<br />
From the above conversation, yours truly assumed other parameters such as profile picture on dating app, human attributes are held equal and have formulated some hypotheses. These hypotheses are: male have to swipe right more often [1] and be less selective of the female profiles [2] in hope of getting a higher count of "matched" (both male and female swiped right at the other's profile); a set of preferred female pictures of the said male subject can be trained into a mathematical model, then feed into image recognition system via openCV where test data is acquired from the dating app's female profile picture; automated decision making is done within openCV and then instruction to swipe left or right is achieved with an arduino.<br />
<br />
To answer the above hypotheses, an experiment has to be setup. The following parts needed are part1 of the experiments: swiping left or right using arduino with random 50-50 chance, and increased swiping frequency per hour in hope for a higher count of "matched".<br />
<br />
parts list<br />
1. Arduino (an uno is used here)<br />
2. Regular servo motor<br />
3. smart phone with a stylus (note3 is used out of convenience) or without a stylus.<br />
3a. Stylus can be made by referring to this URL <a href="http://www.instructables.com/id/DIY-Capacitive-Stylus/">http://www.instructables.com/id/DIY-Capacitive-Stylus/</a><br />
4. dating app of choice (tinder is used out of popularity with "bro")<br />
5. jig to hold the smart phone, and servo with stylus. (a 3D printed PCB vice is inverted out of convenience)<br /><br />Step1: stylus and servo<br /><br /><br />
1. assemble the stylus on the "zero" position of the servo motor. Servo will be moving from 0 to 90deg, or 0 to -90deg<br />
2. an apparatus to hold the stylus. Being cheap, yours truly have used some blue-tac, but the effect is not good. Will elaborate more at observation.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/SADday/0.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="225" src="https://dl.dropboxusercontent.com/u/13507878/img/SADday/0.PNG" width="320" /></a></div>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Step2: Arduino programming<br />0. pin7 of arduino is wired to the servo.<br />
1. random 50-50 to swipe left or right.<br />2. servo to rotate L or R depending on the random value 0 or 1<br />
code here: <script src="https://gist.github.com/teos0009/4354504e8d990e81ba00.js"></script><br /><br />Step3: Setting up the jig<br />1. align the smartphone with the stylus on servo contraption at the apex of the servo rotation.<br /><br />The final setup is in the following picture<br /><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<a href="https://dl.dropboxusercontent.com/u/13507878/img/SADday/1.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="199" src="https://dl.dropboxusercontent.com/u/13507878/img/SADday/1.PNG" width="320" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Step4: Enjoy!<br /><iframe allowfullscreen="" frameborder="0" height="480" src="https://www.youtube.com/embed/2hINylKALy8" width="640"></iframe><br /><br />Observations:<br />The cheapo contraption of stylus on servo needs a rework, e.g with a L-R clicker type of setup. If the alignment for the current setup is not aligned properly or out of the way as observed from the video above, it will swipe left irregardless of the random value calculated within the program. <br /><br />Final Note: Ego might be dented, but NO humans are harmed in this setup. The profile on dating apps are fictitious, and deleted after this experiment.sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com0tag:blogger.com,1999:blog-2137743283716015909.post-82565285490362551152015-02-05T11:02:00.000+08:002015-02-05T11:02:27.608+08:00setting up IoT server with ThingSpeak on Ubuntu 12.04installing IoT server with thingspeak on ubuntu 12.04.<br />
<br />
some time back yours truly has did some IoT inspired device, by streaming temperature sensor data using ESP8266 to the Internet; the receiving side of the sensor data is the FREE ThingSpeak server, courtesy of iobridge. details of the IoT streaming data setup here <a href="http://shin-ajaran.blogspot.sg/2015/01/iot-streaming-temperature-data-acquired.html">http://shin-ajaran.blogspot.sg/2015/01/iot-streaming-temperature-data-acquired.html</a><br />
<br />
<br />
The ability to display IoT sensor data in a chart on the Internet is extremely useful. The following screenshot depicts the "public view" of my thingspeak sensor data chart that can be shared on web presence eg a blog or website; data collected can be used for processing/detecting/predicting. Note the LHS of the chart as compared to the "pattern" on the RHS. analyzing outliers, yummsss.<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/thingspeak1.2.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="296" src="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/thingspeak1.2.PNG" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
The free thingspeak server allows for sensor update once very 15sec per channel ref here: <a href="http://community.thingspeak.com/documentation/api/">http://community.thingspeak.com/documentation/api/</a> ; in other words, if a sensor (or many sensors) is required to send data at shorter interval eg every second, the free thingspeak server is not able to accommodate. thanks to open source software by iobridge, humans now can install thingspeak on their own computing resources, and customize according to their requirements.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/thingspeakS0.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="202" src="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/thingspeakS0.PNG" width="320" /></a></div>
<br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />picture above depict thingspeak server running off a VM on my "server" behind a simple network in my office. It is not publicly accessible.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/t931%20ts%20srv.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="157" src="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/t931%20ts%20srv.PNG" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
picture above depict thingspeak server running off a VM on the R&D cloud in T931 behind a myriad of ACLs. It is not publicly accessible.<br />
<br />
The step by step guide from the source repo is available here <a href="https://github.com/iobridge/thingspeak">https://github.com/iobridge/thingspeak</a><br />
<br />
The major software components needed on ubuntu 12.04 to use with thingspeak are mysql, ruby, rails, and major pkg updates. Assuming the server is behind a simple network with only a router-to-internet, setting up thingspeak is a breeze. There are open source bash scripts, eg <a href="https://gist.github.com/abythell/8225124">https://gist.github.com/abythell/8225124</a> to help to manage the installation, originated from this blog post <a href="http://angryelectron.com/how-to-install-a-thingspeak-server/">http://angryelectron.com/how-to-install-a-thingspeak-server/</a> Don't you just love open source software??<br />
<div>
<br /></div>
<div>
The complexity comes when </div>
<div>
1. installing on a VM that sits in the cloud that is behind a myriad of ACLs</div>
<div>
2. scaling up the thingspeak server in the cloud as a PAAS, and clustering the resources.</div>
<div>
<br /></div>
<div>
your truly had his fair share of frustrating after office hours trying to fix some of the installation issues due to the complexity of the network and also the unfamiliarity with ruby, gems, and rails (first time installing it). nonetheless, the main gripe is documented in the gist below which address BADSIG from apt-get update, git to use https, gpgkeys: HTTP fetch error 7: couldn't connect: Network is unreachable, packages cannot be authenticated!, etc.<br /><br />the screenshot of thingspeak server is running</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/thingspeakS1.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="212" src="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/thingspeakS1.PNG" width="400" /></a></div>
<div>
<br /><br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
the expanded installation bash from the user mentioned above is available here<br /><script src="https://gist.github.com/teos0009/a0c4e82597b7df424455.js"></script><br /><br />now, let's start to do some IoT inspired stuff by streaming some data to thingspeak</div>
sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com2tag:blogger.com,1999:blog-2137743283716015909.post-4616169616493021612015-02-04T14:31:00.002+08:002015-02-04T14:32:51.713+08:003D printer with Cloud computing for one touch 3D printing over the cloud3D printer with Cloud computing for one touch 3D printing over the cloud<br />
<br />
Some time back, yours truly wrote about how to prepare a rep rap 3D printer for 3D printing over the cloud computing infrastructure. the details of cloudify the rep rap 3D printer url here: <a href="http://shin-ajaran.blogspot.sg/2014/05/cloudify-setup-reprap-3d-printer-with.html">http://shin-ajaran.blogspot.sg/2014/05/cloudify-setup-reprap-3d-printer-with.html</a><br />
<br />
"<span style="background-color: #ffffcc; font-family: Calibri; font-size: 15px; line-height: 11.5px; white-space: pre-wrap;">The process to 3D print a 3D model can be quite an obstacle, i.e need to have physical access to the 3D printer and a SD card handy, power hog, heat emission, UFP emission. What if we can remotely send a 3D model (in *.STL) to be 3D printed on a 3D printer and also observe the 3D printing process over the Internet? Definitely it is going to be convenient as everything can be done at the fingertips; godsend piece of technology for those can’t wait for the 3D printers to be locked down in a facility equipped with exhaust and medical grade filter that is capable of filtering Ultra Fine Particles (UFP) in the range of 100 nanomether that is much finer than PM2.5. The purpose of this article is to share a step by step guide of setting up 3D printer to print remotely.</span>"<br />
<br />
The process mentioned in the earlier post of using octoprint and slic3r is still not transparent to the end user details here: <a href="http://shin-ajaran.blogspot.sg/2014/05/operate-3d-printing-on-reprap-3d.html">http://shin-ajaran.blogspot.sg/2014/05/operate-3d-printing-on-reprap-3d.html</a><br />
user still have to process the gcode and submit it via octoprint.<br />
<br />
thanks to the good work rendered by FEW cloud FYP members Fahadh, Ehan, Wei quan, now we can 3D print over the cloud with a single click. Check out the youtube video. For best effect, please choose HD for video settings.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="480" src="https://www.youtube.com/embed/kaiHQ6Ekw9E" width="640"></iframe>sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com0tag:blogger.com,1999:blog-2137743283716015909.post-8151357289282796862015-01-16T22:53:00.001+08:002015-01-17T01:16:34.181+08:00[IoT] streaming temperature data acquired with DS18B20 to thingspeak using ESP8266 on Arduino Mega IoT streaming temperature data acquired with DS18B20 to thingspeak using ESP8266 on Arduino Mega<br />
<br />
Streaming data to internet could not have been easier with the release of ESP8266.<br />
Gone are the days of using a concoction of software, permanently tether a microcontroller based temperature sensor to a computer for it's internet connecting capability, and visualizing the data. back in 2012, yours truly have dabbled in such complex setup of hardware and software URL: <a href="http://shin-ajaran.blogspot.sg/2012/07/iot-how-to-stream-temperature-sensor.html">http://shin-ajaran.blogspot.sg/2012/07/iot-how-to-stream-temperature-sensor.html</a> for the purpose of demonstrating IoT and of course to stream the office's temperature to the internet <a href="http://shin-ajaran.blogspot.sg/2012/07/iot-diy-solar-air-conditioning-with.html">http://shin-ajaran.blogspot.sg/2012/07/iot-diy-solar-air-conditioning-with.html</a> . the sole purpose is to make an informed choice of coming to office or not on the weekends, based on the reading of the temperature data. <br />
<br />
<br />
If you wonder what is ESP8266, check out previous post <a href="http://shin-ajaran.blogspot.sg/2014/12/noobs-guide-to-esp8266-with-arduino.html">http://shin-ajaran.blogspot.sg/2014/12/noobs-guide-to-esp8266-with-arduino.html</a> ESP8266 is a very low cost WiFi upgrade to <b>"Internet Enable" </b>any microcontroller based systems that are able to speak serial with it. It is retailing for S$9.5 here or ~USD5 on friendly website of middle kingdom. Earlier, A C&C (command & control) type of application is created with ESP8266 <a href="http://shin-ajaran.blogspot.sg/2015/01/internet-controlled-ac-appliances-with.html">http://shin-ajaran.blogspot.sg/2015/01/internet-controlled-ac-appliances-with.html</a> allowing appliances to be controlled from the Internet. This round, let's explore uplink type of application; to stream real and live data to the internet. The IoT data store of choice is thingspeak <a href="https://thingspeak.com/docs/tutorials/">https://thingspeak.com/docs/tutorials/</a> for the fact that it is easy to register for an account, clear and concise documentation, and any microcontroller based system can be setup to stream data to in in practically no time.<br />
<br />
<br />
Your truly is no stranger to sensor for the purpose of temperature data acquisition. The matter of fact, expensive sensor does matter <a href="http://shin-ajaran.blogspot.sg/2013/07/expensive-sensor-does-matter-ds18b20.html">http://shin-ajaran.blogspot.sg/2013/07/expensive-sensor-does-matter-ds18b20.html</a>. Obviously, the weapon of choice in this application will be the trusty DS18B20 temperature probe, or it's variant. Setting up DS18B20 can be slightly tedious as compared to LM35, but it is well worth the effort. As far as my DIY sous vide setup is concerned, DS18B20 temperature sensor served it's purpose.<br />
<br />
If you can't wait to make it yourself and want to jump straight into the visualization of the temperature in the office from the internet, follow this URL <a href="https://thingspeak.com/channels/22051">https://thingspeak.com/channels/22051</a><br />
<br />
iframe of the channel is here:<br />
<span style="background-color: white; color: #333333; font-family: 'Trebuchet MS', Tahoma, Verdana, Arial, sans-serif; font-size: 15.3333330154419px; line-height: 14.4000015258789px;"><iframe height="260" src="http://api.thingspeak.com/channels/22051/charts/1?width=450&height=260&results=7200&dynamic=true" style="border: 1px solid #cccccc;" width="450"></iframe></span><br />
<br />
Parts needed for this uplink IoT setup<br />
1. Arduino Mega<br />
2. ESP8266<br />
3. DS18B20 temperature sensor<br />
<br />
<b>Wiring:</b><br />
please refer to the previous posts mentioned earlier on hooking up the ESP8266 with Arduino Mega, and DS18B20 temperature sensor.<br />
<br />
Once every partss are wired accordingly and dandy, the final outcome should look somewhat similar to the following.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/thingspeak0.0.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="288" src="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/thingspeak0.0.PNG" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
API:<br />
<br />
Go to the thingspeak website to register for an account. it is <b>FREE</b>!!!!<br />
Once registration is done, navigate to the following to acquire the API key.<br />
This API key will allow ESP8266 and Arduino Mega to send data to thingspeak server.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/thingspeak0.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="255" src="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/thingspeak0.PNG" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
program arduino mega with the code that is available at the footer.<br />
then observe from the serial monitor whether data has been sent successfully. On the thingspeak channel of yours, a simple graph is available to visualize the data received via IoT.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/thingspeak1.0.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="286" src="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/thingspeak1.0.PNG" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
there are several cool features on thingspeak, such as public view and private view of streaming data; data can be downloaded in CSV for later manipulations.<br />
<br />
the following is the said temperature sensor data from the office, streamed to thingspeak using ESP8266 and Arduino Mega since 31dec14.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/thingspeak1.1.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="400" src="https://dl.dropboxusercontent.com/u/13507878/img/thingspeak/thingspeak1.1.PNG" width="372" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
can you spot the trend of the visualization and make some sense out of it?<br />
code here: <script src="https://gist.github.com/teos0009/c6ccea717d6a35db1a0c.js"></script>sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com2tag:blogger.com,1999:blog-2137743283716015909.post-10376402741529974652015-01-01T15:34:00.000+08:002015-09-07T13:58:55.260+08:00ESP8266 wifi (ESP01) IoT control a lampInternet controlled AC Appliances with ESP8266 wifi ESP01<br />
ESP8266 wifi (ESP01) IoT control a lamp<br />
<br />
ESP8266 is a very low cost WiFi transceiver that can be added to any existing microcontroller based setups via UART (serial link) to enable the system to communicate over the Internet via WiFI. In this guide, the objective is to achieve the epitome of IoT inspired setup; that is to control an AC (Alternate Current) electrical appliance over the Internet using ESP8266. The outcome of this setup: a command to be sent from a website through the WiFi network to ESP8266 with Arduino Mega to turn on an AC lamp for 2 seconds. The AC lamp is a place holder for any electrical device to be "Internet Enabled".<br />
<br />
The following diagram describes the necessary parts and setup for this apparatus. On the left is an Multiplug modified with SSR, In the middle is Arduino Mega. On the breadboard is ESP8266 and sparkfun logic level shifter. Arduino Mega Pin7 is for SSR, Serial2 pin16,17 for UART with ESP8266, and Serial0 for USB serial monitor.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp8266/10882269_999055473443036_6932760315288982353_n.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="225" src="https://dl.dropboxusercontent.com/u/13507878/img/esp8266/10882269_999055473443036_6932760315288982353_n.jpg" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
An IoT controlled AC appliance can be quite daunting to construct. Setting up such apparatus requires cross domains knowledge such as computer networking, electrical, electronics, programming, administering software on the Operating Systems (linux) of a server (or just another computer), and the often unspoken (and hair pulling moments) troubleshooting techniques. Combining several key building blocks to this setup can be overwhelming. Not to worry, because the divide and conquer approach can be adopted to R&D (Replicate & Duplicate) this setup. Which has been conveniently divided, constructed, and described in the following sections. It is highly recommended to construct the building blocks/modules and tested for functionality, prior to assembling this apparatus.<br />
<br />
The necessary building blocks/modules of this setup is broken down into the following<br />
1. Computer Networking: Setting up a WiFi Access Point/Router. Setup wifi security, either OPEN, WEP or WPA. DHCP for the connecting clients (the computer and ESP8266). PING-ing the devices on the network. DMZ for TCP server (if necessary, use for Internet side to access)<br />
<br />
2. Electrical & Electronics: Setting up the IoT inspired SSR Multiplug, and setting up ESP8266 with Arduino Mega; connecting the SSR Multiplug to ESP8266 with Arduino Mega<br />
<br />
3. Programming (software): Firmware for ESP8266 on Arduino Mega to control the SSR Multiplug upon receiving a command. Server side software for sending a packet (that contains the command) from a TCP server through TCP/IP to the ESP8266 port 8266.<br />
<br />
4. Administering OS (linux): install the necessary software packages Tornado, Python, and Pip.<br />
<br />
5. Testing/Troubleshooting<br />
<br />
the following diagram describes the apparatus getting ready to be tested.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp8266/10407813_999055510109699_1259391069169087424_n.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="225" src="https://dl.dropboxusercontent.com/u/13507878/img/esp8266/10407813_999055510109699_1259391069169087424_n.jpg" width="400" /></a></div>
<br />
<br />
<br />
<b><br /><br /><br /><br /><br /><br /></b><br />
<br />
<br />
The following video describes the operation of clicking on the website to send a command via WiFi to ESP8266 with Arduino Mega to turn on the AC lamp for 2 seconds.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/yapJE6Gf8F4" width="560"></iframe><br />
<br />
<b>Computer Networking</b><br />
Parts needed: WiFi Router<br />
Note: ESP8266 defaults to IP address of 192.168.1.XYZ out of the box. Both the ESP9266 with Arduino Mega and the server will connect to this WiFi Router network of 192.168.1.XYZ/24. Ensure that firewall rules are removed temporarily or a permit all are applied during testing. <br />
<br />
1. setup WiFi Router to issue IP Address via DHCP using the IP address pool 192.168.1.XYZ; subnetmask set to /24 e.g 255.255.255.0. With the router available on hand, it is configured to allocate IP address in the range of 192.168.1.2 to 99 to PC. Just a matter of personal preference.<br />
2. setup WiFi security, OPEN, WEP, or WPA. Current setup on existing WiFi Access Point/Router. For the sale of simplicity during testing, OPEN can be configured. For long term usage, it is recommended to configure for WPA.<br />
3. Configuration on different brands of WiFi Router might be slightly different from one and another. RTFM.<br />
Alternative: Modify the settings in ESP8266 to suit the network address on the existing WiFi Router network.<br />
<br />
<b>Electrical & Electronics</b><br />
Parts needed: IoT inspired Multiplug modified with SSR; ESP8266 connected to Arduino Mega.<br />
<br />
Th details steps of modifying a multiplug with SSR is available on instructables http://www.instructables.com/id/IoT-inspired-multiplug-using-SSR/ or here http://shin-ajaran.blogspot.sg/2014/11/iot-inspired-multi-plug-modified-with.html<br />
<br />
The details steps of connecting an ESP8266 to Arduino Mega is available on instructables http://www.instructables.com/id/noobs-guide-to-ESP8266-with-Arduino-Mega-2560-or-U/ or here http://shin-ajaran.blogspot.sg/2014/12/noobs-guide-to-esp8266-with-arduino.html<br />
<br />
once these two building blocks are ready, connect pin7 of arduino mega with the signal pin of the SSR. VCC on the SSR to 5V on arduino and GND to GND on arduino. Ensure all components are connected to the common ground.<br />
<br />
<b>Software (Programming)</b><br />
There are 2 pieces of software necessary for setting up this apparatus. One, the firmware that is residing in the Arduino Mega with ESP8266 and controlling the SSR in the multiplug, and the other is the software residing in the linux server to send a "command" via a website.<br />
<br />
The firmware deals with the necessary parameters of ESP8266 to connect to a WiFi network, and waits for the "command" from the server via TCP port 8266. The port number is a deliberate choice, but it is not recommended to choose ports that are in the "well known" e.g ports number < 1024. Choose ports that are in the ephemeral ports region if it pleases you. The "command" is a keyword sent by the server side software, e.g "LED". Upon receiving this keyword by the ESP8266 and Arduino Mega, pin7 is held high for 2 seconds and then held low for testing purposes. The "command" is a variable that can be customized. Out of convenience, and also the discovery of the LEDServer software on github, the keyword "LED" is used.<br />
<br />
The server side software is obtained from github out of convenience for testing. Many thanks! Please follow the URL below for a detailed descriptions on the static html page and python. Every time the button send is pressed, the string "LED, R, G, B" is sent to ESP8266. Essentially, only the "send" button and the keyworkd "LED" are used by this setup in particular. The original intention of this server side software is to use the variable R, G, B that is of type integer measuring from 0-255 for setting the colour of neopixel.<br />
<br />
Alternatively, and for the sake of simplifying the server side software for testing there is an opensource tool sockettester v3.0 can be used. URL here http://sockettest.sourceforge.net/<br />
The ESP8266 LED Server software is used as an example for the sake of complicity of the explanations of this IoT setup.<br />
<br />
code for firmware here:<br />
<script src="https://gist.github.com/teos0009/60d9d10b9441cc2bc0a2.js"></script><br />
===<br />
code for server software on linux here https://github.com/Doomhammer458/ESP8266-LED-Server<br />
<br />
<b>Administering OS</b><br />
Since the chosen server side software mentioned earlier runs off linux; there are several pre-requisite steps needed. In this setup, a virtual machine running ubuntu 14.04 desktop is assumed, and a USB WiFi adapter is connected to this virtual machine. The server side software requires python, Tornado webserver that can be installed via pip.<br />
<br />
1. Configure USB WiFi adapter to connect to the WiFi router. This step varies, depending on the WiFi security setup such as OPEN, WEP or WPA.<br />
<br />
Existing WiFi network is using WPA, so it has to be set up accordingly.<br />
<br />
<b><i>apt-get install wpasupplicant wireless-tools</i></b><br />
<br />
<b><i>nano /etc/network/interfaces</i></b><br />
<br />
#add in the following ssid and wpa password<br />
<b><i>auto wlan0</i></b><br />
<b><i>iface wlan0 inet dhcp</i></b><br />
<b><i>wpa-ssid ______</i></b><br />
<b><i>wpa-psk _______</i></b><br />
<br />
<b>restart</b><br />
<br />
2. install pip (if it is not installed)<br />
<b><i>sudo apt-get install python-pip</i></b><br />
<br />
3. install tornado (if it is not installed)<br />
<b><i>pip install tornado</i></b><br />
<br />
4. execute the server side software as per the instructions in github. The following diagram describes this operation.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp8266/esp8266%20026.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="316" src="https://dl.dropboxusercontent.com/u/13507878/img/esp8266/esp8266%20026.PNG" width="320" /></a></div>
<br />
<br />
<b><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Testing/Troubleshooting</b><br />
check IP address of the devices from WiFi Router's management console, and ping the devices. The following screenshot describes this operation.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp8266/esp8266%20024.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="273" src="https://dl.dropboxusercontent.com/u/13507878/img/esp8266/esp8266%20024.PNG" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Test ESP8266 for functionality using AT commands.<br />
The following diagram describes the commands used for testing.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/13507878/img/esp8266/esp8266%20025.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://dl.dropboxusercontent.com/u/13507878/img/esp8266/esp8266%20025.PNG" width="246" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<b>Savour the moment</b><br />
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/fIJM7bmV9Vg" width="560"></iframe>sjteohttp://www.blogger.com/profile/09436569281310042987noreply@blogger.com1