Tous les capteurs reliés au RPI par Wifi avec module ESP8266

Parce que les applications du Raspberry Pi sont illimités...

Modérateur : Francois

fidoboulettes
Messages : 33
Enregistré le : mar. 26 mai 2015 07:18

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par fidoboulettes » lun. 8 juin 2015 19:27

smba38 a écrit :Hello Fidoboulettes

Juste avant de lancer le flash du firmware du ponte temporairement le Gpio RST à la masse pour faire un reset.

SMBA38
Hello, oui oui, c'est ce que j'ai ecrit juste au dessus... ;)

Korhm
Raspinaute
Messages : 232
Enregistré le : ven. 19 sept. 2014 08:13
Localisation : Toulouse

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par Korhm » lun. 8 juin 2015 19:32

C'est la saison des ESP qui ne veulent plus se faire flasher..... :)

Pour ma part je suis un peu en pause sur mon projet (travaux à la maison en priorité...) , mais je galère à utiliser les rx/tx d'un esp01 en tant que gpio via l'IDE Arduino.
J'ai pas mon Pc sous la main pour vous demander de l'aide sur le message d'erreur, vous aller devoir patienter jusqu'à demain :D

Bon courage pour vos flashage, je n'ai malheureusement pas d'idées pour vous aider :?

smba38
Modérateur
Messages : 193
Enregistré le : mar. 24 févr. 2015 09:28
Localisation : Bourgoin

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par smba38 » lun. 8 juin 2015 21:42

Hello à tous les flasheurs.

C'est bizarre les difficultés que vous avez pour flasher.

Pour ma part je n'éprouve pas trop de problème car j'utilise le kit NodeMcu (<8€ sur Ali express)
http://www.aliexpress.com/snapshot/6641 ... 3919887214

Ce kit est à base de ESP-12 avec 4MO de mémoire flash.
Comme le convertisseur USB /série est intégré aucun problème pour Flasher.

Mais attention, il existe plusieurs versions de Kit j'ai vu une V2 (A base de ESP-12E?).
http://fr.aliexpress.com/item/NodeMcu-L ... 97795.html

Il faut également prendre la dernière version du NodeMcu firmware programmer (esp8266flasher)
https://github.com/nodemcu/nodemcu-flasher
Cette version ne nécessite pas (sur le kit NodeMcu) de ponter le GPIO0 à la masse.

On trouve pas mal d'infos sur bbs.nodemcu.com

Par exemple celle ci
http://bbs.nodemcu.com/t/dtr-and-rts-in ... lasher/220

J'ai le pressentiment qu'une partie des problème provient de l'Alimentation.

SMBA38.
Modifié en dernier par smba38 le lun. 8 juin 2015 23:31, modifié 2 fois.

smba38
Modérateur
Messages : 193
Enregistré le : mar. 24 févr. 2015 09:28
Localisation : Bourgoin

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par smba38 » lun. 8 juin 2015 23:19

Hello Fidoboulettes,

Tu n'as peut-être pas vu mon message du Dim 7 Juin 2015 22:13.
Essaye de ne faire qu'un seul appel dans ton programme lua -> bmp085.init(sda,scl).

Si l'initialisation du module fonctionne, tu devrais un des messages " Init done" ou " iic config failled"

Dans ton code la première ligne en commentaire --BMP085.lua indique t'elle le nom de ton fichier lua ?.
Si c'est oui, c'est peut-être une erreur car le module bmp085.lua porte déjà ce nom.

Lua est sensible à la casse on devrait donc pouvoir avoir BMP085.lua et bmp085.lua , mais essaye de ne pas mettre le même nom au programme et au module

SMBA38.
Modifié en dernier par smba38 le mar. 9 juin 2015 19:39, modifié 1 fois.

Korhm
Raspinaute
Messages : 232
Enregistré le : ven. 19 sept. 2014 08:13
Localisation : Toulouse

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par Korhm » mar. 9 juin 2015 07:35

Bonjour !

Edit : j'ai trouvé la solution, voir en fin de post

Me concernant, je galère donc avec les PIN 1 et 3 (TX et RX) de l'ESP-01 sur l'Arduino IDE
Ils peuvent être définit comme GPIO de la manière suivante :

Code : Tout sélectionner

 // Set rx and tx as gpio
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_GPIO3);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_GPIO1);
Et on est censé pouvoir les mettre à LOW/HIGH de la manière suivante :

Code : Tout sélectionner

GPIO_OUTPUT_SET(1, 1); //GPIO 1 is High
GPIO_OUTPUT_SET(1, 0); //GPIO 1 is Low

Mon problème est au niveau de la compilation, j'obtiens ceci :

Code : Tout sélectionner

HelloServer.cpp:(.text+0x388): undefined reference to `gpio_output_set(unsigned int, unsigned int, unsigned int, unsigned int)'
J'ai bien inclus "gpio.h", qui d'ailleurs contient cette fonction :

Code : Tout sélectionner

#define GPIO_OUTPUT_SET(gpio_no, bit_value)  gpio_output_set(bit_value<<gpio_no, ((~bit_value)&0x01)<<gpio_no, 1<<gpio_no,0)
....
void gpio_output_set(uint32 set_mask,
                     uint32 clear_mask,
                     uint32 enable_mask,
                     uint32 disable_mask);
Ici on voit bien que mon programme fait passer des "unsigned int" alors que la fonction demande des uint32. J'ai donc tenté de déclarer des variables, mais ça ne change rien...

Code : Tout sélectionner

...
#include "gpio.h"

uint32 GPIO_LS_OUT = 1; //GPI01 / TX
uint32 GPIO_LS_IN = 3; //GPI03 / RX
uint32 LS_LOW = 0;
uint32 LS_HIGH = 1;

GPIO_OUTPUT_SET(GPIO_LS_OUT, LS_HIGH); // GPIO 1 is High
Voilà, si quelqu'un a une idée. J'ai beau jouer avec les type de variables, je coince... :?

Bonne journée

-------
Edit :
bon finalement j'ai trouvé une solution à mon problème de compilation
Après avoir lu ce sujet, et nottament le dernier post : http://www.esp8266.com/viewtopic.php?f=9&t=478&start=20 , je me suis renseigné sur le mot-clé "extern" en C
Et je suis en autre tombé sur ce site : http://en.cppreference.com/w/cpp/langua ... ge_linkage
En gros, j'ai un programme C++, mais la fonction GPIO_OUTPUT_SET est déclaré en C.
Il faut donc faire le lien entre les deux de la manière suivante :

Code : Tout sélectionner

extern "C" {
  #include "gpio.h"
}
Et là, ça compile.
A tester maintenant sur mon module :)

Avatar du membre
Jean-Marie
Raspinaute
Messages : 240
Enregistré le : sam. 24 janv. 2015 18:01
Localisation : Arlon, Belgique
Contact :

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par Jean-Marie » mar. 9 juin 2015 11:36

YOUPPPIE !!!

L'intuition de l'anomalie d'alimentation était la bonne, en ce sens que ma breadboard, pour une raison que je vais encore examiner, faisait chuter la tension à 2,8V à l'entrée du module dès le branchement de celui-ci.

J'ai reporté le même schéma sur une autre breadboard, alimentée par l'alim spécifique des breadboards.
Voici l'image :
97.jpg
97.jpg (118.81 Kio) Vu 3809 fois
Les connexions sont les suivantes:
  • VCC à 3,3V de l'alim
  • CH_PD à 3,3V par R de 4,7k
  • GND à GND de l'alim
  • GPIO15 à GND
  • GPIO2 à 3,3V par R de 4,7k
  • GPIO0 à 3,3V par R de 4,7k
  • Rx à TX du convertisseur
  • Tx à Rx du convertisseur
  • GND du convertisseur à GND de l'alim
Pour le flashage, GPIO0doit être connecté à GND. Les autres connections ne changent pas.

Voici l'image Terminal du boot en 74880 baud :
95.jpg
95.jpg (80.46 Kio) Vu 3809 fois
Il se termine par du charabia car il passe en 115200 Baud et correpond à "ready".

Voici l'image l'image du boot en 115200 Baud. Le charabia de départ correspond à ce qui a été vu en 74880 Baud :
96.jpg
96.jpg (83.6 Kio) Vu 3809 fois
J'y ai ajouté la ncommande AT+GMR qui donne les versions AT et SDK ainsi que la date de compilation.

Il me reste à examiner les autres modules et la breadboard défectueuse avant d'intégrer l'ESP dans la chaîne Horloge+MOSFET+µC.

Je suis curieux d'examiner la breadboard défectueuse car en plus c'est une nouvelle que je n'avais encore jamais utilisée.

smba38
Modérateur
Messages : 193
Enregistré le : mar. 24 févr. 2015 09:28
Localisation : Bourgoin

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par smba38 » mar. 9 juin 2015 12:44

Coucou Jean-Marie,

C'est bien vrai qu'a nos âges, il faut bien surveiller la tension.

Sur mon alim qui resemble à la tienne, il est possible de choisir la tension à gauche ou à droite du breadboard.
alim 3.3-5V.JPG
alim 3.3-5V.JPG (43.33 Kio) Vu 3806 fois
Pour trouver une panne en électronique ou un bug en programmation on ne cherche jamais au départ sur les parties les plus évidentes.

SMBA38.

Avatar du membre
Jean-Marie
Raspinaute
Messages : 240
Enregistré le : sam. 24 janv. 2015 18:01
Localisation : Arlon, Belgique
Contact :

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par Jean-Marie » mar. 9 juin 2015 13:32

Hello SMBA38

D'habitude je prends des médocs contre l'hypertension, mais cette fois, j'aurais dû en prendre contre l'hypotension !

Si je fais les connexions pour parcourir tout le trajet positif et tout le trajet negatif, ma breadboard défectueuse accumule une résistance totale de 223 Ohms, alors que la breadboard qui marche accumule 18 Ohms.

223 Ohms, c'est totalement intolérable. Pourtant, au démontage, elle paraît en excellent état et semble faite des mêmes matériaux que les autres !!!

Entre nous, tu ne peux pas mettre l'alim du côté que tu veux car les + et - sont à l'envers. A moins de mettre l'alim avec les entrées du côté Breadboard.

Avatar du membre
Jean-Marie
Raspinaute
Messages : 240
Enregistré le : sam. 24 janv. 2015 18:01
Localisation : Arlon, Belgique
Contact :

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par Jean-Marie » mar. 9 juin 2015 16:14

Voilà, j'ai flashé mes 5 modules avec le tout dernier SDK datant du 5 juin 2015: esp_iot_sdk_v1.1.1_15_06_05
99.jpg
99.jpg (230.13 Kio) Vu 3794 fois
Je n'ai pas eu de difficulté avec le progranne ESPFlasher.exe (Choisir WIN32/Release ou WIN64/Release selon votre PC).
Voici la config que j'ai utilisée (le répertoire bin de esp_iot_sdk_v1.1.1 a été importé dans G:\ par facilité) :
100.jpg
100.jpg (62.21 Kio) Vu 3794 fois
Dans l'onglet Advanced du programme, le Baudrate est à adapter au Baudrate qui prévaut dans votre module avant flashage.

Après flashage, le Baudrate est à 115200.

La commande AT+GMR donne la réponse suivante au Terminal:
98.jpg
98.jpg (82.93 Kio) Vu 3794 fois

fidoboulettes
Messages : 33
Enregistré le : mar. 26 mai 2015 07:18

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par fidoboulettes » mar. 9 juin 2015 20:38

smba38 a écrit :Hello Fidoboulettes,

Tu n'as peut-être pas vu mon message du Dim 7 Juin 2015 22:13.
Essaye de ne faire qu'un seul appel dans ton programme lua -> bmp085.init(sda,scl).

Si l'initialisation du module fonctionne, tu devrais un des messages " Init done" ou " iic config failled"

Dans ton code la première ligne en commentaire --BMP085.lua indique t'elle le nom de ton fichier lua ?.
Si c'est oui, c'est peut-être une erreur car le module bmp085.lua porte déjà ce nom.

Lua est sensible à la casse on devrait donc pouvoir avoir BMP085.lua et bmp085.lua , mais essaye de ne pas mettre le même nom au programme et au module

SMBA38.
Bonjour SMBA38 (et les autres aussi... ;) ),
effectivement, ton message du dimanche soir est passé entre les gouttes... fô dire que chez moi c'était la tempête ce WE....

alors, déjà, j'ai réussi à re-flasher mon ESP-01... par contre le 201... c'est mort pour l'instant.... :roll:

Sinon,, la première ligne en commentaire c'était le nom initial du script que j'avais donné... je l'avais évidement changé puisque je faisait appel au script d'initialisation qui portait le même nom...

Le soucis que j’essayai de rapporter ce n’était pas tant ds la première partie du script qui semblait fonctionner (même si je n'ai pas encore compris comment convertir la pression en hpa) mais bien la partie d'envoi des données vers thinspeak (que j'ai integré par la suite ds le script initial) et qui me fait rebooter mon ESP...
Je suis vraiment un noob là dedans et je pensais pouvoir adapter un script existant à mon besoin, du coup du bête copier-coller.... De plus, je n'ai rien trouvé de "parlant" sur le net à propos de ce capteur...

J'ai un peu ré-ecrit le script (qui plante toujours) en essayant de prendre en compte (je crois) tes remarques...

Pour Information, mon objectif final n'est pas de transmettre des données vers thinkspeak mais en local avec domoticz d'installé sur mon rapsberry... (Domoticz utilisant les commandes json pour transmettre des données)

Voici ce que j'ai écrit:

-- readbmp.lua
bmp085 = require('bmp085')
port = 80

--ESP-01 mappings
sda = 3
scl = 4

bmp085.init(sda, scl)
--lecture données - Conversion pression en hpa???

p = bmp085.getUP()
print(p)

t = bmp085.getUT(false)
print(t)

--- Get temp and send data to thingspeak.com
function sendData()

-- connection to thingspeak.com
print("Sending data to thingspeak.com")
conn=net.createConnection(net.TCP, 0)
conn:on("receive", function(conn, payload) print(payload) end)
-- api.thingspeak.com 184.106.153.149
conn:connect(80,'184.106.153.149')
conn:send("GET /update?key=P83INDG3TKMOJHL2&field1="..t.."&field2="..p.." HTTP/1.1\r\n")
conn:send("Host: api.thingspeak.com\r\n")
conn:send("Accept: */*\r\n")
conn:send("User-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.1)\r\n")
conn:send("\r\n")
conn:on("sent",function(conn)
print("Closing connection")
conn:close()
end)
conn:on("disconnection", function(conn)
print("Got disconnection...")
end)
end
-- send data every X ms to thing speak
tmr.alarm(2, 15000, 1, function() sendData() end )


--Rénitialisation bmp?
--bmp085 = nil
--package.loaded['bmp085']=nil


merci à toi (vous) de prendre le temps de me lire...

Répondre

Retourner vers « Et tout le reste »