Supervision de la serre (Web et Android)

Mon père a construit une serre il y a peu, et je me suis dit que ce serait intéressant d’analyser quelques données et pourquoi pas ensuite les exploiter ensuite afin de gérer l’ouverture automatique de celle-ci.

C’était aussi l’occasion de trouver une utilisation à mon Akeru (Arduino made in SnootLab qui utilise le réseau Sigfox) qui dormait depuis un moment.

Superviser ? Oui, mais quoi ?

Dans une serre, il y a deux choses importantes, la température et l’humidité. J’ai fouillé dans mon bazar et j’ai trouvé tout un tas de capteurs. Voilà ce que j’ai retenu :

  • Une sonde DS1820 étanche pour mesurer la température extérieure.
  • Une sonde DHT22 pour mesurer la température intérieure et l’humidité.
  • Un capteur RGB / Proximité / Lumière qui servira pour savoir s’il fait jour ou non et aussi pour déclencher l’affichage des valeurs en passant la main devant.
  • Une matrice de LED gérée par un MAX7219.
  • Et donc un Akeru (Arduino équipé d’un modem Sigfox).

La mise en place

Le câblage et l’utilisation de ce matériel est suffisamment simple, j’ai donc fait des programmes individuels afin de tester chaque capteur puis j’ai tout mis dans un sketch afin de récupérer toutes les données…. et ce fut un échec, pas assez de mémoire disponible sur l’atmega.

J’ai donc fait quelques tests et cherché comment réduire la taille de mon sketch. En premiers lieux j’ai mis toutes les chaînes constantes qui sont dans me « Serial.print » en progmem grâce à la fonction F mais ce n’était pas suffisant.

Je me suis alors penché sur les librairies. Par exemple pour la DHT22 j’utilisais la librairie de chez Adafruits qui est très bien mais qui occupe beaucoup de mémoire. 

Après avoir testé toutes les librairies pour les DHT j’ai choisi la TroykaDHT qui prend deux fois moins de place. J’ai fait de même pour la librairie du capteur RGB/Lumière (la Sparkfun est bien plus gourmande que celle d’Adafruit) et pour la gestion de la matrice de LED (je voulais utiliser la MD_Parola qui s’ajoute à la librairie MAX72XX pour proposer des fonctions de scrolling et d’autres dont je n’avais pas besoin j’ai donc codé le scrolling directement dans mon sketch).

Ces changements m’ont permis de diviser par 2 la taille de mon programme, il n’occupe donc que 60% de la mémoire ce qui me permettra d’ajouter des fonctionnalités plus tard comme un capteur de pluie, l’ouverture via un moteur …

Lecture des données

Le modem envoie des données sur le réseau Sigfox (un réseau bas débit disponible partout en France et dans beaucoup d’autres pays) qui les renvoie via un « callback » sur un serveur maison où je les stocke dans une base de données. J’ai ensuite fait une petite interface en utilisant chartJS afin de les visualiser.

Et sur ANDROID ?

Eh bien j’ai fait très simple; en utilisant l’objet « WebView » du SDK Android on peut encapsuler un site web dans une application.

package eu.rouanetnet.serreleminade;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;


public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

WebView myWebView = (WebView) findViewById(R.id.web1);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("https://rouanetnet.eu/tempMazamet/");
}
}

Attention à ne pas oublier d’ajouter cette ligne dans le manifest sans quoi votre application n’accèdera pas a internet et vous ne verrez rien dans votre appli.

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

Vous trouverez bientôt le code sur mon github.

Peu de nouvelles ces temps-ci….

Comme vous l’avez remarqué il n’y a pas eu de publication depuis un bon moment… La raison ? C’est la création d’une association « Rétro Happy Games » qui a pour but de promouvoir et  sauvegarder le patrimoine des jeux de café.


Nous proposons donc aux gens de venir avec nos machines sur des évènements mais nous aidons aussi les propriétaires de machines a les entretenir et à les réparer.


Vous trouverez sur notre page Facebook les différentes machines qui passent dans nos mains 😉


https://www.facebook.com/RetroHappyGames/

N’hésitez pas nous contacter, même par simple curiosité ou juste pour passer faire une petite partie !


Cependant je travaille sur un « Gros » projet qui sera bientôt dévoilé ici même.

A bientôt,

Brice.

Un mod TV pour mon flipper

Depuis peu nous avons un flipper « Bugs Bunny » à la maison, et j’avais déjà vu passer sur certains (adams, simpson,…) des mods pour y intégrer une mini télévision qui diffuse des images du film. Plutôt que d’en acheter un j’ai décidé de me le faire.

Matériel nécessaire :

Vous trouverez ici les fichiers 3D pour imprimer le boitier (je l’ai fait couleur carotte forcément) . C’est un boitier assez simple car le design 3D c’est pas trop mon truc.

https://github.com/tmator/pintv/tree/main/3d

Je propose maintenant une image (Téléchargeable ICI) à installer sur une carte SD de 16Gb ou plus, décompressez l’images puis mettez la sur votre carte SD via Win32DiskImager ou Balena.

Une fois que votre SD sera prête vous verrez apparaitre un lecteur de 4Go dans lequel vous pouvez déposer les fichier dans le dossier PinTV.

Pour les vidéos, je conseille du 640×480 en AVI/Xvid.

Enjoy !

PinTV démo

——————————- Ci dessous l’ancien Tuto ——————————-

Préparation du raspberry pi

Il faut en premier installer Raspbian puis le driver de l’écran :

https://raspberrypiwiki.com/2.8_inch_Touch_Screen_for_Pi_zero

Ensuite on install mplayer qui servira pour lire les vidéos ;

apt-get update; apt-get install mplayer

On crée un dossier pintv dans /home/pi dans lequel nous mettrons les vidéos, et nous déposons le fichier pintv.sh (dispo sur le github) dans /home/pi (vous pouvez utiliser filezilla par exemple pour transférer les fichiers). Il faut ensuite rendre le fichier exécutable :

chmod +x /home/pi/pintv.sh

Puis on ajoute le lancement de celui-ci a la fin du fichier /home/pi/.bashrc afin qu’il se lance tout seul.


/home/pi/pintv.sh

On modifie le /boot/cmdline.txt pour désactiver la mise en veille en ajoutant en fin de ligne :

consoleblank=0

Ensuite nous allons supprimer la partie graphique et passer le système en lecture seule afin d’allonger la durée de vie de notre carte SD car le Raspberry s’arrêtera brutalement lorsque nous arrêterons le flipper.

apt-get remove --purge lightdm

 wget https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/read-only-fs.sh

 sudo bash read-only-fs.sh

 CONTINUE? [y/N] y
 Enable boot-time read/write jumper? [y/N] n
 Install GPIO-halt utility? [y/N] n
 Enable kernel panic watchdog? [y/N] y
 Target system type:
 Pi 3 / Pi Zero W
 All other models 
 SELECT 1-2: 1
 Boot-time R/W jumper: NO
 Install GPIO-halt: NO
 Enable watchdog: YES (Pi 3 / Pi Zero W)
 CONTINUE? [y/N] y
 REBOOT NOW? [y/N] y

Et voila, si tout va bien on a une superbe MiniTV 🙂

PinTV démo

Si vous avez besoin de faire des modifications sur le raspberry, voici les commandes pour repasser le système de fichier en écriture :

sudo mount / -o remount,rw
sudo mount /boot -o remount,rw

Vision ouverte

Bonjour,

Je vais vous parler d’un rêve que bon nombre de geeks ont eu dans leur jeunesse, posséder un casque de réalité virtuelle. De nos jours de plus en plus de casques sortent comme l’Oculus Rfit (racheté par facebook) et Durovis Dive…

buy-durovis-dive

Version commerciale du casque Durovis Dive

 

OpenDive c’est quoi ?

Ce projet est née dans la tête d’un allemand lorsqu’il a réalisé que sont smartphone pouvait faire tout ce que proposait l’Oculus Rift (en mieux), le tout sans fil. Il a donc créé ce casque et l’a rendu Open Source pour que les gens puisse le télécharger. Il souhaite que les gens puissent accéder à la réalité virtuelle à moindre coût.

Que me faut il pour fabriquer un casque ?

Pour se faire un casque il suffit d’avoir le casque (vous pouvez me commander l’impression sur mon hub), un smartphone (de cette liste) et le kit de lentilles (à commander ici).

photo 1 (8)

Un casque OpenDive

photo 2 (8)

La société propose aussi un casque complet (sans smartphone mais toujours plus cher que chez moi:) ) qui aura une meilleure finition mais donnera les même résultats que la version Open Source.

On trouve quelques applications sur les store Apple et Google (pas encore chez Microsoft) et même une version spéciale de Quake2 plutôt sympathique.

Mes impressions ?

L’immersion est plutôt pas mal, il faut trouver les bons réglages pour ne pas avoir mal à la tête. Un peu embêtant pour ceux qui comme moi portent des lunettes … et les jeux sont peu nombreux mais ce n’est que le début, et comme ils utilisent Unity pour développer on peut s’attendre à voir de belles choses arriver rapidement.

Durovis-Dive-1024x576-6b241089abd4c751

 

C’est aussi sympa de regarder des films sur grand écran sans être dérangé par le « bruit visuel » ambiant:)

Avantages :

  • meilleure résolution des écrans de smartphone comparé à l’Oculus
  • pas cher du tout (si l’on a déjà le smartphone qui va avec)
  • écran géant pour regarder des films

Inconvénients :

  •  la latence (qui dépends du téléphone, très faible sur IPhone)
  • ça peut filer la gerbe (cinétose)
  • manque d’applications
  • devoir sortir le smartphone pour lancer les applications

Si vous voulez tester ou en faire un, n’hésitez pas à me contacter.