38

Check out ESP modules. I've 3 NodeMCU boards running at home checking temperature and humidity, and controlling power sockets and led strips. NodeMCU can be found for about 4-5$. If you want proper support and the chance to change the code from everyplace, take a look at Particle Photon, it's a bit more (about 20$) but works really really nice. If you ...


20

A general process of microcontroller selection. Sum up your requirements towards the microcontroller. For example in this case: 1 hardware timer, to measure time between trigger and echo pulses. 2 GPIO pins to interface the sensor Echo and Trigger pins. Possibly UART to interface the RF communication module. 1 ADC input to monitor the battery voltage. You ...


20

It depends on what you're trying to do. The biggest gap is that a microcontroller you mentioned (such as Arduino) does not run a multitasking operating system such as Linux. This means if your application depends on multitasking or multithreading, this may be much harder or even impossible to run on Arduino. The second gap is hardware support. For example, ...


18

There is Omega2 from the company Onion. They cost 5$. They are still crowdfunding, therefore I'm not sure about their reliability and I haven't used one.. As @Aurora0001 pointed out, Onion completed their crowdfunding and they managed to pledge a funding 45 times more than their initial goal, which IMO makes them reliable. It has a 580 MHz CPU, 64 MB of ...


15

Orange Pi Zero is cheap (7$ + shipping), can be hacked to run on passive PoE, supports TCP/UDP over on-board ethernet and wireless and has a few I/Os. It's not exactly a microcontroller in my book, it's more like a small headless linux computer, but then you mention raspberrypi zero as a reference which is in the same class. When using it, be sure to use ...


13

As an even cheaper alternative to the NodeMCU from Luis answer I would like to mention the the bare ESP-12E or ESP-12F*, the module that is used on the NodeMCU. They are even cheaper than the NodeMCU, draw less power (because they are lacking the USB converter) and can be powered directly from a 3V battery. You'll need one USB-to-serial converter (3.3V**, ...


13

One that I have been keeping an eye on, but haven't tried yet, is VoCore. It was also crowdfunded like the Omega2. It promises a $4-$18 device, but the ones available start at $17.99. What is relevant about VoCore is that it has fully open source hardware and software. So you can, in theory, get to a low per-unit price at scale. Technical details and source ...


12

Is it possible to implement MQTT on this device? Any device that has TCP/IP layer can implement MQTT. What requirements should a microcontroller match to be able to use/run MQTT? You need to ask the following questions to know whether your device runs MQTT. Is my device having TCP/IP or networking support? Is there some memory and disk space available ...


12

Adding to George's comprehensive answer and point 2) hardware support. Even if the desired hardware (e.g. ethernet, WiFi, SD card) is added to the microcontroller/Arduino via shields or similar extension boards the libraries to operate them are putting quite a strain on the small memory (i.e. ATMEGA328 (a typical Arduino controller) has 32Kb of FLASH and 2Kb ...


11

The mbed mmqt library doesn't seem to document any memory requirements as likely to be limiting, and can reasonably be assumed to be targetted at this sort of small-footprint device as an endpoint. You could fairly trivially import the library into a similar device platform using the online compiler and check the code footprint at least.


11

Lightweight devices, and couple of bytes date rates ask for using MQTT, as it has already been mentioned. Your sensor nodes could be based on standalone ESP8266 modules which are powerful enough to host an MQTT client implementation. Or you can simply use these modules as an AT command controlled Wi-Fi module along with your external microcontrollers. You ...


10

The Onion Omega 2 claims to be the smallest Linux computer in the world. That claim may not quite be true (see the vocore2 below, for example) but in my experience it's got to be in the smallest 3. Costs only $5, built-in wifi, designed with IoT specifically in mind. Has a few shields available on their web site. Brand new product, seems to have a strong and ...


10

You do not need PoE for your setup. Just use two wires from Ethernet cable to power your controllers. Ethernet cables have four unused wires: 4 (blue), 5 (white with blue), 7 (white with brown) and 8 (brown). For personal use, I believe, you can use these wires for powering up your micro controllers. Of course, you should take precautionary measures in case ...


10

There are a variety of encryption methods you could use to secure your traffic, and each one has a slightly different power usage, so I'm going to pick a couple of popular choices. The methodology I use to evaluate each method should be applicable to any other ciphers you find and wish to compare. AES AES is one of the most popular symmetric-key encryption ...


10

Maybe I missed the point of the question, but I think this is a good start at an answer. You need three things, at a minimum. An always-on compute node to aggregate your data. This does not need to be powerful, It could be a process running on your NAS, or even (in theory) on your router. For simplicity, assume it is a Raspberry Pi. This could also provide ...


10

You've questioned both previous answers about the need for a controller/hub. Consider that to make things happen, you need rules to exist. If you want to push a big red button to open a garage door, some rule has to tie the sensor (button) to the desired action (opening the door). There are two ways to make that happen: you can put the rule directly in the ...


10

Any read/write operations will be slower. However, if you don't want to stream Full HD videos or other heavy content that requires that kind of data transmission rates you'll be fine. Most of the time people just tend to recommend the new stuff. Especially in IoT surroundings just using the one that is enough is often better since it's often using less ...


10

Defining battery life (and perhaps battery size) will tell you how long your thing has to last. That may then lead you to decide to only switch it on when (a) you need to take a reading and (b) when to transmit data. If you only want to wake up say, hourly, then you want something with a Real Time Clock (RTC) or something counting seconds either on board, ...


9

You may be interested in the Skein family of cryptographic hash functions, which are designed to be efficiently implemented on a wide variety of small and large processors. You can trade RAM for speed, or vice versa. The hash can be implemented with as few as 100 bytes of state. The Skein primitive is the basis for both hashing and encryption. The home ...


9

According the first paper, running is not a problem. That was the purpose. Only there is a limitation on the maximum weights: Currently the limitation on the architecture embedded in this microcontroller is limited only by the number of weights needed. The neural network is currently limited to 256 weights. However for ...


9

The Particle Electron has three free UART lines of which you can use one to connect an ESP8266 based Wi-Fi module. The ESP can be controlled via AT-Commands which is not that difficult to use. The manufacturer provides a lot of document to help you getting started. Furthermore, to make your life easier you could use a little C++ and OOP when doing your ...


9

I expect the situation will change as the demand for NB-IoT picks up, but there are several factors conspiring against your ideal. Only modules are viable unless you have access to ~$1e6 in test equipment and the skills to use this. As soon as you need to put RF on the PCB, it's hard. Long-range RF is harder. In order to protect other users, the testing ...


9

YES, it is a big jump from programming in Python to programming using the typical C-based language tools on micro-controller. In fact, in many cases you may need to write some, if not all, of your application in assembly language. As already pointed out in the other answers, micro-controllers are very much resource constrained and thus you lose all the ...


9

Yes, big difference The difference is like day and night, both in regards to hardware and software. No valid comparison at all. When to use which Use an Arduino, if... Space constraints make a Pi infeasible. The power usage of a Pi would be too much. Money is an issue (especially if you need several or many individual controllers in your project, each ...


9

AWS IoT Button The AWS IoT Button is a programmable button based on the Amazon Dash Button hardware. This simple Wi-Fi device is easy to configure and designed for developers to get started with AWS IoT, AWS Lambda, Amazon DynamoDB, Amazon SNS, and many other Amazon Web Services without writing device-specific code. In this article, Ted Benson talks ...


8

Arduino do a board with built in PoE, but at double the price of a Pi last time I looked, I would not consider it cheap. And sounds physically bigger than you are looking for. The is also the Arduino Yun with poe, but that costs even more If a pi Zero W will do what you want you can get PoE adapters for of the order of £8 each singularly, possibly cheaper ...


8

By far the easiest route is to buy an exisiting product here which is sufficiently open that you can use a standard RF module to control them. This is equivalent to having an MCU and switch integrated (so gives you good autonomy) and also avoids any problems with the appearance or safety of the result. You are of course then stuck with the manuracturer's ...


8

As your most important constraint is having a low power consumption, I think you are already paying attention to the 2 most important parameters: active mode current draw per frequency, and current draw at the different low power modes. Holding the communication as a constant (i.e. same communication protocol and EM frequency), then choosing the best MCU is ...


8

The simple answer is yes - you need enough blocks of flash to support bootloader and A/B code images if you want high reliability. Before activating the new image, you can write the whole thing, verify it and potentially retry. However this is an expensive/reliable strategy and there are things you can do to reduce the overhead. Low level support for OTA ...


8

The bulk of your power will likely be expended on RF transmission, not CPU cycles spent in encryption routines. Every additional bit transmitted will cost you more power than the encryption you're proposing. That means if you take a naive approach, like using AES in CBC mode, you risk increasing the message size to carry the extra bits in each block. If ...


Only top voted, non community-wiki answers of a minimum length are eligible