ESPimaticRF: Vergroten RF bereik

Wat is ESPimaticRF?

Met ESPimaticRF kunt je het RF 433 Mhz signaal van en naar Pimatic verzenden en ontvangen. Normaal gesproken gebruik je hiervoor een Arduino Nano (zie hier), aangesloten op je Raspberry Pi en voorzien van de homeduino software voor het RF verzenden en ontvangen van RF 433 Mhz signalen.

Het probleem met zo’n opstelling is dat de RF-dekking tussen Raspberry Pi en het RF-apparaat soms onvoldoende is, waardoor het apparaat niet altijd wordt in- of uitgeschakeld. Met ESPimaticRF kunt je dergelijke signalen via Wifi doorgeven. Je installeert één ESP8266 in de ‘homeduino’ mode en sluit deze aan op de Raspberry Pi en je installeert één of meer ESP82696 in de ‘node’ mode ergens in je omgeving (mits in Wifi-bereik).

Wanneer je nu een RF-apparaat in Pimatic omschakelt, wordt het signaal opgepikt door de homeduino ESP en via Wifi naar alle knooppunten gestuurd. De knooppunten geven het signaal door met behulp van lokaal aangesloten RF 433 Mhz hardware.

Het ontvangen van RF-signalen werkt hetzelfde: één of meer knooppunten ontvangen het RF 433 Mhz-signaal en geven dit door aan pimatic over Wifi. Het is mogelijk om RF 433 Mhz zender en ontvanger aan de homeduino ESP te bevestigen en deze ook te gebruiken voor verzenden en ontvangen.

Nodig:

2 x NodeMCU met ESP8266-12E (AliExpress)
1 x RF 433 MHz Transmitter + RF 433 MHz Receiver (eBay)

Opzetten ontwikkel omgeving

We gaan nu eerst de ESP8266-12E prepareren. Zorg dat je de benodigde software hebt om een Arduino sketchfile te kunnen compileren en uploaden. Ik probeerde dit eerst op een Windows 10 machine waarvoor ik Arduino 1.6.7 had gedownload (laatste versie van dit moment). Hiermee ging het echter mis en kreeg ik allerlei compiler errors. Dezelfde problemen had ik met Arduino 1.6.7 op mijn Debian Server.
Vervolgens heb ik maar de aangeraden Arduino 1.6.5 versie gebruikt op mijn Debian server.

Aangezien dit dus een oude Arduino versie is moet je even zoeken om deze te kunnen downloaden. Ik heb deze zelf op de http://blog.spitzenpfeil.org/arduino/mirror_released/ volgende server gevonden. Download hier het bestand ‘arduino-1.6.5-r5-linux64.tar.xz’ en voer vervolgens de volgende acties uit:

Start nu de Arduino software

Open preferences menu en voeg de volgende regel toe aan ‘Additional Board Manager URLs’




Open Boards Manager vanaf ‘Tools > Board’. Scroll naar beneden en selecteer ‘esp8266 by ESP8266 Community’. Kies vervolgens ‘install’.



Selecteer ‘NodeMCU 1.0 (ESP-12E Module)’ vanaf ‘Tools > Board’

Ik ga ervan uit dat je het GIT package al hebt geïnstalleerd (apt-get install git). Hierna moet je de sketch-file ESPimatic downloaden m.b.v. het volgende shell commando:

We gaan nu de ESPimaticRF code compileren en uploaden:
In Arduino kies je in ‘File > Open’ menu de file ‘ESPimaticRF.ino’ in de directory waar je de ESPimatic hebt gedownload
Zet in ‘File > Preferences’ je ‘Sketchbook location’ naar de lokatie waar je ESPimaticRF hebt gedownload met git.

Kies nu ‘Sketch > Verify/Compile’
Sluit je ESP8266-12E board via USB aan op je computer
Stel je upload poort in bij ‘Tools > Port’ (vaak /dev/ttyUSB0)
Kies ‘Sketch > Upload’

Prepareren NodeMCU modules

Initiëel zal je ESP8266-12E nu opstarten als een Access Point (wacht totdat je ESPimaticRF ziet verschijnen bij je draadloze netwerken). Maak verbinding met je SSID ESPimaticRF en vul voor wachtwoord ‘espimaticrf’ in. Ga vervolgens met je browser naar 192.168.4.1 en vul je gebruikelijke Wifi gegevens in en druk op [Submit].




Als het goed is gegaan verschijnt er OK op het browser-scherm. Hierna moet je de ESP8266-12E herstarten en verbinding maken je Wifi Netwerk.

Controleer nu welk IP adres je ESP8266-12E heeft gekregen van je DHCP server en ga met je browser naar dit IP-adres. Je krijgt een simpele pagina te zien waarin je nu alle HTML bestanden die je via GIT hebt gedownload moet uploaden.




Deze staan in de directory SPIFFS waar je met GIT je ESPimaticRF source files hebt gecloned. Na het uploaden (je kunt alle files tegelijk selecteren) krijg je weer OK te zien in je browser scherm als dit goed is gegaan. Je moet tenslotte de ESP8266-12E nog eenmaal herstarten voordat je de uiteindelijke ESPimaticRF interface te zien krijgt:



Bovenstaande acties doe je voor al je NodeMCU modules voordat we deze verder gaan configureren.

Configureren ESPimaticRF

Nu moeten we ESPimaticRF zelf nog gaan configureren. In mijn geval stel ik 1 Master (= ‘homeduino’ mode die je verbind met je Raspberry Pi met Pimatic) en 1 Slave (= ‘node’ mode die je op strategische plaats wegzet waar je RF coverage onvoldoende is) in. Je kunt eventueel ook meerdere Slaves maken.

Master (‘homeduino’ mode)
Stel deze in volgens onderstaande screenshot (afhankelijk of je hier RF zender en/of ontvanger hebt aangesloten).



Slave (‘node’ mode)
Stel deze in volgens onderstaande screenshot




Gebruik als API key de waarde die je bij je Homeduino Plugin op je Pimatic hebt ingesteld.

Ik heb hier GPIO pin 4 gekozen voor de RF Receiver en GPIO pin 5 voor de RF Transmitter. Dit zijn respectievelijk D2 en D1 op je NodeMCU. Sluit ook je 3.3V, GND en Data (op betreffende GPIO pin) aan. Zie het volgende overzicht:




Nu is het een kwestie van je Master aan te sluiten op je Raspberry Pi met Pimatic in plaats van je oorspronkelijke Arduino Nano (dus op dezelfde USB poort). De Slave heb ik met een USB Power Adapter in de garage aangesloten en ik merkte meteen een betere RF bereik hier. Voor meer informatie over ESPimaticRF verwijs ik je naar de Wiki van de maker van dit fantastische stukje software.

avatar
1200
Foto en Image Files
 
 
 
Audio en Video Files
 
 
 
Andere File Types
 
 
 
5 Comment threads
26 Thread replies
2 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
Henri MatthijssenErwinHenri MatthijssenErwin Recent comment authors

Erwin
Gast
Erwin

Hoi Henri,

Bedankt voor het schrijven van dit mooie blog! Dit is een gave toevoeging voor pimatic.

Echter probeer ik jou stappen uit te voeren op een raspberry pi 3 + Jessie Lite. En loop ik tegen het probleem aan dat ik Arduino IDE wel geinstalleerd krijg maar vervolgens bij het openen, continu het zandloopertje in beeld is en het programma niet opstart.

Heb jij misschien ook een installatie uitleg voor op een raspberry?

Henri Matthijssen
Gast
Henri Matthijssen

Ik heb dit zelf op een Linux Server met de volledige versie van Debian gedaan en heb geen ervaring hoe de Arduino IDE zich gedraagt op de Raspberry Pi met Raspbian (= uitgeklede versie van Debian). Je kunt wellicht ook je Windows PC gebruiken. Zorg wel dat je de juiste (oude) versie gebruikt en niet de nieuwste.

Erwin
Gast
Erwin

Ah ik bedenk met nu dat het configureren van de ESP module via Arduino IDE niet uitmaakt of dit via raspberry of windows PC doet, klopt dat?

Vervolgens veranderd je in pimatic de “homeduino” en heb je het gewenste resultaat toch?

Pimatic draait bij mij op de raspberry pi met daarop een arduino nano

Henri Matthijssen
Gast
Henri Matthijssen

Of je de gecompileerde binary van Windows of Debian krijgt maakt inderdaad niets uit. Ik heb Pimatic ook op en Raspberry Pi draaien met Arduino Nano en nu ook nog een ESPimaticRF Master (via USB).

Erwin
Gast
Erwin

Ik ben afgelopen weken nog een aantal keer bezig geweest om dit blog uit te voeren. Helaas is dit mij nog steeds niet gelukt.

– Via windows 10 heb ik het probleem dat mijn PC, via mijn com poorten niet de ESP module detecteerd (heb wel de drivers geinstalleerd).
– Via mijn raspberry (Jessie lite IMG) krijg ik de Arduino IDE software wel ingestalleerd maar blijft die continu hangen als ik het programma wil opstarten.

Heeft iemand nog tips? Wil heel graag deze blog gebruiken voor mijn woning te optimaliseren in het RF bereik.

Erwin
Gast
Erwin

Hoi Henri,

Ik ben laatst verhuisd en alle ESP modules opnieuw geïnstalleerd en gekoppeld aan mijn nieuwe netwerk. Ik heb een master en slave op de juiste wijze geconfigureerd. Echter, zodra ik nu een schakelaar omzet in pimatic krijg ik de volgende foutmelding:

operation timed out
at afterTimeout (/home/pi/pimatic-app/node_modules/pimatic-homeduino/node_modules/homeduino/node_modules/bluebird/js/main/timers.js:11:15)
at null.timeoutTimeout (/home/pi/pimatic-app/node_modules/pimatic-homeduino/node_modules/homeduino/node_modules/bluebird/js/main/timers.js:53:9)
at Timer.listOnTimeout (timers.js:92:15)

Heb jij enig idee in wat dit kan zijn?

time_out.PNG
Henri Matthijssen
Gast
Henri Matthijssen

Toevallig Raspbian ook geupdate?

Erwin
Gast
Erwin

Nee, ik moet er trouwens bijvermelden dat ontvangen van signalen wel werkt. Alleen het zenden lukt niet. Ik lees op forum van ESPimatic dat veel mensen last hebben van signalen verzenden. Maar een concrete oplossing staat er niet tussen