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