version 1.0
V.0.0. Octobre 2012
Last UpDate : 30 avril 2016
version 2.0
14/12/2018

 

Projet EDF Teleinfo + autres datas

Test Liaison BlueTooth PIC avec appli RapidQ Basic sur PC Win10 (dec 2018)
Test Liaison BlueTooth PIC avec appli android BlueElectronics (sans programmation)

Version 2012




(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é.
images/t_EDF_Compteur_Sortie_Client_I1_I2_180813.gif


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

images/t_EDFinfo_SMG_16F1847_RN41_schem_180920.gif
rev 20/09/2018


Prototype

images/t_Prototype_EDF_Info_180920.gif

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 !

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 .

images/t_Vbray_simulateur_de_trame_EDF_180910.gif

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

images/BlueTooth_Electronics.gif

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 envo sur un grafique
regle de base
*(repere)valeur*(separateur)
exemple pou le grafique Ampere : *G 0009 *;
exemple pou le Texte Ampere : *T 0009 *;
voir source C pour details.

exemple : jauge temperature ( 0 à50°C pour 0 à500 points)

images/t_BlueElec_00_exemple_config_Jauge_Temperature.gif images/t_BlueElec_00_exemple_param_Jauge_Temperature.gif
Mise en place des composants ex: gauge parametre Temperature


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)

images/t_BlueElec_01_connecter.gif images/t_BlueElec_02_Choix_device.gif images/t_BlueElec_03_Liaison_BT_etablie.gif
Panel 9 choisi, lancer la connection Choix du device dans la liste , ici RN41 et CONNECT .. affiche le device connecté avec son adresse MAC
images/t_BlueElec_04_Run_Panel9.gif images/t_BlueElec_05_Run_Panel9.gif La trame EDFinfo s'affiche dans la fenetre terminal
Le grafique est celui de IINST (Amperes)
Affichage d ela valeur numerique Amps
Affichage du Nb de Watts, ramenées en KW
il suffic maintenent de faire RUN et voila  

Une fois configué, 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

images/t_EdfInfo_Screenshot_simul_180922.gif images/t_BlueElectronic_EDFinfo_reel_180921.gif
en simulartion avec Vbray Terminal En reel


maj: 24/09/2018, version alim secteur et 3,3V regulé.

images/t_EDFinfo_SMG_16F1847_RN41_secteur_180924.gif images/t_Prototype_EdfInfo_180922.gif images/t_Prototype_EdfInfo_in_situ_180922.gif
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 !

images/t_EdfInfo_Pannel9_definition_180923.gif images/t_EdfInfo_Screenshot_reel_180923.gif images/t_Import_export_Panel.gif
Ecran de definition du Panel #9 Panel 9 en action  

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

images/t_EDF_BT_runing_181116.gif


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 :

images/t_EDF_BT_Rapidq_181214_en_simul.gif images/t_EDF_BT_RapidQ_runing_XP_181214.gif
en simulation en reel

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 EEPC ASUS WIN XP
Le PIC 16F1847 relié au compteur EDF, envoie par Blmuetooth, 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

images/t_EDFinfo_via_BlueSoleil_180927.gif

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

Actuellement le graphique est rafraichit en boucle , la derniere valeur resete en place, et on reecrit par dessus ensuite
=> modif à suivre : grafique deroulant...

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..

images/t_Suivi_conso_KWH_181210.gif images/t_Fichier_EdfInfo_Amps_Temp_181206.gif
conso horaire KWH sur 1 jour Amperes et Temper chaque Minute sur 1 jour


Source RapidQ :
BT_edfinfo_181214_Win10.rqw
Executable :
BT_edfinfo_181214_Win10.exe


à suivre :
Grafique glissant
Rajout Temperature sur grafique
sauvegarde viai FTP sur Freebox disque dur
...à suivre fichier Annuel de 366 x 24H!








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

images/my_teleinfo_interface_121105.jpg

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.
.

images/Test_progr_1.jpg images/Vbray_Uart2.jpg images/t_Vbray_Uart1.jpg
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

images/Test_progr_2.jpg images/PIC_BlueSoleil_COM8.jpg images/Vbray_BT_COM8.jpg
terminal com2 ->UART2 = simule trame EDF
UART 1 envoi les datas sur le Bluetooth click
RN41 à 19200bauds.
PC equipé d'une cle Bluetooth APM class1
L'appli Bluesoleil recupere la liaison BlueTooth
et la met à disposition via un service COM portA
Terminal Vray se connect sur le port virual
via le port COM 8 19200,8,N,1

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

images/18F46k22_EDFinfo_sch1.jpg
version Bluetooth OU terminal RS232

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.

images/Test_Proto_130220b.jpg images/Test_Proto_130220a.jpg
prototype 18F46K22 .. en service l' EEPC affiche simplement ce
qui est transmis au module BT-RN41

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:

images/18F46k22_EDFinfo_140202_nokia.jpg
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 :
images/EDFinfo_Projet_C18_140420.jpg
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

Simule_EDF_VB6.jpg

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:

images/Atelier_EDFInfo_131023.jpg images/t_EDFinfo_2_terminaux.jpg
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

images/t_EDFinfo_proto_131102.jpg images/Archos_EDFinfo_anim.gif images/t_EDFInfo_Appinventor_a.jpg
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


../Domotique/images/t_EDFInfo_RFO_Android_APK_1312.jpg

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

images/BlueSoleil_2_BT_links_TeraTerm_VBRAY.jpg

Avec usage de TERATERM :

images/Teraterm_01.jpg images/Teraterm_02.jpg
Tera Term terminal Rappel de la configuration (Setup)
images/Teraterm_03.jpg images/Teraterm_04.jpg
config Display terminal Config des commandes Broadcast
images/Teraterm_05.jpg images/Teraterm_06_BlueSoleil.jpg
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


images/MyBloc_EDFInfo_Imbrications_Taches.jpg images/EDFinfo_Projet_C18_140420.jpg
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 :
images/Edfinfo_file_list.jpg.

Schema MAJ:

images/t_DFinfo_150306_nokia_RN41_SDcard.gif

schema Isis :
EDFinfo_150201_nokia_RN41_SDcard.DSN

Les differents blocs& interfaces
images/MyBloc_EDFInfo_Hardwares_interfacage.jpg

Connectique SDCard :

images/SDCard_Interface_MiniinTheBox.jpg images/SDCard_wiring.jpg images/Sdcard_Pinout_PIC18.jpg
interface SDCard miniInthebox liaison au PIC  


voir aussi les test preliminaires de la SDCARD ici :
Tests prealable SDCard avec 18F26K22

Appli RFO basic

images/RFO_Basic_AppBuilder-Guide_ok.jpg
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

images/EDF_UART2_sortie_DS275_entree_Opto.jpg images/EDF_UART2_sortie_Opto_SANS_Rb.jpg
aux bornes de 750 ohms + diode del photocoupleur signal de sortie Opto, SANS Rb=270K
images/EDF_UART2_sortie_Opto.jpg images/EDF_UART2_Input.jpg
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à !

images/Tek_Signal_Reel_EDF_150204.jpg images/Tek_Signal_Reel_sortie_Opto_Rb2-5M_150204.jpg images/Tek_Signal_Reel_sortie_Trigger_150204.jpg
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

images/Trame_EDF_Hexa.jpg
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 :

images/PT1000_74LS132_2e_Nand_trigger.JPG images/PT1000_NE555_Ffixe_Taux_sch.jpg  
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 ?

 






paulfjujo@free.fr




Retour à l'index general