V.0.0. Octobre 2012
version 3.0 15/01/2021
dernier correctif : 12/10/2021
Projets
EDF Teleinfo +
autres datas
Test
Liaison BlueTooth PIC avec appli RapidQ Basic sur PC Win10 (dec 2018)
Version
2012 (Maison
chauffée au GAZ)
Version
2018 (Maison
Chauffage Electrique)
Version 2019
Application RapidQ
2020 Ajout controle chauffage via 4 Fils Pilotes +
Cumulus
Version 2021: ajout fichier Annuel 366 jours (Kwh/jour et Temper
Moyenne)
Test
Liaison BlueTooth PIC avec appli android BlueElectronics (sans programmation ! )
(2018) Version 2018
avec Compteur EDF electronic Stepper U1C5 2002
1a Test presence trame EDF info sur le bornier client du
compteur
2bTest reception trame directe sur terminal
3a
Traitement par
MCU PIC avec envoi sur bluetooth
4b Tests de fiabilite
Compteur
et sortie client :
la partie inferieure n'est pas plombée => acces autorisé.
Mesures au mutlimetre : 1,8V AC 27 KHz ?
Mesures à l'oscillo Tektronics : 8.56V Cr à Cr.
50.45KHz
mesures aux bornes de I1 I2 , chargé uniquement avec R=10K
![]() |
![]() |
De gros doute sur ce relevé à l'oscillo
... meme en mode differentiel , c'est pas joli ..
Schema du montage
rev 20/09/2018
Prototype
1er Test , envoi direct trame via un module BlueTooth HC06
On peut definir la parité PAIRE ,
..mais pas 7 bits data => abandon du HC06,
pour un RN41
2eme Test , envoi via un module RN41
+ MCU
La vitesse de reception 1200 bauds
est faible, mais contigue , quasiment pas de gap temporel entre
les trames.
et pour remettre en forme certaines données , l'usage d'un MCU
est obligatoire
Test en simulant la trame EDF
Trame EDF réelle capturée, pour
etre réinjecter via un script VBRAY
![]() |
![]() |
ma trame, sur un compteur datant de 2002 | Trame d'un Linky ! PAREILLE !!! |
last news: à noter qu'un Linky donne quasiment
la meme trame !!
Pourquoi vouloir s'embeter
à le remplacer , si ce n'est que d'avoir la possibilité de nous
couper le courant à distance !
Le terminal Vbray permet d'ecrire un mini
programme en simili Pascal , pour generer et envoyer une trame
EDF
toutes les secondes , avec un interval de 20mS entre chaque salve.
Ce terminal, configué 1200,E,7,1 envoi la trame sur l'entree
photocoupleur interface 6N138
Par contre il faut relier la 1ere sortie 74HC132 à l'entree UART1
PIC16F1847 ( car etat repos UART=1)
Sans meme ajuster la R d'entree photocoupleur, ça marche tres
bien .
Usage d'un 16F1847 en dip18 , sans quartz , avec UART Hardware et RX Interrupt
Usage d'un 16F1847 18 pin , qui comporte 1K de RAM
!, mais 1 UART Hardware (seulement)
L'UART1 Hardware est chargé de recupérer le trame EDF info, en
sortie du 74HC132 , à 1200,E,7,1
à partir du caractere détecté come etant STX, la stocker sur
reception du caractere ETX dans un buffer nommé TRAME
et d'en faire une copie de travail immediatement dans un 2em
buffer : Buffer_Analyse.
De sorte à avoir tout le temps necessaire pour en analyser le
contenu.
Pendant ce temps , l'interruption UART1 RX, se charge de remplir
le buffer TRAME
Apres recuperation des donnees utiles, celles si , apres rajout d'une
mesure de temperature ( en Points), d'un indicateur de qualité 0
à 9, et du nb de car par trame recue
ce Buffer_Analyse + autres datas est envoyé à 19200,N,8,1 via
un UART2 Software ..
il n'y a
pas 2 UART hardware sur ce PIC !
Le montage est alimenté via un accu Li-ION de 3,7V nominal (mais
4,1V chargé!) pour la partie interface EDF + MCU
et de 3,3V , via un regulateur ASM1117-33 pour le mudle BlueTooth
RN41 .. en classe 1 ! portee theorique de 30M ( pratique = 20M au
travers d'un mur et 2 cloisons)
Une appli BlueTerminal Android tourne sur ma tablette Lenovo TAB317
essential
pour afficher le resultat
à 19200bs, et avec l'usage de l'oscillateur interne PIC 16MHz,
la precision en bauds n'est pas terrible, d'autant que l'alimentation
n'est que de 3,78V en charge.
Une modif du registre OSCTUNE=20 ameliore la duree du bit UART
soft ( passe de 53,5 à 52µS)
mais c'est insuffisant.
Passage à 9600 bds .. c'est bien mieux
Mais apres 18H00 de fonctionnement, je recois une trame tres
ecourtée
la cause: alim =2,78V
batterie completement à plat ..
mais ça marchouille quand meme !
Le fait d'avoir un UART2 SOFT n'est pas le pied , car utilise des
tempos logicielles, affectées par les interruptions UART1 ou
Timer1
Le Timer1 sert de timeout si pas de signal EDF en entrée, à
FOSC=16MHz timer 1 mini=50mS, soit 300 interruption pour 1500mS
ou 1,5sec
La trame faisant 140 bytes, à 1200 bauds, il faut : 140 / 120=>
1,16 sec pour etre reçue
Un essai avec UART3 100% ASM infructeurx , car comportement
erratique suivant la taille du programme:
je suspecte fortement un probleme d'acces bank ou franchissement
de page programme..
donc retour au Software UART2 de mikroc
Mesure de Temperature avec capteur
LM35DZ
Usage de +VREF = 1,024V reference interne du PIC 16F1847 pour
avoir une lecture directe en 1/10em de degrés
puisque le LM35DZ delivre 10mV/°C
Verif en injectant 0 à 390mV via un potar 10 tours 2K connecté
sur VCC 3,7V , mesure avec Multimetre gamme 399,9mV
Correspondance OK, à +- 0,1°C ( sans utiliser d'offset de
calibration)
20/09/2018
Usage d'une appli Android : BlueElectronics
Cette appli , plutot prévue pour le monde Arduino, permet de
définir, configurer ,et afficher les donnees recues
via blueTooth, sans ecrire une seule ligne de programme
coté Android!
J'envoie ma trame EDF info , preparére pour ,
par un PIC16F1847 , à 9600,N,8,1 dans RX RN41
*Affichage d'une fenetre Terminal ( affiche donc la trame reçue)
*Affichage du numéro de compteur EDF, de la valeur IINST en
amperes,
* ainsi qu'un graphique d'evolution de Ampères (IINST)
La resolution est de 1Amp .. mais peut mieux faire ( à suivre)!
*Le nombre de Wh , mis à l'echelle KWh XXX.XXX
*et la temperature issue d'un capteur LM35DZ , format 0 à 50°C
( temperature de mon garage)
La configuration est tres explicite et donc simple .
En 3 coup de cuillere à pot ..c'est fait
donc moins de travail qu'avec Appinventor2 ou RFO-Basic
Tests faits sur tablette LENOVO TAB37-10
Lancer BlueElectronics
sur un Panel vierge ,ou panel existant, on peut inserer des
objets tels que Terminal, graphique,texte, jauge ...
comme sur ce Panel #9
Une config ( facile) de chaque objet, pour definir si on affiche
une valeur ou envoi sur un grafique
Regle de base :
*(repere) Valeur numerique (en ascii) *(separateur)
exemple pou le grafique Ampere : *G
0009 *;
exemple pour le Texte Ampere : *T 0009 *;
voir source C pour détails.
exemple : jauge temperature ( 0 à 50°C pour 0 à 500 points)
L'affichage des WATTS est relatif au lancement de l'appli MCU ,
la 1ere lecture sert de réference, on lit donc 0.000 au debut !
Par la suite l'Eeprom du PIC sera solicitée pour sauvegarder une
"Origine" de comptage, pour ne pas trimbaler des tres
grand nombres. (49517379)
Une fois configuré, c'est
sauvegardé
On retombe directement dessus sur une relance de cette
application.
Mesures REELLES
21/09/2018
Test en actionnant la mise en service du Four et de la cafetiere
La temperature est celle du Garage
Modif alimentation :
Alim Secteur Bloc USB 5V 1A -> rajout regulateur LD1117AV33
pour 3,3V
maj: 24/09/2018, version alim secteur et 3,3V regulé.
![]() |
![]() |
![]() |
EDFinfo_SMG_16F1847_RN41_secteur_180924.DSN | le montage prototype sur breadboard | En situation, alimentation sur secteur 230V |
23/09
Modif appli en C :
Rajout en EEPROM du PIC adresse 0x00 valeur du compteur à la
souscription du contrat EDF
Rajout en 0x10 la valeur servant de reference pour calcul et
affichage KWh consommés
BP avec R pull up sur RB3 , action sur ce BP =0V => memorise
la valeur lue (en cours) sur le compteur EDF comme reference Zero
(Origine)
Rajout affichage "Origine" sur l'ecran BlueElectronics.
plus d'aleas mesure tempearture !
fichier de config du Panel 9 :
Keuwl_Panel_EdfInfo_180924.kwl
Format de la Trame typique ,
envoyée par le PIC16F1847 via TX Soft UART2 , reliée à RX
module RN41
*C050222059498*;*W00049904164*;*K
739.164*;*R00017*;*A00002*,*G00002,00017*;*T 17.0*;*O 49165000*
format lié à la config du Pannel #9
mais je compte bien utiliser soit RFO-Basic , soit Appinventor2
..permettant beaucoup plus de choses
que BlueElectronics pré-maché.
nota: avec un VRAI UART2 Hardware , coté reception,
j'aurais pu mettre un BP virtuel sur ce Panel #9 pour actualiser
l'offset du compteur ,
au lieu de RB3 (BP sur entree PIC)
SOFTWARE application EDF_info
speciale BlueElectronics
last issue: 23sept 2018
Projet zippé: _Teleinfo_16F1847_RN41_BlueElectroincs_180923.zip
source : _16F1847_EDF_info_with_BlueControle_180923.c
chargeur : 16F1847_EDF_Info_Blue_180923hex
eeprom: 16F1847_EDF_Info_Blue_2018_eeprom.ihex
Amelioration possible :
inverser les affectations hardware coté PIC :
UART1 hardware en 19200bds et UART2 software special ASM sur RB0
interrupt pour la reception trame à 1200 bauds.
ce qui permettrait l'usage de commande BlueElectronics -->
vers --> (PIC) Appli en C
ou plus facile , la solution HARDWARE 100% PIC26K22 avec 2 UART
Hardware.. le luxe !
A suivre ...
Version interface PC avec RapidQ-
Basic
Merci à Temps-X de m'avoir aidé à
mettre le pied à l'étrier
La DLL RScom.dll étant essentielle pour
communiquer avec le PC, via un port COM reel ou virtuel
Mon test porte donc avec l'appli EDF info PIC16F1847, qui emet ,via
un module BT RN41-DB49 Esclave
une trame incluant les infos reçue de mon compteur EDF et la
temperature ambiante mesurée dans mon garage..
Trame:
*C050222059498*;*W00050714221*;*K
1549.221*;*R00011*;*A00005*,*G00005,00011*;*T 11.8*;*O 49165000*
Cette trame est-celle modifié et prevue pour l'appli
BlueElectronics , ce qui explique les "*" , les Lettres
en entete , et les ";" de separation
Je vais donc dans un premier temps ne rien modifier coté PIC.
Coté PC :
un module RN41-EEEC en mode MAITRE ,alimenté en 3,3V DC, est
relié au PC via un cordon Prolific LTTL/USB
Pre-initialisé avec VBRAY Terminal pour 19200,8,N,1 et mode
MAITRE
L'Application RAPIDQ :
un fichier *.Ini est utiliser pour conserver le parametrage de la
COM
ex: EDF_BT.ini
177 | Top Window |
1237 | Left Window |
4 | 19200 bds |
0 | NO parity |
1 | Nb data 8 |
0 | 1 stop |
2 | COM3 |
celui ci est chargé au demarrage.. une verif des parametres est
faite pour valider l'usage de la COM
Tous les parametres de COM sont modifiables
Un timer est armé à 140mS , pour regarder si le nombre d'octet
dans le buffer de reception est >100
longueur de trame =103 bytes , emise toutes les 1,3sec
Le bouton MAJ RTC permet d'envoyer la sequence de mise à jour RTC 3231
connecté au PIC16F
Cette sequence est issue des fonctions Basic Date$ et Time$
La fonction DayofWeek permet de recupere le jour de la semaine
Les differents items composant le format : #U;10;11;18;20;12;06;& pour 10 Nov 2018 20H12 Dimanche
le JJ,MM,AA,HH,MM et numero de semaine en dernier
Extension du fichier INI
*rajout la derniere valeur Nombre de Watt compteur (issu de la
facture EDF)
sert de reference pour calculer la consommation en cours ,entre 2
relevés/ factures EDF
*Rajout du prix moyen du KWH (en euro : prix brut + evaluation
des couts annexes (distribution,taxes, TVA)
pour le calcul Conso en Euro
EDF_BT.ini
parame | remarque | ![]() |
16 | TOP | |
1925 | ||
4 | 19200 bauds | |
0 | No parity | |
1 | 8 datas | |
0 | 1 stop | |
4 | COM 5 | |
51085000 | relevé compteur derniere facture | |
0.160 | cout moyen KWH |
Rajout du Grafique :
En simulation sur PC ASUS
WIN10
Le terminal VBRAY est relié à un HC06 via un cable USB/TTL
Prolific
Un script genere la trame "Edf info " (copie de la
trame emise par le PIC16F1847)
BlueSoleil avec cle USB/BlueTooth APM établit une com virtuel
COM5 avec le HC06
L'Application basic RapidQ utilise ce port , pour recuperer la
trame (simulée)EDF info
Vbray_Script_Simulation_envoi_Trame_EDF_181214.tsc
En reel sur Portable EEPC ASUS (WIN
XP)
Le PIC 16F1847 relié au compteur EDF, envoie par Bluetooth, via
un RN41-DB49 la trame EDF info
Le EEPC relié via USB à un port virtuel COM1 établit par un
module CH340G USB/LTTL
Ce module est relié coté LTTL à un RN41_EEEC MAITRE qui ,
alimenté par celui ci en 3,3V
recoit la trame BlueTooth et la mets à disposition via ce port
virtuel COM1
à l'Application basic RapidQ .
note importante :
RapidQ ne sait pas gerer un numero de port COM > à 9 !
Il faut donc eventuellement renomer le port Virtuel , dasn
SYSTEME/peripheriques /COM
En reel sur PC ASUS WIN10
Le PC utilise une cle USB/BlueTooth APM
Maitre
Le logiciel BlueSoleil permet l'appairage et la liaison au module
distant RN41-DB49
sous la forme du Port virtuel COM5
Si on deconnecte la
liaison avec RN41-DB49 ,
il faut Reconnecte le module en envoyant la commande
$$$ -> repond CMD
C -> repond TRYING ..puis CONNECT_18F
puis recoit la trame si la connection est OK
Graphique DEFILANT , la derniere valeur reste à
droite, les anciennes valeurs sont toutes decalées à gauche
Rajout sauvegardes sur fichiers
* Fichier Amperes et Temperature
sur 1 journée= 1440 minutes
Les mesures AMPeres et TEMPeratures sont moyennées sur 1minute
avec une trame toutes les 1,3sec, on a environ 40 mesures
moyennes
La transistion est detectée via le changement de MN de Time$
A 23H59MN56S, l'ensemble est sauvegardé dans un fichir txt
les valeurs sont separées par ";" pour etre
directement integrble sous excel
*Fichier KWH
De meme A chaque heure , la difference de consommation DeltaWatt
/1000
donc KWH est saugegardée , avec la moyenne de temperature
HORAIRE dans un autre fichier de seulement 24 x2 valeurs..
Resultats via EXCEL :
derniere mise à jour :
Source RapidQ : BT_edfinfo_181216_Win10.rqw
Dossier complet : BT_edfinfo_181216_Win10.zip
avec executable et DLL.
La suite 2019 :
EDFinfo ET Controle chauffage fils pilotes
2021 Rajout
fichier Annuel
Fichier pour relever journalierement le Nb de KWH/J et la
temperature Moyenne
Remise en forme des noms de fichiers .. rjaout de l'année et
Traitement du format pour toujours avoir YYMMJJ
fichier config EDF_BT.ini
ligne | signification du parametre |
8 | top windows |
0 | left Window |
4 | 19200 bds |
0 | (zero) NO parity |
1 | Nb datas 8 |
0 | 1 stop |
4 | <-- liaison RN41 testé OK sur YAT COM5 |
9251000 | dernier relevé EDF |
0. |
Nota avec BlueSoleil :
Si le service d'attachement du port COM ne se fait pas avec le
device voulu
Compilation :
14/01/2021
New version avec fichier annuel 365 mesures KWH en cours et temp
moyenne du jour
Compiling D:\RapidQ\_BT_Edfinfo\BT_edfinfo_18F46k22_et_Tableau_Consigne_210114.rqw
to D:\RapidQ\_BT_Edfinfo\BT_edfinfo_18F46k22_et_Tableau_Consigne_210114.exe
VERBOSE: Compiling D:\RapidQ\_BT_Edfinfo\inc\My_QGridEx_190117.inc
VERBOSE: Compiling D:\RapidQ\_BT_Edfinfo\inc\Rapidq2.inc
VERBOSE: Compiling D:\RapidQ\_BT_Edfinfo\inc\MyQChart.inc
Compiling as GUI Application (L2)
Number of statements: 3926 Compile time: 0.635000
Numeric Variables: 673
String Variables: 32
Resource data: 13922
Bytes global data: 15898
Bytes sub data: 63787
Software :
Source :
Executable (OK sous Win10 ou XP)
Version
2012
1 Test presence trame EDF info sur le bornier client du
compteur
2 Test du programme C18 en simulant la trame .. avec 2
terminaux RS232
3 Test du programme en simulant la trame, et envoi
resultat via BlueTooth
4
Test reel sur
compteur avec envoi sur bluetooth
5 Ajustements programme et tests de
fiabilite
6 Applicatif coté reception
BlueTooth (Tablette ) et Test Liaison BT
Appli. Locale
C18 version Nokia 8 lignes de 16 cars
Appli. distante en VB6
sur PC (2013)
Appli.
distante avec APPINVENTOR 1 sur Android
(2014)
Appli. distante avec
RFO-Basic sur Android (2014)
Upgrade
aplli C18 et compilation Appli RFO Android (2015)
Debut du
Projet
Ayant déménagé en maison, j'ai maintenant à disposition un
compteur EDF electronique et
donc la teleinformation client sur les bornes 1 et 2 , en bas à
droite du compteur .
Un petit test avec interface rudimentaire , me permet de verifier
que l'info est déja dispo
(sans faire intervenir EDF)
Un premier Test 100% Hardware :
interface avec photo-coupleur et un trigger de schmitt pour
remttre en forme et supprier la porteuse 80Khz..
et un PC avec une liaison RS232 et un logiciel Terminal.
Détail important : filtrage de l'alim du photocoupleur, sinon ..déboires
Mesure sur bornier 1 et 2 : + 5,1V moyen
l'appli en MikroC avec un PIC12F1840 en Dip8 :
nota: pas assez de RAM pour continuer avec ce petit PIC bien
sympa.
Attention il y a 2 UART possible dans ce PIC..
ma
trame telefinfo (fichier):
ou ci-desous, pour un compteur EDF 230V AC Mono , abonnement de 6KVA
la trrame demarre par STX (02) et se termine par ETX (03)
Taille immuable, et position des reperes libélles info immuable
donc valeur des items facile à isoler.
Toute trame ne satisfaisant pas ces criteres est rejetée.
Montage de Test ,
avec simulateur trame info compteur EDF
Phase 2 : Usage de 2
terminaux RS232 .
Pour la mise au point ,c'est la meilleure solution , ou plutot la
plus facile pour moi, ayant 2 port com sur le meme (vieux) PC.
Usage d'un CONFORTABLE PIC18F46K22 en dip40
car je pense aussi lui adjoindre un LCD2x16 ou un LCD nokia 3310
pour indications en local.
.
![]() |
![]() |
![]() |
Synoptique du test | Setting Terminal VBRAY COM2 .. genere la trame EDF info | Setting Terminal Vbray COM1 recoit la trame traitee par le PIC |
Trame resultante :
Si la trame EDF n'arrive pas en temps voulu, affichage de Timeout
Trame EDF
Et toutes les 100 trames , affichage de OK
ou sinon affiche ERR
et le taux d'erreur en %
exemple :
Source C18, + BT et DS1302 headers + 1.hex :
18F46K22_EDFinfo_BT_2013.zip
detail sur la partie RTC DS1302
et PIC18F46K22 (en C18)
Phase 3 :
La liaison au terminal VBray COM1 sur UART1 est remplacé
par une liaison Bluetooth +
terminal COM8
On obtient la meme chose
qu'en phase 2 ..(heureusement!) mais sans Fil coté UART1
Nota:
Dans ce test , le module bluetooth est initialisé en aveugle
SANS DIALOGUE de retour..
La vitesse a ete repassée à 19200 bauds ,
car mauvaise transmission globale en 38400 bauds ???
MAJ : 18F46K22_EDFinfo_BT_130204_BT.zip
fichier ISIS : 18F46k22_EDFinfo_1.DSN
connection
reelle du PIC18Fxxxx sur le compteur EDF
et transmission BlueTooth
Raccordement du EEPC soit sur UART2 pour verifier l'arrivee de la
Trame EDF sur UART2 RX D7
soit sur l'emission RC6 TX UART1 vers le module BT RN41 (RX).
Le 1er test montre que , bien que la trame EDF arrive toutes les
secondes, la trame envoyée vers
le module bluetooh ne contient pas celle-ci, mais uniquement les
2 infos Tor + Analogiques.
Apres investigation et re-mesure de la longueur trame EDf : 111
modif programme:pour
validation de la tramme EDF recue :
test si >110 au lieu de strictement egal ==116 utilisé lors
de la simulation trame EDF.
Apres cette Modif ..OK la trame EDF est reconnue..clignotement de
la led en consequence au rytme de 1 sec.
et les valeurs CONSO Kwh et AMPERE sont bien incluses dans la
trame envoyée.
version en cours: 18F46K22_EDFinfo_BT_1er_test_reel_OK_130220.c
Trame reelle EDF Info , en local (garage) coté PIC18F:
capturée en connectant le EEPC terminal (1200,E,7,1) sur l'info
sortie 74HCT32 liée à D7 UART2
![]() |
Trame distante via BlueTooth |
A environ 18 M et au travers de 3 portes, 1 mur moellons
+ 2 murs cloisons
Cle USB Bluetooth sur le PC , visu sur PC (usage de service COMA=COM10
sous BlueSoleil ) via terminal VBRAY sur COM8.
Terminal VBRAY configuré as 19200,8,N,1
Resultat en LIVE , capturé sur VBRAY, avec mise en service de
quelques apparareils electromenager.
fichier log : 130220_Link_BT_OK_EDFTeleinfo_PC_COM8.log
La liaison est fiable 0% erreur sur > 7200 trames (2H
de test)
Reste à tester les problemes liees à la perte de connectivite
Bluetooth...mais depend beaucoup de l'application
que l'on met en face du blueTooth Click .. ici avec Bluesoleil ,c'est
relativement easy..
Il suffit d'envoyer CONNECT à la fin de l'init pour continuer à
derouler l'appli coté PIC.
Rajout afficheur LCD 2x16 car en
local
sur le portB disponible , MAIS
attention ,inserer une reistance de 750 (
à 1000 ohms maxi) sur les 2 lignes ICSP data et ICSPClock RB7 et
RB6
pour ne pas perturber ni la programmation ICSP, ni l'affichage
LCD, au cas ou l'ICSP reste connecté en permanence
Reactivation Interrupt UART1 pendant le traitement des donnes
UART2. .. à suivre en temps reel
source C18 :18F46K22_LCD_test_BT_130302.c
chargeur : 18F46K22_EDFinfo_BT_130302.hex
headers : BlueTooth_EDF.h , RTC_DS1302_EDF.h , LCD2x16_EDF.h
25-10-2013
Version avec
afficheur Nokia LCD 8x16 cars, en
mode local
Schema:
![]() |
![]() |
schema rev 02 janv 2014 | resultat affichage |
Version Quartz 20Mhz affichage en local sur Nokia 8 lignes de 16 cars Historique modif organisation programme car meme à 64MHz ,PB delay intertrame ... Projet C18 :
boucle principale: rajout des 2 mesures ADC rajout d'un filtrage exponentiel sur les 2 mesures de temperatures et reference interne +4.096V au lieu de Vcc+5V lecture RTC DS1302 affichage partiel Nokia La trame envoyée sur l'UART1 (donc le module BT RN41, comporte les elements suivants: Indice chronologique (00000 a 65535), Date JJMM et Heure HH:MM:SS + Mesure de temp Exterieure,Mesure de Temp Interieure,Etat de la Pompe, Etat du Chauffage GAZ + valeurs recuperees de la trame EDFInfo (UART2) , soit Whattheures et Amperes + message "Link EDF OK" la trame complete fait 100 caracteres.
03/2014
ACTION
SIGNIFICATIVE: dedoublement table
de reception data EDF
EdfInfo copiée dans table Travail ,et traitement sur table
Travail pendant
que la Table EdfInfo redevient disponible pour recevoir la
nouvelle trame EDF
.....OK Gain de temps disponible nettement plus grand !
+ diminution des
tempos sur Nokia3310 dans un
rapport de 1/4 !
Preparation de la trame à envoyer dans un buffer separé.BT[]
si IT Uart1 ..traitement de l'IT
pendant ce temps de traitement l'UART2 remplit le buffer EDFinfo
puis boucle d'attente de EOT (terminateur de trame EDFInfo) ou
timeout 2 sec
+ surveillance des IT UART1
si reception de EOT :
decodage trame EDFinfo pour recuperer les valeurs KWH et Amps
Complement copié dans le buffer separé BT[]
*Envoi sur nokia <- partie utilisant 100mS ?
Envoi de la trame finale complte contenue dans le buffer BT[]sur
UART1,
donc via bluetooth BT RN41, sans trou dans l'emission qui se
finalise par un <CR>.
retour boucle principale
20-04-2014 New:
Rajout de l'entree Client_BT RB5:
si RB5=1 client BT par defaut = ArchosIT43 appli andorid
si RB5=0 clien BT devient PC sosu XP avec cle USB BT APM et appli
BlueSoleil + terminal
Ok maintenant avec un delay de 15mS mini necessaire inter
trame EDF... ( auparavant > 150mS necessaire!)
Dossier C18 compressé :18F46K22_EDF_Nokia_RN41_RTC_SD_Q20_2014.zip
Liste des fichiers : 18F46K22_EDF_Nokia_RN41_RTC_SD_Q20_2014.htm
Dec 2013
Appli en VB6 pour simuler la trame
EDFinfo,
pratique pour le developement et debuggin!
pakage Simule_EDFinfo_VB6.zip
Rajout stockage 1H00 de mesure sur
EEPROM du PIC
- suppression des message en
EEPROM pour consacrer les 1K eeprom au stockage d' une Heure de
mesures
soit un ensemble de 42 mesures effectuees à raison de 1,2sec (
avec simulateur EDF )
Il ne sert à rien d'enregister toutes les 1,2sec!!! donc
Tous les franchissements de minute :
- la mesure de temperature exterieure est moyenee sur la minute
à raison d'une mesure toute les 1,2seconde (synchro trame EDF!),
-Recuperation du nombre delta Wattheure, entre chaque minute
-le nombre d'etat marche "chauffage Gaz" entre chaque
minute .soit 00 à 40 maxi =100% + terminateur=0
le stockage se fait modulo 16 bytes, en ASCII, donc directement
Relisible
la premiere ligne contient
l'index en cours +horodatage:
xxxx; JJ/MM HH:MN
ensuite 60 lignes
de (16 cars) mesures au format:
xxxxx; XX.XX;xx0
Limite de l'index de l'Eeprom à 1008 soit 1 ligne d'entet + 62
lignes de mesures maxi....
+ rajout date et heure de fin, pour pouvoir verifier si il y a eu
recouvrement de l'index
JJ/MM HH:MN
Le contenu
de l'EEPROM est envoyé sur l'UART1
et on reinitialise le pointeur au debut de l'Eeprom
pour une nouvelle serie ....
source:18F46K22_EDFinfo_Nokia_BT_Archos_EEPROM_Q20_131216.c
:
En retour l'Appli Android
peut envoyer:
R<CR> pour Raz du buffer et de l'indice
chrono
BPON_ ou BPOFF pour allumer ou
eteindre la sortie RA4 du PIC
U;JJ;MM;D;HH;MM;#<CR> sequence de mise à
l'heure de la RTC DS1302
si la liaison EDF est absente , rajoute au message Timeout EDF
00000;11/10 21:59:09;Pump=OFF;Chau=OFF;TExt=16.06°C
;TInt=261.23°C;TimeOut EDF
sinon
00010;11/10 21:59:24;Pump=OFF;Chau=OFF;TExt=16.06°C
;TInt=264.65°C;Wth = 39229704;Amp = 1
Attention : beaucoup d'espace RAM sollicité dans ce programme,
cequi impose le modele 18Fx6K22 (3K RAM!)
et une modif du fichier linker.
detail hardware: 18F46k22_EDFinfo_Hardware_Nokia.txt
source C18 : 18F46K22_EDFinfo_Nokia_BT_basic_131102_20Mhz.c
et chargeur : 18F46K22_EDFinfo_BT_131102_20Mhz.hex
Prototype en
test:
![]() |
![]() |
le prototype en actions (toutes liaisons OK) | La trame EDF UART2 et l'Espion sur UART1 |
Le port Com2 19200 bds est en espion sur la
ligne TX du PIC18F qui envoi donc les donnes via le module BT RN41
Le port COM1 à 1200 baud envoi toutes les 1,2sec , une copie de
trame EDF sur RD7 RX UART2 du PIC, via un
script (VBRAY)
02 nov 2013
Applicatif distant sur tablette Android
Appli developpé avec Google Appinventor 1 ..
programme executable sur tablette Android : BT_EDFinfo.apk
version 131101
(testée OK avec Archos 43 IT Android OS 2.3.1)
Choix de 1 parmi 3 modules blueTooth listés
Liaison BlueTooth entre PIC18F module +BT RN41 et Archos
43IT
La trame complete est affichée dans le bandeau vert..
Affichage des 2 mesures de temperatures, etat via
logo graphique de la pompe et du chauffage
Affichage led verte Link OK et des valeurs Whatt heures et Amps ,
sinon Led rouge !
Possibilité d'envoi Mise à jour de la RTC, ou lettre R ôur Raz
indice
Appui sur Bouton lumineux : Rouge => RA4=0; vert RA4=1
Rajout de la parole :
en activant la case à cocher au dessus de
Parles (en bas à gauche)
une voix feminine
enonce la temperature extrieure, interieure, le nb d'ampere
et le nb de watt heure..
+ un commentaire specifique si Temp ext < 0,0 degre ou temp
interieur > 30 degres..
il me reste à ameliorer la
diction des millions de watt heure !!!
rev 05/11/2013
modif affichage conso en watt heures : 4025075; devient 4.025.075
et donc ,est maintenant prononcé correctement..
Rajout AUTRE choix pour adresse MAC module BT
different.
Rajout detection perte de com1 ART1(avec traitement bit de vie et
message)
UART2 est verifié OK, par l'etat de la led Verte "EDF link
OK"
Rev dec 2013
sur Hardware :
Alea de reception link EDF avec basse temperature ambiante..(<15°C)
remplacé R2=47K charge de sortie photocoupler par R=22K
Source de l'appli Android:
http://gallery.appinventor.mit.edu/#page%3DApp%26uid%3D3556001%26label%3DEDF%2B%20datas%20via%20Bluetooth
Exemple de Trame capturees :
00000;02/11, 21:59:08;Pump=ON_;Chau=OFF;TExt= 4.83 ;TInt= 39.55 C;TimeOut
EDF
00260;03/11, 12:25:32;Pump=ON_;Chau=OFF;TExt= 18.06 ;TInt= 20.34
C;Wth = 40250075;Amp = 2;Link EDF OK
Resultats (réels) sur tablette
Archos
![]() |
![]() |
![]() |
le proto, en service, connecté sur le compteur EDF |
Appli APPINVENTOR | version 15 dec 2013 |
22 Dec 2013
Rajout partie Grafique : Amperes (en bleu)
et etat chauffage (en rouge) des 300 dernieres mesures
chaque graf est enregistré au format jpg
avec comme nom: EDF_xxxx.jpg (xxxx étant le numero de trame)
projet:
coté PIC18F: 18F46K22_EDFinfo_Nokia_BT_DS1302_Archos_131221_Q20.c
coté ARCHOS Android: 18F46K22_EDFinfo_BT_2013.zip
Appinventor ne permet pas de recuperer les donnees d'un ecran (screen
1) sur un 2em ecran (screen 2)
pas de variables globales ! Ce qui aurait permit un grafique de
800 x 300 points
et en plus Beta.Appinventor est abandonné au profit de
Appinventor2...
qui ne supporte pas les applis deja faite avec beta.Appinventor,
donc j'abandonne Appinventor !
trop de perte d'energie et de temps
2014
Application
EDFInfo avec interface utilisateur sous RFO basic Android
Fonctionnalites
:
En liaison bluettoth avec
interface PIC18F46K22 equipé d'un module BTclick
RN41
L'interface recoit la trame info EDF à 1200,7,E,1 bauds , qui
contient le cumul Watt/heure et Intensité en Ampere, toutes les
1,2sec
Affichage
de la trame complete, en petit caractere, tout en bas de l'ecran
Affichage formaté, en caracteres gras , au centre de l'ecran du
Total Watt Heure
Affichage de l'Amperage en cours
Une mesure de
temperature Interieure via un capteur LM35DZ (gamme 10 à 40°C)
Affichage
sous la forme d'un bargraph vertical d'un thermometre + valeur
numerique au sommet
Une mesure de temperature exterieure via un capteur LM335 gamme
(-10 à +40°C)
Affichage
sous la forme d'un bargraph vertical d'un thermometre + valeur
numerique au sommet
Une info "marche Chaudiere Gaz" via un capteur LDDR,
placé face au voyant marche de la chaudiere
Etat
representé par le symbole d'un Radiateur Actif (rouge) ou
Inactif (eteint)
Une info TOR : marche pompe du puit eaux pluviales
Etat
representé par le symbole d'une pompe : Active (Rouge) ou
Inactive (Gris)
L'horodatage provient d'un circuit RTC1302 avec sauvegarde par
pile 3V, liaison via SPI
L'interface affiche le tout en mode local via un LCD Nokia 3310 8
x 16 cars
Les mesures moyennees sont stockee dans l'EEPROM du PIC à chaque
minute => total 1Heure d'enregistrement
Une liaison UART1 vers le module BT , qui englobe toutes les
donnees , synchronisees sur la trame EDF
Le module BT fonctionne avec le protocole SSP (like RS232) au
format 19200,8,N,1
Dans l'autre sens : ecriture -> PIC18F
2 BP lumineux Marche/arret commande respectivement les sorties RC1
et RC2 du PIC18F
Toucher l'ecran dans la zone representant les Boutons poussoirs
Rouges
Une fois
la commande armée le BP rouge devient un BP Lumineux Vert..il
faut le reselectionner pour revenir à l'etat repos = Rouge
La case à cocher MAJ RTC permet de remettre la RTC1302 du PIC à
la bonne date et heure (celle de l'Android Archos43)
A la validation,la commande de mise à l'heure est affichéee à
coté de la case à cocher, devalider la case, pour effacer le
message
Rappel:
format des trames :
envoyée par le module BT RN41
08783;29/12,
16:15:26;Pump=OFF;Chau=ON_;TExt= 59.80;TInt= 20.70;Wth = 42232038;Amp
= 8;Link EDF OK
cette trame, en ascii, peut etre emise en lieu et place de l'interface
PIC, pour les tests , via un Terminal sur PC et une cle BT
Trame EDFinfo envoyée par le compteur EDF sur l'UART2 du PIC18F
: My_EDF_Trame_info.txt
Janvier 2015
Upgrade Appli EDF
info , avec RFO basic V01.84
Mise à jour coté
appli C18
L'Appli tourne à (Q=10Mhz x 4 (PLL) soit) 40Mhz
Amelioration connectivité du RN41
Rajout commande RESET RN41 avant de le configurer , prevu pour se
connecter soit sur PC ASUS , soit sur ARCHOS 43
Selection par entree Client_BT =RB5
Gestion des 2 commandes output RD1 RD2 , avec retour d'ordre dans
la trame , et discordance coté Archos
Affichage sur le Nokia LCD, de l'etat RD1 E=x et RD2 D=x, à
coté de l'etat ppe et Chauf
Gestion SDCARD : stockage sur la carte 2GO en local, au format
texte
Connectique SDCard :
Coté Archos , toute commande n'est validée que si le retour d'ordre
coincide avec l'etat demandé.
ainsi, la commande BP1 ON (RD1_1) , ne verra son voyant allumé
que si la sortie RD1 est effective.. sion le BP reste eteint.
Test retour info 18F_CONNECT délivrée par le module RN41 ,
lorsque la liaison COM est activée coté distant
Apres Passage sous WIN8.1 avec New PC ASUS 6431 ....
VBRAY Terminal ne fonctionne
plus correctement sous WIN8.1 en compagnie de BlueSoleil !
rev 28/03/2015
trouvé une version VBRAY tournant sous WIN8
Upload new Vbray terminal V1.9b version 20130820b
test sur PC ASUS 6431 et Win 8:
Usage de BlueSoleil sur PC ASUS WIN8 avec 2 liaison BT
simultanees sur 2 terminaux RS232
PIC 18F46K22 EDFinfo 19200 -> RN41 MyBT-DB49 ))))) ((( APM BT
USB Bluesoleil service PortA 19200 COM14 SSP TeraTerm1
PIC 18F26K22 DS1631 9600 -> HC06-2187-J )))) ((( APM BT USB
BlueSoleil service PortB 9600 COM15 SSP Vbray Terminal
Avec usage de TERATERM :
![]() |
![]() |
Tera Term terminal | Rappel de la configuration (Setup) |
![]() |
![]() |
config Display terminal | Config des commandes Broadcast |
![]() |
![]() |
Activation de la COM 14 | Port A virtuel Bluesoleil connecté à COM14 |
Une fois réalisé, l'appairage
subsiste tant qu'on ne met pas hors tension le RN41 (ou le PC !).
Il faut valider la "Connection" au service PORT A
bluesoleil pour etablir le link
Des la connection établie, le module RN41 envoi le message (automatic)
18F_CONNECT au PIC18F.
(Ce message fait partie du parametrage du RN41 !)
On affiche alors coté
platine PIC18F , sur la 6em ligne du LCD
en plus du status de la liaison EDF Link EDF OK ou No Link EDF, l'Etat
BT=1 si on a reçu 18F_CONNECT
(sinon BT=0 si on a reçu 18F_DISCONNECT )
Software Application MPLAB C18
![]() |
![]() |
Imbrication des taches | le projet C18 |
Zip contenant le source, le chargeur Hex et fichiers annexes
18F46K22_EDF_Nokia_RN41_RTC1302_10x4Mhz_2015.zip
File list :
.
Schema MAJ:
schema Isis : EDFinfo_150201_nokia_RN41_SDcard.DSN
Les differents blocs& interfaces
Connectique SDCard :
![]() |
![]() |
![]() |
interface SDCard miniInthebox | liaison au PIC |
voir aussi les test preliminaires de la SDCARD ici : Tests prealable SDCard avec 18F26K22
Appli RFO basic
Source : BTclick_EDFinfo_150129.bas
Programme compilé :EDFInfo_RFO_2015_102.apk
Datas associees: Edfinfo_RFO_images.zip
30/01/2015
Remise en situation
réelle :
nota : +4°C dans le garage !
- La mesure de temp Ext LM335 ne marche plus .. potar cassé dans
le boitier exterieure..
mesure fluctuante .. à revoir ???
- plus de liaison
EDF ? malgré +5,10V
aux bornier
02/02/2015
Modif au niveau photocoupleur pour fixer le potentiel de la base
par rapport au 0V , via 270K
Attention, en simulant EDF via liaison sortie DS275 sur entree
photocoupleur, le signal est inversé
because RS232->TTL inverse le signal.. il faut 1 porte 74HCT132
en moins pour retomber sur le bon "sens".
signaux sur interface EDF
OK avec simulation
de la trame par PC :
PC terminal Vbray + macro --> RS232 -> DS275 -> Opto ->
Trigger 74HCT132 --> RX D7 Uart PIC
On voit la nette difference de l'etat haut signal optocoupleur
SANS et avec RB=270K
![]() |
![]() |
aux bornes de 750 ohms + diode del photocoupleur | signal de sortie Opto, SANS Rb=270K |
![]() |
![]() |
collecteur de sortie Opto avec RB=270K et RC=22k | apres passage dans le trigger de schmit |
04/02/2015
Verif : Test direct
sortie compteur EDF avec oscillo et terminal
la sortie
EDF est bien là !
![]() |
![]() |
![]() |
signal entree photocoupleur | signal collecteur Opto 6N138 | sortie trigger= entree UART2 RD7 PIC |
Bornes 1 et 2 sortie
compteur EDF -> interface opto+trigger ->DS275 -> >-DB9F-DB9F<
<-DB9M --Conv- USB- EEPC erminal
test OK avec config 1200, 7,N,1,0 ..
trame OK de 69 cars
![]() |
|
Trame EDF reelle | vue du fichier log en Hexadecimal |
Test avec appli PIC18F -> BAD ..pas de link EDF OK detecté
rajout indicateur lgr de trame sur le nokia en ligne 4 , si bad
link EDF.
Le probleme est donc, soit sur la non detection du caractere d'entete,
soit sur la longueur de trame
Mesure de temperature exterieure
:
Au niveau des temperatures , erreur de cablage, croissement RA0
et RA1 => calculs bidons..le traitement T°Inter est vraiment
different
de celui T° Externe .. capteur physiquement identhiques mais
tres differents en gamme de mesure.
remise en ordre ..toujours des aleas sur LM335 .. capteur
defectueux ?
Alternative: Mesure via sonde PT1000
Schema de principe :
![]() |
||
Test Oscillateur 74HCT132 | test NE555 Freq Fixe |
Test avec
Oscillateur avec un 74HCT132 (4 nand trigger)
RC avec R=PT1000 C=1µF polyester ,on obtient precisement :
à 0°C => 580µS 1280Hz
à 18°C => 608µS 1211Hz
Ce signal est appliqué sur RA4 qui compte la duree de l'etat
haut par spooling de cette entree.
Rajout d'un filtrage RC sur l'alim du 74HCT132 pour eliminer les
fluctuation du 5V
R=390 ohms et C=100µF
Resultat de la mesure en point et en °C suivant cet algo
tres simple:
increment compteur Numero deTrame
Interdire Interruption // sinon fausse le comptage (car f(duree)
Tant que PT1000_OSC==1; // termine un eventuel etat haut en cours
Tant que PT1000_OSC==0;// laisse passer l'etat bas
Tant que PT1000_OSC==1
{
PT1000++; // compte le nb de cycles ecoules
}
reautorise interruptions
Si le numero de trame est modulo 10
{
On recupere la valeur totalisée PT1000, soutrait l'offset et
multiplie par la pente
pour obtenir une mesure en°C
Raz de la valeur PT1000
}
Synchro exaxte sur le front montant pour toujours bien mesurer la
duree ETAT HAUT
car le signal a un rapport cycliquede 74%
Accumulation du comptage de cycle toutes les 10 trames ( ~10sec)
pour moyenner et ameliorer la resolution.
On obtient:
at 1°C --- > PT1000=7653 counts
at 18°C --> PT1000=7220 counts
soit delta de 433 counts pour 17°C => pente PT1000_Pente=0.03926
(par °C)
PT1000_Offset=7194 (offset cumulé pour 10 mesures elementaires!)
CON's : tres sensible à la
tension d'alim 5V
PRO's: tres bonne resolution,
facile à mettre en oeuvre
le must est un montage basé sur l'autocalibration et mesure
ratiometrique, pour eliminer
l'effet de la tension d'alimentation et des derives de la valeur
de C(1µF) en fonction de la temperature.
voir TEMPER Pt1000
Test avec ICM555
montage Freq Fixe et Taux Variable
Probleme : La Frequence VARIE AUSSI avec le reglage du taux
(F(PT1000))
avec pot= 1% soit R(pt1000) =952.5 ohms 339Hz etat Haut =2074µS
avec pot= 99 % soit R(pt1000)=1197.5 ohms 370Hz etat haut =1853
µS
deltat Etat Haut = 2074-1853= 221 delta 11%
deltat Freq = 370-339=31 Hz soit 8%
Retour sur Mesure Temp Ext via LM335
Ameliorations:
Usage d'une reference de tension LM4040- 4,096V
pour +Vref ADC (RA3) 0V pour -Vref (RA2)
et pour alimenter le LM335 et le LM35DZ ..
ce qui donne une mesure bien plus stable .
Stockage sur SDCARD
Timing basé sur le changement de minute RTC
Lorque l'EEPROM du PIC est quasi pleine , via le stockage de la
temperature exterieure et la duree de chauffage
soit 16 bytes toutes les minutes 16x60 => 960 bytes par heure
..
stockage sur fichier SDcard en 2 dois 512 bytes (taille secteur=512
bytes)
Le fichier doit avoir un nom sur 8 cars et etre initialisé,
rempli par des espaces ou valeur autre
ex: SAUVE008.TXT de 360 Ko
Init de la carte sous PC
avec editeur de texte remplissage de blanc char=0x20=32
PROBLEME:
Apres stockage sur SDCARD .. RTC DS1302 est dans les choux ..affiche
85:85:85
et bloque donc le programme ,car plus d'evolution "Minute"
Recherche du bug pendant 2 jours ...
si un defaut survient pendant le deroulement de la fonction
SDCARD, l'horloge reste OK
Malgre la broche de selection CS SDCARD ou CS RTC .. toujours ce
probleme..
Résolu !
Cause :
sur Disque_Initilaise() on lance la fonction Power_ON() qui
active le MSSP1 SPI pour la SDCard
alors que RTC DS1302 utilise les meme Pins Clk et IO
Mais RTC DS1302 N'EST PAS GEREEE vial le MSSP1, mais avec un SPI
Bit-Bang
Lorsqu'un defaut est constaté dans la gestion SDCARD , la
fonction Power_Off est executee et LIBERE le MSSP1..
Alors que si c'est OK dans SDCARD , MSSP1 n'etait pas libéré,
donc PIN DS1302 affecté au SSP1
Modif : Liberation MSSP1 en sortie de traitement
SDCARD => Horloge OK !!
Rajout d'un pointeur Long pour evolution stockage EEprom PIC dans
le fichier ouvert sur SDCARD
fichier Sauve001.txt de 4.8Mo
=> 4700 minutes soit 78heures
************************************* FIN versions 2012
***********************
Circuit imprime..à realiser
Un courageux qui se
proposerait pour faire le Circuit imprimé serait le bienvenu ?