premier commit
This commit is contained in:
24
content/accomplissements/IMEMA.md
Normal file
24
content/accomplissements/IMEMA.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
+++
|
||||||
|
title = "IMEMA"
|
||||||
|
+++
|
||||||
|
|
||||||
|
Interface Modbus pour l'Enregistrement des Mesures d'Automates
|
||||||
|
|
||||||
|
J'ai travaille sur ce projet dans le cadre de mon travail en tant que technicien en automatisme pour le service de la Maitrise de l'Energie de la ville de Besancon.
|
||||||
|
|
||||||
|
Ce projet consiste a journaliser des valeurs recueillies dans des automates utilises pour les chaufferies et centrales de traitement de l'air present sur le reseau informatique de la ville.
|
||||||
|
Pour realiser cet objectif j'ai fais appel a mes connaissances en langage de programmation Rust, pour la partie PC, et Structure, pour la partie automate.
|
||||||
|
|
||||||
|
Pour la partie PC en Rust, j'ai utilise les crates tokio_modbus, tokio, chrono et csv.
|
||||||
|
Le programme s'articule ainsi :
|
||||||
|
- Le processus ouvre un fichier de configuration qui contient les adresses IP v4 de tout le reseau automate ainsi que le nom des sites physique et la quantite de registre modbus a lire.
|
||||||
|
|
||||||
|
- Le processus etabli une connexion avec un automate via son IP
|
||||||
|
- Les valeurs de registre sont lues dans le DataBlock expose par l'automate
|
||||||
|
- Ces valeurs sont parsees puis ecrite dans une nouvelle entree du fichier .csv propre au site
|
||||||
|
|
||||||
|
Le programme itere sur les adresses IP en suivant cette boucle jusqu'a ce que toutes les adresses soient traitees.
|
||||||
|
Apres une pause de 15 minutes, le processus relance un nouveau cycle de lecture des registres sur tout le reseau automate.
|
||||||
|
|
||||||
|
|
||||||
|
Pour la partie Automate, j'ai mis en place un serveur modbus grace au bloc fourni par le constructeur et ai expose les registres voulu avec un DataBlock dedie.
|
||||||
6
content/accomplissements/_index.md
Normal file
6
content/accomplissements/_index.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
+++
|
||||||
|
title = "Liste des Accomplissements"
|
||||||
|
sort_by = "title"
|
||||||
|
template = "accomplissements.html"
|
||||||
|
page_template = "page.html"
|
||||||
|
+++
|
||||||
40
content/cv/CV.md
Normal file
40
content/cv/CV.md
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
+++
|
||||||
|
+++
|
||||||
|
|
||||||
|
# Thomas LETELLIER
|
||||||
|
|
||||||
|
Tel : 07 80 33 57 13
|
||||||
|
Mail : thomas.letellier2812@gmail.com
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Experiences Professionnelles
|
||||||
|
|
||||||
|
>### Technicien en Automatisme
|
||||||
|
>#### Direction Maitre de l'Energie Ville de Besancon
|
||||||
|
>- Developpement et mise a jour de logiciel de journalisation Modbus
|
||||||
|
>- Conception et cablage d'armoires electriques
|
||||||
|
>- Programmation d'automates Siemens et Soffrel
|
||||||
|
|
||||||
|
>### Alternant Technicien en Automatisme
|
||||||
|
>#### Eiffage Energie Systemes Clemessy
|
||||||
|
>- Conception de vues de supervision pour une Unite de Valorisation Energetique
|
||||||
|
>- Installation et interfacage d'une Interface Homme Machine pour un reseau de froid urbain
|
||||||
|
>- Conception et presentation d'une supervision aupres d'un client
|
||||||
|
|
||||||
|
## Formation
|
||||||
|
|
||||||
|
>### DUT Genie Electrique et informatique industrielle
|
||||||
|
>#### Institut Universitaire de Technologie de Rouen
|
||||||
|
|
||||||
|
>### Baccalaureat General
|
||||||
|
>#### Lycee Polyvalent Raymond Queneau
|
||||||
|
|
||||||
|
## Competences
|
||||||
|
|
||||||
|
>- Programmation informatique : Rust, C, Python
|
||||||
|
>- Programmation Automate : Structure, LADDER, Grafcet
|
||||||
|
>- Conception et assemblage de cartes electroniques
|
||||||
|
>- Conception de modeles 3D sur Solidworks 3DExperience
|
||||||
|
>- Pack Office
|
||||||
|
>- Systemes Linux
|
||||||
6
content/objectifs/_index.md
Normal file
6
content/objectifs/_index.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
+++
|
||||||
|
title = "Liste des Objectifs"
|
||||||
|
sort_by = "title"
|
||||||
|
template = "objectifs.html"
|
||||||
|
page_template = "page.html"
|
||||||
|
+++
|
||||||
5
content/objectifs/porsche-944.md
Normal file
5
content/objectifs/porsche-944.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
+++
|
||||||
|
title = "Porsche 944"
|
||||||
|
+++
|
||||||
|
|
||||||
|
{{ image(src="/porsche-944-2-7.jpeg" ,alt="Porsche 944 2.7L 1989", width="1200px") }}
|
||||||
BIN
static/favicon.png
Normal file
BIN
static/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 173 B |
BIN
static/porsche-944-2-7.avif
Normal file
BIN
static/porsche-944-2-7.avif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 395 KiB |
BIN
static/porsche-944-2-7.jpeg
Normal file
BIN
static/porsche-944-2-7.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 143 KiB |
11
static/style.css
Normal file
11
static/style.css
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
.titre{
|
||||||
|
font-family: "Courier New", monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote{
|
||||||
|
background-color: lightgrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer{
|
||||||
|
background-color: lightgrey;
|
||||||
|
}
|
||||||
13
templates/accomplissements.html
Normal file
13
templates/accomplissements.html
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>
|
||||||
|
{{section.title}}
|
||||||
|
</h1>
|
||||||
|
<ul>
|
||||||
|
{% for page in section.pages %}
|
||||||
|
<li><a href="{{page.permalink | safe }}">{{ page.title }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
{% endblock content %}
|
||||||
28
templates/base.html
Normal file
28
templates/base.html
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<html lang="fr">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Hatmos</title>
|
||||||
|
<meta name="viewport" content="device-width, initial-scale=1">
|
||||||
|
<meta name="description" content="Site portefolio de mes objectifs de vie et mes accomplissements">
|
||||||
|
<link rel="stylesheet" href="{{get_url(path='style.css')}}">
|
||||||
|
<link rel="icon" type="image/png" href="{{get_url(path='favicon.png')}}">
|
||||||
|
</head>
|
||||||
|
<header>
|
||||||
|
<h1 class="titre"><a href="https://www.hatmos.xyz/">Le site de Hatmos</a></h1>
|
||||||
|
<ul>
|
||||||
|
<li class="titre"><a href="{{ get_url(path='@/accomplissements/_index.md')}}">Accomplissements</a></li>
|
||||||
|
<li class="titre"><a href="{{ get_url(path='@/objectifs/_index.md')}}">Objectifs</li>
|
||||||
|
<li class="titre"><a href="{{ get_url(path='@/cv/CV.md')}}">CV</a></li>
|
||||||
|
</ul>
|
||||||
|
</header>
|
||||||
|
<body>
|
||||||
|
<section>
|
||||||
|
{% block content %} {% endblock content %}
|
||||||
|
<section>
|
||||||
|
</body>
|
||||||
|
<footer>
|
||||||
|
<small id="footer-text">© <script>document.write(new Date().getFullYear())</script> Hatmos. All Rights Reserved.</small>
|
||||||
|
</footer>
|
||||||
|
</html>
|
||||||
29
templates/index.html
Normal file
29
templates/index.html
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div>
|
||||||
|
<h2 class="titre">Bienvenue.</h2>
|
||||||
|
<p id="presentation">
|
||||||
|
Voici un site pour faire le tour de mes objectifs de vie et projets personnels et professionels ainsi que mes accomplissements.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h2 class="titre">Accomplissements</h2>
|
||||||
|
<p>
|
||||||
|
<ul>
|
||||||
|
<li class="second-section-list-element"><a href="{{ get_url(path='@/accomplissements/IMEMA.md')}}">IMEMA</a></li>
|
||||||
|
<li class="second-section-list-element"><a href="pongzilla.html">Pongzilla</a></li>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h2 class="titre">Objectifs</h2>
|
||||||
|
<ul>
|
||||||
|
<li class="third-section-list-element"><a href="concordvc.html">ConcordVC</a></li>
|
||||||
|
<li class="third-section-list-element"><a href="autoslicer.html">Auto-Slicer</a></li>
|
||||||
|
<li class="third-section-list-element"><a href="autowater.html">Auto-water</a></li>
|
||||||
|
<li class="third-section-list-element"><a href="{{ get_url(path='@/objectifs/porsche-944.md')}}">Porsche 944 turbo</a></li>
|
||||||
|
<li class="third-section-list-element"><a href="mobilite.html">Mobilite</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{% endblock content %}
|
||||||
13
templates/objectifs.html
Normal file
13
templates/objectifs.html
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>
|
||||||
|
{{section.title}}
|
||||||
|
</h1>
|
||||||
|
<ul>
|
||||||
|
{% for page in section.pages %}
|
||||||
|
<li><a href="{{page.permalink | safe}}">{{page.title}}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
{% endblock content %}
|
||||||
11
templates/page.html
Normal file
11
templates/page.html
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<h1>
|
||||||
|
{{ page.title }}
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
{{ page.content | safe }}
|
||||||
|
|
||||||
|
{% endblock content %}
|
||||||
5
templates/shortcodes/image.html
Normal file
5
templates/shortcodes/image.html
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<img
|
||||||
|
src="{{ get_url(path=src) }}"
|
||||||
|
alt="{{ alt | default(value='') }}"
|
||||||
|
style="width: {{ width | default(value='auto') }}; height: {{ height | default(value='auto') }};"
|
||||||
|
>
|
||||||
Reference in New Issue
Block a user