Sending SMS via MQTT. Strange? No, this is simple.
In my home automation system I need to send alarms and events via SMS to my mobile number because an internet connection is not stable and may absent on power loss. Therefore I’ve purchased a compact board with the SIM900 chipset.
Note: SIM900A – this is an Asian version of this chip and does work in Europe. I’ve flashed the “1137B02SIM900M64” firmware and now it works well with my SIM cards. Here is the blog with many firmwares, flashing tools and instructions.
I’m using Pimatic and it does not have a ready-to-use plugin for this GSM modem. I’ve found a python code on the web that easily allows to send SMS using both ASCII and Unicode modes. My work is to create a daemon that will route MQTT messages to a SMS messages and vice versa. Pimatic has the very powerful MQTT plugin and I can send SMS messages using built-in rules.
Additionally I can process incoming SMS messages and execute commands from SMS messages by subscribing to a selected topic.
My github repository.
I need to connect the DHT22 temperature and humidity sensor to BPi. Obviously, the kernel does not include the corresponding kernel module, but this module exists in sequent releases.
I’ve found and tried this user-mode C code (dht22). It uses the WiringPi library and can be compiled on Banana Pi BPI-M2U.
Banana Pi BPI-M2U has the Allwinner R40 chip. This chip does not include a hardware 1-wire interface. But we can implement this data exchange protocol at the software level using the bit bang method. The default Linux kernel (Raspbian Jiessie, 3.10.107) does not include the w1-gpio kernel module. I’ve tried to compile it, but it has many dependencies. I’ve found w1-gpio-cl. This is a Linux kernel-mode driver substitutes w1-gpio 1-wire bus master driver. Contrary to the standard driver, w1-gpio-cl doesn’t need many other kernel modules. Also you may configure this kernel module using command line parameters.
Using BPi for kernel (re)compilation is quite painful because it is very slow for this task. So I configured a virtual machine (VMWare in my case). Now, the kernel can be compiled in 50-80 seconds on my i7-4770. The configuration is easy if you read the following tutorial. I’ve tried several options before and selected this one.
Banana Pi M2 Ultra. My start.
Some time ago I’ve purchased RPi2 and built my first smart home server (powered by Pimatic). Everything is good with this solution but currently I need more:
- More memory.
- More CPU performance.
- Fast internal storage (eMMC preferable).
- Backup battery.
- All wireless interfaces (Wi-fi, Bluetooth).