As with The Big Red Button for Social Media - it is assumed that the reader is already familiar with the basics of the WeMos D1 Mini and Arduino IDE, if not - please see

https://microdigisoft.com/getting-started-with-wemos-d1-mini-esp8266-board/.

The main hardware components required for this build are:

1 x WeMos D1 Mini (or clone) - £3.67 (ebay.co.uk)

1 x SIM800C board & antenna - £8.24 (ebay.co.uk)

1 x 12V USB Adapter

and optionally:

1 x Project box/enclosure

Unexpected Challenges:

1. I tried various pins (e.g. TX & RX, working fine to other devices) on my WeMos D1 Mini that would not work when trying to communicate with the SIM800L v2.0 (EVB) 5V module. I eventually arrived at D8 (RX) & D7 (TX) which worked. Although per the sketch's code comments, I ended up moving to D6 (RX) & D5 (TX) with my SIM800C board - Note: it's D8 & D7 shown connected in the image below.

2. Annoyingly - with the O2 PAYG SIM I used for testing the SIM800L (& SIM800C) didn't receive DNS server IPs (note: it's possible this is an O2-specific issue). So although there was internet connectivity - nothing appeared to work, due to the absence of DNS resolution.

3. The SSL implementation on the SIM800L (& SIM800C), at least Firmware Revision 1418B04SIM800L24 that was installed on my device, did not appear to be compatible with Cloudflare's SSL. SSL did however work with some other sites.

4. The SIM800L/SIM800C are 2G - this is legacy technology, albeit it meets the use case: it works (at least in the UK) and is cheap, like the budgie.

5. Depending on how good the 2G signal is, and as widely documented on the internet (it appears this is a source of many problems re: lack of SIM800L connectivity/SIM800L rebooting), both the SIM800L & SIM800C require up to 2 Amps (during network registration) to operate correctly. I believe upgrading the supplied 477A 10v 470uF capacitor (labelled C22 on my SIM800L 5v v2.0 EVB board) may resolve this (e.g. 10v 2200uF as shown here). I note that v2.2 of the SIM800L 5V EVB board appears to have a 1000uF capacitor.

6. Most likely related to point 5 - in some situations (it was OK initially) the SIM800L kept rebooting every 10 seconds or so - I suspect this is due to a weaker network signal at the time. Though I have a 2200uF capacitor available - I've yet to test if this fixes the problem. Instead, I used a SIM800C board (that has a 108J 6.3V 1000uF capacitor).

Limitations:

Given 2 & 3 I had to use some work-arounds (bodges) to get it to function. These being:


A. Use HTTP :(

B. Set the API's IP (and not the FQDN) as the destination in the HTTP request. This is less than ideal, and is hard-coded into the Sketch - the IP will likely change in future (entirely in Cloudflare's hands).

C. To get around Cloudflare disallowing of IP-direct connections (Host: <IP>), which was not possible to overcome by setting the Host header - but did work when setting the Host header in combination with using the SIM800's HTTP Proxy functionality. The "HTTP proxy" in this case being set to the same IP as first resolved using nslookup/dig/etc.

With a different, albeit probably more expensive, SIM module these work-arounds would likely not be required.

D. As above, 2G only.

E. It's reliant on the car's interior power source (12V lighter or USB socket) being ignition switched; on some vehicles it can be a while before power is removed from the various interior sockets once the ignition is switched off (or alternatively the sockets are permanently live).

Wiring:

WeMos D1 Mini 5V
USB VCC 5V
WeMos D1 Mini GUSB GND
WeMos D1 Mini D5SIM800C RXD
WeMos D1 Mini D6SIM800C TXD
SIM800C 5VUSB VCC 5V
SIM800C GNDUSB GND
SIM800C PWXSIM800C GND

Inside the enclosure, before fitting the SIM800C and WeMos D1 Mini:

All done. Once power is applied it sends an send API request, every 4 minutes, to block social media for 5 minutes. When powered down and ~5 minutes after the last API request - social media...

Read more »