Posts with «esp8266» label

Tracking Bitcoin With The ESP8266

[Kendrick] was looking for something to do with an ESP8266 WiFi module, and since he loves Bitcoin and Arduino, the obvious solution was to make a Bitcoin price tracker.

The ESP8266 is a complete microcontroller with a WiFi chip and a few pins for a serial connection. It’s certainly possible to write some firmware for the ESP to get the current conversion rate of Bitcoin, but for simplicity’s sake, [Kendrick] chose to use an Arduino for this project. He’s using a 5V Arduino, and the ESP operates on 3.3V logic, but a few Zeners take care of the logic level conversion.

The code running on the Arduino checks the CoinDesk API minute, parses the JSON coming from the API, and prints the current Bitcoin price to the serial port. For tracking the current conversion rate of Bitcoin, it’s vastly overkill. This project could have a few interesting applications, from hooking up a few seven-segment displays, to an RGB LED mood lamp that keeps track of this magic Internet money.


Filed under: Microcontrollers, wireless hacks

Arduino IDE Becomes More Open, Less Snarky

Version 1.6.4 of the Arduino IDE has been out for a little while now, and it has a couple of notable changes. To our eyes, the most interesting change makes adding support for non-standard boards and their configurations within the Arduino IDE a lot simpler. We’ll get into details below.

But before that, it’s time to bid farewell to the cheeky little popup window that would deliver a warning message when using a board bearing the USB IDs of their former-partner-turned-competitor. We absolutely agree with [Massimo] that the issues between Arduino SRL / Smart Projects and Arduino LLC are well-enough known in the community, and that it’s time for the popup to fade away.

Now on to the meat of this post. The new “Board Manager” functionality makes it significantly easier for other non-Arduino products to be programmed within the Arduino IDE. Adafruit has a tutorial on using the Board Manager functionality with their products, and it basically boils down to “enter the right URL, click on the boards you want, download, restart Arduino, bam!”

The list of unofficially supported third-party boards is still a bit short, but it includes some stellar entries. For instance, Adafruit has provided the files needed for the ESP8266, which recently received the Arduino treatment. This means that you can simply point your IDE at Adafruit’s URL, and it’ll set you up with everything needed to develop for the ESP8266 from within the comfy Arduino IDE.

Another standout, from our perspective, is this link that simplifies programming bare AVR chips from the Arduino IDE. While programming your Arduino code into a simple AVR ATmega168 has always been possible, it’s never been as easy as it is now.

How it Works

Under the hood, the new board manager system is pretty straightforward. Clicking on one of the links leads to a JSON file with any number of board architecture definitions. Each entry provides text descriptions of the target board that are used for generating menu entries in the Arduino IDE’s pulldown menus, and a link to a zip file. This zip file contains everything necessary to adapt the Arduino libraries to the target board or chip.

For instance, with something simple like the bare-AVR modifications, the zip file simply includes the boards.txt and platform.txt files that the Arduino IDE uses to fill in a lot of board-specific parameters like the CPU clock speed, fuse bit settings, and AVRDUDE command options for flashing new code. For something more involved, like porting Arduino to the ESP8266, the zip file additionally includes the ported Arduino core and library functions, as well as the uploader tools that make Arduino work on that target.

It’s a very interesting experiment to open up the Arduino IDE so transparently to third-party devices. It’ll surely win points with both hackers and retailers of *duinos, and we’re guessing it’ll only encourage porting the Arduino libraries to more platforms. Let’s see where the community takes this one. What do you want to see Arduino ported to next?


Filed under: Arduino Hacks
Hack a Day 13 May 18:01

A Tool For Spying On Serial Data

[Piotr] was working on a recent Arduino project when he ran into a problem. He was having trouble getting his Arduino Pro Mini to communicate with an ESP8266 module. He needed a way to snoop on the back and forth serial communications. Since he didn’t have a specialized tool for this task, [Piotr] ended up building his own.

The setup is pretty simple. You start with a standard serial cable containing the TX, RX, DTR, and GND wires. This cable connects the Arduino to the ESP8266 WiFi module. The TX and RX lines are then tapped into. Each wire is routed to the RX pin of two different serial to USB adapters. This way, the data being sent from the Arduino shows up on one COM port and the data being transmitted from the module shows up on the other.

The next piece of the puzzle was coming up with a way to see the data more clearly. [Piotr] could have opened two serial terminals simultaneously, but this wasn’t ideal because it would be difficult to compare the timing of the data. Instead, [Piotr] spent less than an hour writing his own simple serial terminal. This one connects to two COM ports at the same time and prints the data on the same screen. The data from each COM port is displayed in a separate color to make it easy to differentiate. The schematic and source code to this project can be found on [Piotr’s] website.


Filed under: Arduino Hacks, Microcontrollers

Review: HUZZAH is the ESP8266 WiFi Setup You Need

A little board that adds WiFi to any project for a few hundreds of pennies has been all the rage for at least half a year. I am referring to the ESP8266 and this product is a marrige of one of those WiFi modules with the support hardware required to get it running. This week I’m reviewing the HUZZAH ESP8266 Breakout by Adafruit Industries.

If you saw the article [cnlohr] woite for us about direct programming this board you will know that a good chunk of that post covered what you need to do just to get the module into programming mode. This required adding a regulated 3.3V source, and a way to pull one of the pins to ground when resetting the power rail. Not only does the HUZZAH take care of that for you, it turns the non-breadboard friendly module into a DIP form factor while breaking out way more pins than the most common module offers. All of this and the price tag is just $9.95. Join me after the break for the complete run-down.

The Hardware

This board is about 1.5 inches by 1 inch… like two postage stamps side-by-side. It hosts the FCC and CE approved module which we first heard about in December. These modules need a 3.3v supply and there is a regultor on board which can supply up to 500mA (the module can consume as much as 250mA) and can be fed by a battery, USB power, or any other 5V supply. As I mentioned earlier you need to pull a pin low during reset to put the module in programming mode. There are two switches on the board that facilitate this, hold the user button down and press reset and you’re ready to flash.

On a breadboard you’ll have two rows not covered by the board on one side, and one row on the other. The board doesn’t have a USB-to-UART bridge but we’re fine with that. On one end of the board you’ll find the common pinout for a USB-to-serial programming cable. Above you can see the programming cable Adafruit sent me with these samples. To the right I tried out my 5V Sparkfun FTDI board and as advertised, the HUZZAH can be programmed with either 3.3v or 5V logic levels.

The one thing I noticed is that the two buttons are a bit tricky to get at with the programmers connected, especially the FTDI board. For the second module I may supply my own right-angle header to get around that. Of course doing so would cover part of the breadboard so this is probably six of one, half dozen of the other.

I love it that they supply the pin headers but don’t solder them. Sometimes I prefer pin sockets or unpopulated pads, and this makes it easy for me to make that choice like the right-angle one I mentioned above. It’s something small but I also appreciate that the pinheaders in the package were not the minimum number necessary for this board — there were a few extra pins. You need to break them off and sometimes they can break one pin over from where you expected. If it were the minimum number you would either start over or solder a single pin at the end of the row (not ideal). If you screw up snapping these you could conceivably use a set of three pins and the rest as one unit to fix your mistake. Maybe I’m weird but it’s the small things in life!

Programming Options: NodeMCU and Lua

The board ships with this firmware on it. I was up and running with the Lua interpreter within three minutes of the package arriving at my door. Seriously, it took me longer to figure out if the USB-to-serial was green or white for TX/RX than it did to connect to my local WiFi Access point. Adafuit’s ‘Hello World’ walkthrough gets you going if you haven’t given this a try before.

Programming Options: Arduino IDE

Adafruit has a Board Manager for Arduino IDE. Perhaps this is common knowledge but I don’t often work with this IDE and it’s the first time I’ve run into it. What can I say, it kicks ass!

I hate setting up tool chains for new chips. With this you add a web address and port number, restart the IDE, and use the board manager to add support for this board. Sweet!

That turns this into an Arduino compatible board which solves something that has long bothered me. I’ve seen a ton of really simple Arduino projects that use the ESP8266 externally. Last month’s porting of the Arduino framework for these chips, coupled with this ready-to-go hardware does away with that nonsense. Seriously, the vast majority of those projects need little to no computing power and will work like a dream when directly programmed onto this chip.

To prove my point, I knocked out this quick binary counter that uses five LEDs as outputs. I’m not leveraging any of the WiFi features on this, but the compiled binary is 174,358 bytes and the Arduino IDE reports this board has a max capacity of 524,288 bytes. It five I/O used for LEDs there are still four more digital pins, the two UART pins, and an ADC input.

Programming Options: esptool

Arduino will overwrite NodeMCU but that’s easy to reflash. I followed [cnlohr’s] direct programming guide to write the binary using esptool. Both this method and the Arduino method are directly programming the EEPROM on the module. This is exactly the same method you’d use if you wanted to develop natively using the Espressif or the Open Source SDKs. Here’s the commands I used to reflash the NodeMCU firmware:

sudo python esptool.py --port /dev/ttyUSB0 write_flash 0x0000 /home/mike/Downloads/nodemcu_latest.bin

Get the NodeMCU binary from their “latest” folder of github repo.

Conclusion

“Buy as many of these as [Phil] will make for us.” That’s what I’ve asked [Julian], the Hackaday Store manager to do. You should be able to get the Hackaday black version of this in a few weeks. Adafruit is currently sold out but I’m sure they’re racing to remedy this.

These are amazing little boards. The price of $9.95 is crazy considering what you get for it. I’m talking about the entire ecosystem which gives you multiple flavors of programming environments. Adafruit has done a lot to contribute to the code and knowledge base here, but a mammoth portion of this is community developed and I think coming in low on the price is one more way Adafruit has chosen to be a good guy in this ecosystem. The board has a ton of I/O for what it is, and if that’s not enough just, implement I2C, SPI, or UART to couple a beefy uC to the connectivity this one brings to the party. I see zero downside on this board. It’s as close to perfect as you can get.


Filed under: Arduino Hacks, Hackaday Columns, reviews

Switch Mains Power with an ESP8266

Before we begin, we must begin with an obligatory disclaimer: handling mains voltage can be very dangerous. Do not do so unless you are qualified! You could burn your house down. (Without the lemons.) That being said, [TJ] has created an interesting dev board for controlling mains voltage over WiFi with the now-ubiquitous ESP8266 module. At only 50mm x 25mm, it is easily small enough to fit inside a junction box!

Called the MPSMv2, the core of the project is the ESP8266 module. The dev board itself can support anything with GPIO pins, whether it’s an Arudino, Raspberry Pi, or anything else with those features. Flashing the NodeMCU firmware is pretty much all that needs to be done in order to get the device up and running, and once you get the device connected to your WiFi you’ll be able to control whatever appliances you want.

The device uses a triac to do the switching, and is optically isolated from mains. Be sure to check out the video after the break to see the device in action. All in all, this could be a great way to get started with home automation, or maybe just do something simple like build a timer for your floor lamp. Anything is possible!


Filed under: home hacks, wireless hacks

Hackaday Links: April 12, 2015

Everyone loves Top Gear, or as it’s more commonly known, The Short, The Slow, And The Ugly. Yeah, terrible shame [Clarkson] ruined it for the rest of us. Good News! A show featuring drones will be filling the Top Gear timeslot. And on that bombshell…

More Arduino Drama! A few weeks ago, Arduino SRL (the new one) forked the Arduino IDE from Arduino LLC’s repo. The changes? The version number went up from 1.6.3 to 1.7. It’s been forked again, this time by [Mastro Gippo]. The changes? The version number went up to 2.0. We’re going to hold off until 2.1; major releases always have some bugs that take a few weeks to patch. Luckily the speed of the development cycle here means that patch should be out soon.

Need an ESP8266 connected to an Arduino. Arachnio has your back. Basically, it’s an Arduino Micro with an ESP8266 WiFi module. It also includes a Real Time Clock, a crypto module, and a solar battery charger. It’s available on Kickstarter, and we could think of a few sensor base station builds this would be useful for.

[Ben Heck] gave The Hacakday Prize a shoutout in this week’s episode. He says one of his life goals is to go to space. We’re giving that away to the project that makes the biggest difference for the world. We’re not sure how a [Bill Paxton] pinball machine fits into that category, but we also have a Best Product category for an opportunity to spend some time in a hackerspace… kind of like [Ben]’s 9 to 5 gig…

[Jim Tremblay] wrote a real time operating system for a bunch of different microcontrollers. There are a lot of examples for everything from an Arduino Mega to STM32 Discovery boards. Thanks [Alain] for the tip.

45s – the grammophone records that play at 45 RPM – are seven inches in diameter. Here’s one that’s 1.5 inches in diameter. Does it work? No one knows, because the creator can’t find a turntable to play it on.

Are we betting on the number of people who don’t get the joke in the first paragraph of this post? Decide in the comments.


Filed under: Hackaday Columns, Hackaday links

Arduino IDE Support for the ESP8266

Despite a wealth of tutorials for setting up and writing code for the ESP8266 WiFi module, there has not been much of anything on programming this cheap wireless module with the Arduino IDE. Finally, this has changed. After many months of coding, the Arduino IDE supports the ESP8266 module.

The Arduino IDE support was announced on the ESP8266 community forum. Setup is fairly simple with downloads for Linux, OS X, and Windows. This isn’t an ESP8266 shield, either: you can write code for the ESP module, connect the serial pins, and hit the program button.

The basic functions of the Arduino IDE – pinMode, digitalRead, digitalWrite, and analogRead – are available. Most of the WiFi functions work just like the WiFi shield library.

There are a few things that aren’t written yet; PWM doesn’t work, as the ESP8266 only has one hardware PWM source. SPI and I2C slave mode aren’t done yet, and uploading sketches via WiFi needs a little bit of thought. That said, this is a great introduction to programming the ESP module. If the Arduino IDE isn’t your thing, you could always do it the cool way with [CNLohr]’s programming tutorial we featured last week.


Filed under: Arduino Hacks, wireless hacks

Adding WiFi and SMS to an Alarm System

[Don] wanted to bring his alarm system into the modern age. He figured that making it more connected would do the trick. Specifically, he wanted his alarm system to send him an SMS message whenever the alarm was tripped.

[Don] first had to figure out a way to trigger an event when the alarm sounds. He found a screw terminal that lead to the siren. When the alarm is tripped, this screw terminal outputs 12V to enable the siren. This would be a good place to monitor for an alarm trip.

[Don] is using an Arduino nano to monitor the alarm signal. This meant that the 12V signal needed to be stepped down. He ran it through a resistor and a Zener diode to lower the voltage to something the Arduino can handle. Once the Arduino detects a signal, it uses an ESP8266 WiFi module to send an email. The address [Don] used is the email-to-SMS address which results in a text message hitting his phone over the cell network.

The Arduino also needed power. [Don] found a screw terminal on the alarm system circuit board that provided a regulated 12V output. He ran this to another power regulator board to lower the voltage to a steady 5V. This provides just the amount of juice the Arduino needs to run, and it doesn’t rely on batteries. [Don] provides a good explanation of the system in the video below.


Filed under: Android Hacks, security hacks
Hack a Day 17 Jan 00:01

Keep an Eye on Your Fermenting Beer with BrewMonitor

The art of brewing beer is as old as civilization itself. Many people enjoy brewing their own beer at home. Numerous steps must be taken before you can take a swig, but fermentation is one of the most critical. [Martin Kennedy] took up the hobby with his friends, and wanted a convenient way to monitor the fermentation temperature remotely. He started working on the BrewMonitor, a cloud-based homebrewing controller powered by an Arduino clone.

His goal was to create something cheap, convenient, and easy to set up. Traditional fermentation monitoring equipment is very expensive. The typical open-source alternative will set you back 80 euros (roughly $101), using the Arduino-sensor with a Raspberry Pi gateway via the BrewPi webserver. [Martin] did not want to go through the hassle of viewing BrewPi remotely, since it requires a home network and all of the configuration that would entail. Instead, he coupled an Arduino clone with a DS18B20 temperature sensor while using an ESP8266 module for wireless communication, all for less than 18 euros ($23). This connects to a simple webpage based on Scotch.io with a PHP backend (Laravel with RESTful API), a MySQL database, and an AngularJS frontend to display the graph. Once the sensor is placed into the fermenter bucket’s thermowell, the temperature is transmitted once a minute to the REST API. You can see the temperature over time (in Celsius). The design files are available on GitHub.

[Martin] would like to expand the functionality of BrewMonitor, such as adding the ability to adjust the temperature remotely by controlling a heater or fridge, and lowering its cost by single boarding it. Since the information is stored on the cloud, upgrading the system is much easier than using a separate gateway device. He doesn’t rule out crowdfunding campaigns for the future. We would like to see this developed further, since different yeast species and beer styles require very stringent conditions, especially during the weeks-long fermentation process; a 5-degree Celsius difference can ruin an entire brew! Cloud-based temperature adjustment seems like the next big goal for BrewMonitor. DIY brewers salute you, [Martin]!

[via Dangerous Prototypes]

 


Filed under: Beer Hacks

The ESP8266 Becomes a Terrible Browser

The ESP8266 are making their way over from China and onto the benches of tinkerers around the world for astonishing web-enabled blinking LED projects and the like. [TM] thought he could do something cooler with his WiFi to UART module and decided to turn one into a web browser.

There’s no new code running on the ESP8266 – all the HTML is being pushed through an Arduino Mega, requesting data from a server (in this case our fabulous retro edition), and sending the data to the Arduino serial console. The connection is first initiated with a few AT commands to the ESP module, then connecting to the retro server and finally dumping everything received to the console.

It’s not much – HTML tags are still displayed, and images are of course out of the question. The result, however, isn’t that much different from what you would get from Lynx, meaning now the challenge is open for an Arduino port of this ancient browser.


Filed under: Arduino Hacks, wireless hacks