Ajout d’une carte fona 3G à mon raspberry pi

J’avais déjà acheté une carte fona 3G l’été passé, j’ai eu bien du plaisir à la faire fonctionner avec un arduino et le code d’exemple fourni par Adafruit. À présent, j’aimerais rendre le tout plus portatif, et la manière la plus simple de le faire est de rajouter la carte à ma station raspberry pi portative. Cela me donnera donc en résultat un « téléphone intelligent » pas mal badass : raspberry pi 3, écran 7 pouces et assez de batterie pour durer 10h.

J’ai connecté l’entrée du 5V de la carte au 5V du raspberry pi, le VIO à 3.3V, le RX de la carte dans le TX du raspberry et vice-versa, et le RTS dans le ground puisque j’ai configuré le fona pour avoir le serial à 7 lignes afin d’avoir une sortie dans la pin de RING.

Après avoir activé l’interface série dans la configuration du raspberry pi (cela ajoute essentiellement la ligne enable_uart=1 à la fin du fichier /boot/config.txt) et avoir redémarré, j’ai ouvert le port série avec

sudo screen /dev/serial0 4800

dans un terminal. Cela marchait à moitié, voire pas du tout. Par exemple, j’écrivais AT et la carte me répondait une seule fois avant de figer. J’ai essayé à peu près tous les baudrate, sans plus de résultat. Après avoir tout essayé, j’ai trouvé comment régler le problème.

Il se trouve que le kernel du raspberry pi utilise lui aussi le port série par défaut comme console pour faire du déboguage, il envoie donc des données à la carte, qui ne sait évidemment pas comment les gérer, ce qui fait tout bugger lorsque l’on essaie d’y accéder avec screen. Pour désactiver cette fonction, il faut aller dans :

/boot/cmdline.txt

et supprimer la partie de la ligne qui dit console=serial0,115200 en gardant le reste de la ligne et en faisant bien attention de ne pas laisser un retour à la ligne dans ce fichier. Cela fait en sorte que le kernel ne se sert plus de cet interface comme console. Une fois le raspberry pi redémarré, tout fonctionne à merveille!

La suite du projet va être de créer une sonnette pour le cellulaire, ensuite de faire un petit boitier pour bien fixer le tout à ma station portative, et éventuellement, de créer ou d’utiliser un petit programme d’interface utilisateur pour commander la carte fona sans passer par les commandes AT qui peuvent vite devenir épuisantes à utiliser.

Finalisation du bloc batterie pour ma station raspberry pi portative

Voici le résultat. J’ai rajouté un couvercle imprimé en 3D qui laisse un espace suffisant pour brancher le port USB et l’interrupteur. Un câble permet de le relier à une source de 5V pour le recharger. Il faudrait que je le mesure précisément, mais selon l’état des batteries qui sont tout de même usagées, l’autonomie du système devrait être au-delà de 5 heures, peut-être même probablement 10 heures. Ça reste à tester.

La dernière chose qu’il manque est un petit script sur le raspberry pi connecté à l’indicateur de batterie faible, qui permettrait d’avertir l’utilisateur d’éteindre le tout et de recharger les batteries. Mais sinon tout est fonctionnel et prêt à utiliser sur le terrain!

Fabrication d’un boîtier pour mon bloc de batteries

Afin de rendre pleinement portatif mon raspberry pi avec écran tactile, j’ai décidé de lui rajouter un bloc de batteries fait maison à partir d’une vieille batterie de mon ordinateur portable. Après l’avoir démonté et rechargé individuellement toutes les cellules, j’ai constaté qu’elles étaient toutes encore en très bon état. J’ai donc divisé les 6 cellules en deux blocs de 3, un bloc pour alimenter l’écran et un bloc pour alimenter le raspberry pi. J’utilise des PowerBoost 1000C de Adafruit, donc le courant max qu’ils peuvent donner est de 1A seulement, c’est pourquoi je sépare les alimentations.

Le programme utilisé sur OpenScad est le suivant :

ep = 2;
difference(){
cube([62+2*ep,42+2*ep,106+ep]);
translate([ep,ep,ep]) cube([62,42,106]);
translate([ep,0,80+ep]) cube([62,42+2*ep,26]);
}