ESP8266: A $5 microcontroller with wi-fi that runs Python
makezine.com
makezine.com
The new ESP8266 source code will be made available on GitHub right after the crowdfunding campaign closes..
It's surprisingly easy connect to a WiFi and get a TCP server running
The bare chip won't be very useful to you, unless you want to design your own PCB. Instead, I would recommend a breakout board. There are two major types:
Something like the WeMos D1 Mini (http://www.aliexpress.com/item/D1-mini-Mini-NodeMcu-4M-bytes...) or NodeMCU (http://www.ebay.com/itm/NodeMCU-LUA-WIFI-Internet-Developmen...), which are very full-featured and include onboard USB programmers and fancy things like that, but are a bit bulky. The NodeMCU I linked is solid, the WeMos is also great as it's much smaller and only includes the useful pins.
The alternative is a bare breakout board, which is the minimum that you need to make the ESP breadboard-friendly and so you don't have to solder a bunch of resistors on the chip. This is best when you want to work at a lower level, and have the minimum hardware required for the ESP to work on the board, with everything else going in your circuit.
There are breakout boards on ebay like this one (http://www.ebay.com/itm/1Set-ESP8266-WiFi-Module-Breakout-Bo...). STAY AWAY FROM THESE. They don't include all the necessary components, so the ESP won't work reliably without extra pullups, and they take up the entire breadboard space.
Because I was burnt by these, I designed my own and made it open-source:
https://github.com/skorokithakis/tiny-ESP8266-breakout
It's easier to work with, leaves room on the breadboard and includes all necessary resistors/caps and an optional voltage regulator. It's also very small. There's a dirtypcbs link on the github repo so you can just order 40 of these for $14 if you like, or you can just download the KiCad schematics (KiCad is awesome and open-source) and get it fabricated at your favorite PCB house.
Back to our regularly scheduled programming. Feel free to copy/paste this comment whenever there's an ESP discussion, I think it's a good primer for people who don't have ESP experience.
You also have to pull up CH_PD and pull down GPIO15, plus usually include a voltage regulator and/or smoothing cap, which adds enough hassle that WeMos is definitely worthwhile, but it's not really that bad if you only have the bare modules.
The WeMos is infinitely easier, especially because it has the FTDI chip built in, but it's not terrible to use the bare modules. I got on the ESP8266 bandwagon fairly early, so I got used to working with the bare modules since they were all I could get.
The ESProto 1 is designed to support the AI Thinker ESP-12F (FCC Certified) module, and give you space for an optional regulator, and prototyping space on board. We include jumpers and a push button for easily entering programming mode.
The ESProto IoT is our newest prototyping board, and couples the ESP-12F with a 5v Arduino Pro Mini to provide enhanced connectivity for sensors and peripherals, all in the form factor of the Arduino Uno.
Both boards use external USB for programming.
These things are too cool, and too much fun!
In the mean time, the Github repo is at: https://github.com/Wovyn
We've got the initial KiCAD files up there, and are putting together our sample code, etc.
[1] https://www.adafruit.com/products/2471
[2] https://home-assistant.io/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/More info at: http://github.com/hallard/WeMos-shield
[1] http://memcpy.io/esp8266-apa102-bulb.html
[2] http://memcpy.io/user-friendly-setup-of-esp8266-gadgets.html
The way I worked around it is put all the processing in the cloud and basically the vpn passes straight through it. Interestingly, it actually is being used in a number of consumer products, but for very basic iot apps (I believe there is a wifi enable light socket and an automobile ODB link device things like that).
Fun device to mess with :)
https://www.kickstarter.com/projects/214379695/micropython-o...
http://www.rtl-sdr.com/broadcasting-color-analgoue-ntsc-tv-w...
A ton of work went into it and setting up the toolchain is as simple as `pip install -U platformio`.
Making the ESP8266 libraries support TLS 1.2 is a better idea
It CAN do TLS but it leaves very little left over if you have any kind of real business logic.
[0] GitHub repo for plugging into the Arduino IDE: https://github.com/esp8266/Arduino
[1] http://www.wemos.cc/wiki/doku.php?id=en:d1_mini
[2] http://www.averagemanvsraspberrypi.com/2015/11/esp8266-node-...
https://wiki.hackerspace.pl/projects:zsun-wifi-card-reader
The future is filled with tiny wifi devices!
Though mine seems to have come from Singapore.
Once you get a tracking number you can enter it into this box and see the progress until it gets on a cargo ship:
http://113.105.65.70:8032/xflquery.aspx (use chrome translate)
The number they give you will also work in DHL tracking system.
Mine took 48 hours to ship and then 17-18 days to get here.
The tracking stops once it hits the ocean though, blind from there.
EDIT: 2015 article, maybe put that in the title?
Interestingly, it looks like this is a von Neumann device! Which means that code and data live in the same address space. Memory map here:
http://www.esp8266.com/wiki/doku.php?id=esp8266_memory_map
Looks like it's got a whopping great 512kB internal SPI ROM device too, and indications are that it's reprogrammable.
You could totally run a unix on this; I've ported Alan Cox's Fuzix to the MSP430, which is substantially lower specced. Without an MMU you probably wouldn't get preemptive task-swapping, but Fuzix runs beautifully in cooperative multitasking mode. You even get the real Bourne shell (written by Bourne) and pipes.
cf https://gist.github.com/Coaxial/268c4198d09c2a712387 for flash and RAM for mos (all?) currently available ESP8266 versions
[Aside: I wish they made MSP430s with more RAM. It's a lovely architecture, and I'm not just saying that because I'm sick and twisted and like devices with 20-bit registers. An MSP430 with a whole megabyte of RAM would be awesome.]
I do know of Timothy Budd's Little Smalltalk, which is an ultra-lightweight pedagogical Smalltalkish, which has a core image of ~90kB and 3500 objects; but that's still rather big...
For whatever reason the Make dead-tree-edition of the original article posted has a "Table of Boards" in it and they list the ESP8266 as having 1MB of "Memory".
It's also a new article. It's recently run in the February/March 2016 edition of Make: Super (Cheap) Computers.
Edit: While the OPs link is not the new article, it is in the current edition of Make. I was /confused as I had picked it up in the airport and was looking into the ESP8266 referenced in it.
I've been playing with a Esp8266 NodeMCU configuration where one co-rountine monitors and maintains the wired-access connection, another CR blinks the activity led on a timer, and another presents a telnet-like command interface listening on a tcp/ip socket.
The entire OS layer has been avoided, yet there is almost no loss of functionality.
... they're a very exciting device and incredibly cheap, and the supplied SDK libs look very nice, even though they aren't quite fully open source.
The NodeMCU boards are very useful even if you're not interested in Lua, they add power, USB and breadboard friendly headers in a smallish package.
I've started messing around with different ways to program them for educational purposes: http://nick.zoic.org/etc/flobot-graphical-dataflow-language-...
And would something like a tumble generator provide enough power?
If it's about remotely checking, then you will need some kind of communication, which is most likely going to be cell phone related (i.e. GSM, UMTS, LTS...). A GPS device does not send anything to the satellites, it merely (as a simplified explanation) receives time codes from multiple satellites and triangulates the current position from that.
If you only want to record, then GPS alone would be fine, obviously. Though there is "Assisted GPS" that makes use of cell phone technology to increase the accuracy/decreases the triangulation time. However, I do not know whether that can be leveraged from standalone GPS modules.
Generally the problem with WiFi is if it's close enough to work the dog can usually hear you. You could use a directional antenna but an extra 10db isn't going to buy you much. And at 2.4GHZ WiFi gets attenuated rapidly when not line of sight. Same is true for anything else in the 900MHz/ 2.4GHZ bands. Cellular gets around this by putting their antennas up high to clear local clutter (buildings, trees, hills, etc).
Problem with Cellular is the power drain and the monthly bill. On the other hand, probably will work. Cellular coverage is pretty good everywhere now. If you want to mess about I think there are modules with Cellular and GPS.
You also might be able to use a 900MHz solution[1] where you just send a ping of the GPS coordinates every so often. If you up the power to the max allowed (Like 20-30db) and drop the data rate down to a few hundred/thousand bits per second. You could probably go two to three miles. I think your current choices here are some sort of FSK radio or the newer LoRa radio. The reason is FSK radios and LoRa both allow you to turn the bandwidth way way down. The lower the bandwidth the better the signal to noise for the same transmit power.
[1] The lower the transmit frequency better it will propagate through clutter on the ground. But lower frequency means a bigger antenna.
PS: If you're messing with RF using module or manufactures dev board is the way to go. It's very hard to tune the RF path and antenna without experience and a spectrum analyzer.
PSS: I've found the transceivers from SemTech to be pretty bulletproof. They have their own power regulators on board which makes them insensitive to being powered by crappy supplies.
http://makezine.com/2015/12/09/meet-esp32-new-big-brother-to...