GitHub = site web dedié au stockage du code
C'est un service en ligne qui héberge les dépôts git, une fois en ligne ils peuvent etre modifié ou distribué.
On parle alors de dépôt distant.
git = outil de gestion des version d'un code ( grace au gestionnaire de version)
Gestionnaire de version ou versioning -> Un gestionnaire de versions est un programme qui permet
aux développeurs de conserver un historique des modifications et des versions de tous leurs fichiers.
fonctions principales du versioning :
a) revenir à une version precedent du code sans problème
b) Suivre l'evolution de votre code étape par étape
c) travailler à plusieur sans risquer de supprimer les modification des autres utilisateurs
!! Git est l'outil INDISPENSABLE de tout codeur quelque soit sont niveau !!
depot (ou repository) = dossier contenant l'historique des version et modification d'un projet.
Pourquoi avoir un dépots distant?
Le dépôt distant est un peu différent. Il permet de stocker les différentes versions de votre code
afin de garder un historique délocalisé.
Au cas ou vous n'auriez pas acces à votre machine ou que celui-ci rendent l'âme
(comme ta machine à écrire par exemple )
Sur GitHub il existe 2 type de depots privé et depots public.
GitHub n'est pas le seul à proposer ce genre de service ( gitLab, bitBUcket )
GitHub est aussi le book/portfolio des développeurs ( mais racheté par l'hydre Mycrosoft)
Alternative : GitLab
Ordre d'action pour créer un nouveau depot-----
$git init
pour initialiser le projet
!!attention a bien se placer dans le fichier concerné avant!!
$git status
pour verifier les fichier pris en compte et ce qui ne sont pas encore intégré
$git add
pour intégrer tout les fichiers concerné
$ git commit
pour les enregistré tel que souhaité dans le repository (depot) local
et enfin dans le cas ou on veut le mettre en ligne pour en avoir une sauvegarde online > $ git push
Commande à connaitre -----------------------------------------------
1. Configuration et initialisation
$cd Documents/premierProjet
pour se positionner dans le dossier 1erProjet
$git init
Pour intialiser un nouveau dépôt Git
git clone URL_DU_REPO
pour cloner un depot existant à partir de l'url fournie
2.Travailler avec des repos distant
git push
pour envoyer la nouvelle version sur le depot distant
git pull
pour récupérer les dernières modification du dépôt distant
3. Gestion des fichiers et des commits
git status
Pour montrer l'état des fichiers
$git add fichier.html
Pour ajouter des fichier à l'index pour le prochain commit
git commit -m "Message de commit"
pour créer un nouveau commit avec les fichier ajouté à l'index
4. Gestion de branches
git branch
pour lister toutes les branches
git branch NOM_DE_LA_BRANCHE
pour créer une nouvelle branche
git checkout NOM_DE_LA_BRANCHE
Pour changer de branche
git merge NOM_DE_LA_BRANCHE
Pour fusionner la branche spécifiée dans la branche actuelle
5. Historique et inspection
git log
Pour voir l'historique des commits
git stash
pour enregistrer temporairement des modification non indexées
git stash apply
Pour appliquer les modification enregistrées avec stash
--------------------------------------
Materiel utilisé : Arduino UNO, Resistance 10K Ω, DHT11. Voici le schema de connection au cas ou il arriverait quelque chose à mon carnet de note
const int sensorPin =2;
// buffer for data
byte dat[5];
byte readData(){
int result =0;
for (int i=0;i<8;i++){
while (digitalRead(sensorPin)==LOW);
delayMicroseconds(30);
if(digitalRead(sensorPin)==HIGH){
result|=(1<<(8-i));
}
while (digitalRead(sensorPin)==HIGH);
}
return result;
}
void startTest(){
// send stat signal
digitalWrite(sensorPin,LOW);
//delay 30 ms for DHT11 to read start signal
delay(30);
digitalWrite(sensorPin,HIGH);
// waiting for a response from DHT11
delayMicroseconds(40);
pinMode(sensorPin,INPUT);
while(digitalRead(sensorPin)==HIGH);
//waiting for DHT11 data to be sent
delayMicroseconds(80);
if (digitalRead(sensorPin)==LOW){
delayMicroseconds(80);
}
for(int i= 0; i<5; i++){
dat[i] = readData();
}
pinMode(sensorPin, OUTPUT);
digitalWrite(sensorPin, HIGH);
}
void setup() {
Serial.begin(9600);
pinMode(sensorPin, OUTPUT);
// put your setup code here, to run once:
}
void loop() {
startTest();
Serial.print("Taux d'Humidité =");
// output the whole part of moisture
Serial.print(dat[0],DEC);
Serial.print('.');
//display the decima part of the moisture
Serial.print(dat[1],DEC);
Serial.println('%');
Serial.print("Temperature = ");
// output the integer part of the temperature
Serial.print(dat[2],DEC);
Serial.print('.');
// display the decimal part of the temperature
Serial.print(dat[3],DEC);
Serial.println('C');
//checksum check
byte checksum = dat[0] + dat[1] + dat[2] + dat[3];
if (dat[4]!= checksum)
Serial.println("- Checksum ERROR !");
else
Serial.println("-OK!");
delay(9900);
// put your main code here, to run repeatedly:
}
L'experience fonctionne aussi tres bien mais pour une raison que je ne m'explique pas encore l'info s'affiche sur la meme ligne à la suite.
const int sensorKPin= 11;
int val;
// R1 value on the board
float R1 = 10000;
float logR2,R2,temp;
float c1 = 0.001129148;
float c2 = 0.000234125;
float c3 = 0.0000000876741;
void setup() {
Serial.begin(9600);// put your setup code here, to run once:
}
void loop() {
val= analogRead(sensorKPin);
//calculate the resistance of the thermistor
R2= R1*(1023.0/(float)val-1.0);
logR2= log(R2);
//temperature en K
temp=(1.0/(c1+c2*logR2+c3*logR2*logR2*logR2));
// convert in C
temp = temp-273.15;
Serial.print("Temperature:");
Serial.print(temp);
Serial.print("C");
delay(3600);
// put your main code here, to run repeatedly:
}
L'experience DHT11 et KY013- ont toutes les deux fonctionnés indépendamment mais une fois unifié seul la parti KY fonctionnait peut être parce qu'elle était en debut de la fonction loop( voir sketch ky_dhtProg). Ou serait ce un problème d'alimentation 5V pour deux composants ne serait pas assez ? Nouvelle question: Que fait la carte uno qu'une simple planche pcb vierge ne pourrait faire ? Si j'intègre un port carte SD, une alim à 10v, resistance a 10k un dht11 et/ ou ky013 sur une pcb cela ne fonctionnera t'il pas? Pardon et un écran au cas où ça peux servir .....
const int sensorPin = A0;
int value;
void setup() {
Serial.begin(9600);
// put your setup code here, to run once:
}
void loop() {
value = analogRead(sensorPin);
//light intensity
Serial.println(value,DEC);
delay(3600);
// put your main code here, to run repeatedly:
}
J'ai mal compris le schema de connectic de celui ci. J'obtenais 1023 tout les 100 ms et ce en depit des variation de lumière Mon erreur etait que j'avais branché la terre et la resistance sur la meme ligne que le - de la photoresistance. Alors que la version correcte consiste à brancher la resistance à la terre puis à la cathode de la photoresistance.
Après une serie d'echec qui n'a fait que renforcé le fait que je devais continuer de travailler et d'apprendre.
L'objectif n'est pas d'abandonner le cadavre de mes échecs derrière mais avancer pour mieux comprendre la raison de leur disfonctionnement.
Fin de l'aparté.
Si vous êtes suffisament naïf pour ne pas realiser que la tache la plus penible est d'obtenir que les characteres défilent de la droite vers la gauche.
Et bien sachez que je cherie cette ignorance, elle a quelques chose de si doux et candide comme on regarde l'innocence d'un enfant ignorant l'obscurité et la perversité du monde qui s'apprete à ecraser tout ses rêves et espoirs.
Pour ne laisser à la place qu'un champs ou regne désolation, déception et les ruines d'un vieil ideal que d'aucuns appelaient humanité
#include Adafruit_SSD1306.h
#include splash.h
#include Adafruit_GFX.h
#include Adafruit_GrayOLED.h
#include Adafruit_SPITFT.h
#include Adafruit_SPITFT_Macros.h
#include gfxfont.h
#include SPI.h
#include SimpleDHT.h
int pinDHT11 =2;
SimpleDHT11 dht11(pinDHT11);
#define screen_width 128
#define screen_height 32
#define OLED_RESET 4
Adafruit_SSD1306 display(screen_width,screen_height);
void setup() {
Serial.begin(9600);
Serial.println("Temperature & humidité");
display.begin(SSD1306_SWITCHCAPVCC,0x3c);
display.setTextWrap(false);
display.clearDisplay();
// put your setup code here, to run once:
}
void loop() {
byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;
if ((err = dht11.read(&temperature,&humidity,NULL))!= SimpleDHTErrSuccess){
Serial.print("Read DHT11 failed, error =");Serial.println(err); delay(3000);
return;
}
Serial.print((int)temperature); Serial.pbrrint("*C,");
Serial.print((int)humidity);Serial.println("%");
//display.clearDisplay();
display.setTextSize(0.4);
display.setTextColor(SSD1306_WHITE);
//display.setCursor(0,0);
//display.print("TEMP. & HUMIDITY");
//display.setCursor(1,3);
display.print(" T: ");
//display.setCursor(2, 5);
display.print((int)temperature);
display.print("*C");
//display.setCursor(3, 7);
display.print(" H: ");
// display.setCursor(4, 8);
display.print((int)humidity);
display.print("%");
display.display();
delay(6200);
display.startscrollleft(0x00,0x0F);
}
Ce code que j'ai légèrement massacré pour le plier à ma volonté, est a l'orgine realisé grace au travail d'un certain techatronic.
Que je remercie sincèrement car il m'a épargné que j'en vienne a m'arracher les cheveux !
Ceci dit j'ai obtenu un subterfuge semblable à un defilement. Celui ci fait illusion les 3 premières secondes, puis quelque pixel parasite panique mais c'est un détail technique que l'on resoudra ( ou pas) plus tards car pour l'instant nous allons nous coucher sur un semblant de victoire. :)