ESP 8266 + Arudino Pro Mini + Firmata, HowTo Setup

Begonnen von breezybadger, 22 Januar 2015, 21:20:39

Vorheriges Thema - Nächstes Thema

CaptainHook

Hi
Ein Problem habe ich noch gefunden.
Nach dem start müllt der esp8266 erst mal die Serielle Schnittstelle voll..  Das überfordert den Arduino völlig. Daher habe ich den Quellcode erweitert. GPIO0 resetet den arduino im init-Prozess.  Die Änderungen füge ich noch den git hinzu.

Als Workaround hilft es nach dem starten des Systems den Arduino zu resetten

Grüße
Stephan

Gesendet von meinem Galaxy Tab 4 LTE mit Tapatalk

Lenovo M53 ThinkCentre 10DC | Docker | SolarEdge SE10K + SE5000H + Energy Bank 10KWh | EspEasy | Tasmota | Hue | Alexa | uvm.

breezybadger

Hallo Stephan,

bevor ich wieder irgendwas vermurkse. In der Uferfile bleiben die " " erhalten? Der Serverport ist frei wählbar und muss ich nachher nur über das Modul FRM in FHEM definieren oder?

Als Arduino Sketch nimmst du den Configurable Firmata Sketch aus dem Wiki oder?

Ich habe mich bisher drum gedrückt den ESP zu Flashen da die lötarbeitend echt unangenehm sind. Aber das werde ich dann Heut mal versuchen.

Also die angehängte Datei nicht Flashen?

Liebe Grüße

Daniel

CaptainHook

Hi
Ja die ""  bleiben.  Die Dateien im Anhang kannst Problemlos nehmen und später nochmal updaten.
Der Port ist frei wählbar und wird später in FHEM definiert.

Was musst du den löten? Welches esp-Modul hsst du den?
Grüße Stephan

Gesendet von meinem Galaxy Tab 4 LTE mit Tapatalk

Lenovo M53 ThinkCentre 10DC | Docker | SolarEdge SE10K + SE5000H + Energy Bank 10KWh | EspEasy | Tasmota | Hue | Alexa | uvm.

breezybadger

Hallo Stephan,

ja ich bin gerade dabei das von dir gepostete Wiki zu durchforsten um rauszufinden ob ich das von MAC bzw Windows flashen kann.

Ich habe den ESP-04 ( http://www.tinkerelectric.com/wordpress/wp-content/uploads/2014/12/Screen-Shot-2014-12-21-at-11.46.56-pm.png)

Liebe Grüße
Daniel Orth

CaptainHook

#19
Hi,
ok aber löten musst bei dem Modul ja sowieso, und alle Kabel brauchst nachher ja auch wieder für den Arduino.
Ich nutze die Linux-Toolchain in einer VM.

Alternativ gibt's noch das hier für Windows  http://www.esp8266.com/viewtopic.php?f=9&t=820
Dafür müsstest du aber das Makefile anpassen.

Irgendwo im Netz geistert auch ne Fertige VM herum ....

Gruß Stephan
Lenovo M53 ThinkCentre 10DC | Docker | SolarEdge SE10K + SE5000H + Energy Bank 10KWh | EspEasy | Tasmota | Hue | Alexa | uvm.

Familienpapi

Das ist wirklich ganz großes Kino. Vielen Dank an Stephan.

Funktioniert bei mir nun auch. Mein Problem war, dass der ESP nicht mehr die Original Firmware drauf hatte. Nachdem ich die Original 0.92 AT-Firmware geflasht hatte, gab's keine Probleme mehr. Habe das ganze an einem Arduino Nano mit configurableFirmata V2.06 und allen Optionen aktiviert angeschlossen. Vorsichtshalber habe ich den TX des Nano über einen 1kOhm, 2kOhm Teiler an den ESP angeschlossen. Der ESP mag keine 5V Signale.

Nun habe ich aber doch noch eine Kleinigkeit fest gestellt. Sobald FHEM neu startet (z.B. shutdown restart), verbindet sich der ESP nicht mehr. Im FHEM steht dann nur noch listening. Wie kann ich den ESP dazu bringen, dass er sich wieder mit FHEM verbindet? Man muss den ESP nach einem Neustart von FHEM resetten, damit es wieder funktioniert. Möchte nicht durch das Haus laufen und alle ESPs mit Arduinos, die ich noch verteilen möchte, neu starten.

[Noch eine andere Kleinigkeit: Gäbe es die Möglichkeit, die MAC Adresse des ESP beim Initialisieren zu definieren? Man könnte dann über DHCP feste IPs vergeben. (nice-to-have)]
FHEM@RPi4, piVCCU3@RPi3 (nur Homematic IP), boot via USB NVME SSD, keine SDs,
FTUI 3, HMCCU, MQTT(Mosquitto), MobileAlerts, JeelinkV3c868 (LaCrosse), ZWAVE(+), TelegramBot, eigene Heizungssteuerung, Configurable Firmata
ESP8266 MQTT mit eigener Firmware / Framework

Familienpapi

bin fündig geworden:

In der user/client.c die Funktion networkDisconCb suchen (bei mir Zeile 47) und so erweitern:

void ICACHE_FLASH_ATTR networkDisconCb(void *arg)
{
  //uart0_tx_buffer("dcon",4);

  os_timer_disarm(&network_timer);
  os_delay_us(20000000); //20000ms = 20sec!
  network_init();
}


Nachdem der ESP zu schnell verbinden wollte und FHEM dann in ein Fehler lief, habe ich noch die Wartezeit integriert.
FHEM@RPi4, piVCCU3@RPi3 (nur Homematic IP), boot via USB NVME SSD, keine SDs,
FTUI 3, HMCCU, MQTT(Mosquitto), MobileAlerts, JeelinkV3c868 (LaCrosse), ZWAVE(+), TelegramBot, eigene Heizungssteuerung, Configurable Firmata
ESP8266 MQTT mit eigener Firmware / Framework

Cihan

RPi4 Shelly Zigbee

CaptainHook

Hi,
ich habe die änderung von Familienpapi ins git übernommen.

Mir ist am Wochenende aufgefallen das sie aktuelle Conf-Firmata einen fehler enthält, diese läuft bei mir weder mit USB noch "wireless". Ob es an FHEM oder der Firmata-Version liegt kann ich nicht sagen.
ein Downgrade auf eine alte Version brachte den gewünschten Erfolg.

Grüße,
Stephan
Lenovo M53 ThinkCentre 10DC | Docker | SolarEdge SE10K + SE5000H + Energy Bank 10KWh | EspEasy | Tasmota | Hue | Alexa | uvm.

Nepumuk4321

Hallo,

das Thema Arduino - Conf-Firmata über Esp8266 ist genau das was ich suche / brauche.

Leider läuft es bei mir nicht richtig, deshalb hätte ich ein paar Fragen.
1. in der user_config.h trage ich als SERVERIP die Adresse meines Fhem-Servers ein (bei mir ein Raspberry Pi 2) ?
2. Du schreibst das es mit der neuesten Version der conf-Firmata nicht lief, wo hast du denn die ältere gefunden, oder was hast du downgegraded?
3. Die con-firmata die im Arduino läuft muss doch auf serielle Kommunikation eingestellt sein (nur weil du schreibst weder usb noch wireless)?
4. Wie muss der ESP am Arduino angeschlossen sein (nur RX und TX oder auch noch GPIO0 und GPIO2)?
5. Ich verwende einen ESP-01 und einen Arduino Nano, spricht da was dagegen?

Ich sehe den ESP-01 gar nicht in der WLAN Teilnehmerliste meiner Fritzbox, ich gehe davon aus, dass das mein Hauptproblem ist. Hab zwei ESP's bei beiden das gleiche. Das flashen läuft aber sauber durch.
Wenn einer eine Idee hat, woran es liegen kann, wäre ich echt happy.

Vorab schon mal Danke und großes Lob an dich CaptainHook, dass du die Sache angegangen bist!

Gruß
Frank
FHEM@RPI2, HMUSB; Keymatic;Thermostate (HM-CC-RT-DN); Rolladenaktoren(HM-LC-BI1PBU-FM); 2xConfig-Firmata@ArduinoUno mit Relaisausgängen und DS18B20;Schaltaktor(HM-LC-SW1-BA-PCB); Rauchmelder(HM-SEC-SD); ArduinoNano+ nRF24L01 MySensors;   FHEM@RPI1 als Teststation mit RF1101se@ArduinoNano.....

Familienpapi

Hallo,
Angesichts der Uhrzeit kurze Antworten:
Läuft nicht richtig, ist sehr weit dehnbar. Was konkret läuft nicht?
1. Korrekt. Dein define in FHEM ist wie?
2. Ich habe noch die V2.06 bei mir im Einsatz. Habe diese jetzt aber nicht so schnell finden können. Mein Bookmark hat den Download nicht mehr.
3. Korrekt. Ganz normale Kommunikation als ob der USB einsteckt wäre. Ist er aber hoffentlich nicht.
4. Einer der beiden GPIOs muss am den Reset des Arduinos. In der Github steht das genau drin.
5. Funktionierte bei mir mit 01 und 07 an einem Nano und Mega 2560.

Wenn Du den ESP schon gar nicht siehst, dann stimmt grundsätzlich etwas nicht. Hast Du die Original AT Firmware zuerst geflasht und dann beide Parts aus dem make an der korrekten Adresse? SSID und Passwort Deines WLANs korrekt eingetragen? Dein WLAN lässt neue Geräte zu?

Das mal als ein paar Gedanken auf die Schnelle.
FHEM@RPi4, piVCCU3@RPi3 (nur Homematic IP), boot via USB NVME SSD, keine SDs,
FTUI 3, HMCCU, MQTT(Mosquitto), MobileAlerts, JeelinkV3c868 (LaCrosse), ZWAVE(+), TelegramBot, eigene Heizungssteuerung, Configurable Firmata
ESP8266 MQTT mit eigener Firmware / Framework

Nepumuk4321

Hallo Familienpappi,

danke für die schnelle Antwort.
Mein Fhem define ist: "define arduinoTest frm 3033 global"
den Port 3033 habe ich auch im user_config.h eingetragen.

Das der USB Anschluss ab muss, war mir nicht klar. Habe ich aber auch schon mal probiert.
Soweit ich mich erinnere, hab ich auch die conf-firmata 2.06 (die habe ich zumindest bei meinen anderen Arduinos mit verkabeltem LAN drauf).

Ich hatte die Original AT Firmware vorher nicht geflasht. Habe ich eben gerade versucht bekomme aber Fehlermeldungen beim make:
"/bin/sh: 2: xt-xcc: not found"
verstehe ich nicht, da das make bei CaptainHook's build durchläuft und auch die bin dateien erzeugt (ich hatte sie extra gelöscht, zur Kontrolle)
Kann aber sein, dass ich einen Fehler in meinem System habe. Ich habe in einer Nachtaktion eine virtuelle Maschine mit Ubuntu aufgesetzt, dann die toolchain abgearbeitet und die den Esp geflasht, war vielleicht zu sehr hopplahopp. 
Da ich morgen (bzw. heute) wieder früh raus muss, werde ich die Suche erst heute abend wieder fortsetzen.

Werde auf jeden Fall versuchen zuerst die Original AT Firmware aufzuspielen und mit AT Befehlen in mein Wlan zu kommen. Hoffe es gelingt mir :) und dann mal weiterschauen.

Gruss
Frank


FHEM@RPI2, HMUSB; Keymatic;Thermostate (HM-CC-RT-DN); Rolladenaktoren(HM-LC-BI1PBU-FM); 2xConfig-Firmata@ArduinoUno mit Relaisausgängen und DS18B20;Schaltaktor(HM-LC-SW1-BA-PCB); Rauchmelder(HM-SEC-SD); ArduinoNano+ nRF24L01 MySensors;   FHEM@RPI1 als Teststation mit RF1101se@ArduinoNano.....

CaptainHook

Hi,

ich nutze auch noch eine alte toolchain 094 oder 095 meine ich zumindest. du solltetst zuerst versuchen, dass du einmal die AT-Firmware flasht. Wie Familienpapi schon sagte funktioniert sonst die client-bridge nicht.

Wenn du die Firmware  (client-bridge) geschlasht hast dolltest du den ESP in der fritzbnox sehen oder zumindest anpingen können.
Der ESP läuft auch ohne angeschlossenen Arduino.

Btw: Nutzt ihr einen LevelShifter oder wie habt ihr die Pins vom ESP mit den Arduinos verbungen?
Ich nutzt  3,3V Arduinos mit 8Mhz, aber sowohl der Nano als auch der Mega nutzen 5V, laut datenblatt verträgt das der ESP nicht ???

Grüße,

Stephan
Lenovo M53 ThinkCentre 10DC | Docker | SolarEdge SE10K + SE5000H + Energy Bank 10KWh | EspEasy | Tasmota | Hue | Alexa | uvm.

Familienpapi

Vom TX des Arduino einen 1k Widerstand dazwischen reicht aus.
FHEM@RPi4, piVCCU3@RPi3 (nur Homematic IP), boot via USB NVME SSD, keine SDs,
FTUI 3, HMCCU, MQTT(Mosquitto), MobileAlerts, JeelinkV3c868 (LaCrosse), ZWAVE(+), TelegramBot, eigene Heizungssteuerung, Configurable Firmata
ESP8266 MQTT mit eigener Firmware / Framework

Nepumuk4321

#29
Hallo,

bin jetzt schon weiter, aber noch nicht glücklich.
1. Beim Compilieren (make) des Esp8266-Transparent-Client.....  habe ich die folgende Fehlermeldung bekommen:
user/client.c: In function 'networkDisconCb':
user/client.c:131:1: error: expected declaration or statement at end of input
}


  Ich habe dann in der client.c eine der beiden "{" gelöscht:

void ICACHE_FLASH_ATTR networkDisconCb(void *arg)
{
{
  //uart0_tx_buffer("dcon",4);
  // Thank to Familienpapi@FHEM-Foum
  os_timer_disarm(&network_timer);
  os_delay_us(20000000); //20000ms = 20sec!
  network_init();
}

   danach hat das "make" funktioniert. Das hatte ich gestern auch schon, wollte nur mal bescheid sagen. Oder läuft bei mir was schief?

2. Ich habe auf beide ESP-01 'en die ich habe die AT Firmware draufbekommen, habe sie auf CWMode=3 gesetzt. AP war zu sehen und
    Client hat sich an meiner Fritte angemeldet.
3. Nachdem ich dann die Esp8266-Transparent-Client.... Firmware draufgespielt habe, ist der ESP nicht mehr im Netzwerk zu finden (auch
    nach mehrmaligem reseten usw nicht). Hab's probiert mit Anschluss an den Arduino mit Conf-Firmata und nur mit Spannungsversorgung.
    Bin jetzt ein bisschen ratlos, was ich noch machen kann.
4. die user_config.h sieht so aus:
#define SSID           "Spezialnetz"
#define SSID_PASSWORD  "meinPasswort"
#define SERVERIP       "192.168.1.21"               =Ip meines Fhem Raspberrys
#define SERVERPORT     3030



zu meiner Config:
ich flashe die ESP's über einen Arduino Nano (RST auf 0V) mittels ein Ubuntu VM (VirtualBox). Ich benutze einen Levelshifter.
Fhem habe ich auf einem Raspberry 1 laufen, ist eine Teststation. Mein LiveSystem läuft auf einem Raspberry 2.
Die ESP mit AT Firmware teste ich mit Esplorer (nicht Explorer) unter Windows.
Falls noch jemand eine Idee hat, was ich noch ändern oder ausprobieren kann, wäre ich froh.

Gibt es vielleicht eine Möglichkeit, die IP Adresse in der Esp8266-Transparent-Client.... Firmware statisch zu setzen? Ich habe irgendwie das Gefühl, dass das mit dem DHCP nicht funktioniert. Ich finde zwar die Stelle, wo die IP abgerufen wird, weiß aber nicht, wie ich das ändern könnte.

Gruß Frank

P.S.: Eine Led an GPIO2 angeschlossen blinkt wie angegeben im ca. 0,5 sec Takt (hab es jetzt nicht gestoppt).
FHEM@RPI2, HMUSB; Keymatic;Thermostate (HM-CC-RT-DN); Rolladenaktoren(HM-LC-BI1PBU-FM); 2xConfig-Firmata@ArduinoUno mit Relaisausgängen und DS18B20;Schaltaktor(HM-LC-SW1-BA-PCB); Rauchmelder(HM-SEC-SD); ArduinoNano+ nRF24L01 MySensors;   FHEM@RPI1 als Teststation mit RF1101se@ArduinoNano.....