Étape 1: Projet défis
Après avoir utilisé ma station météo actuelle pendant environ 5 ans, j’ai réalisé que la limitation d’overiding du système était la façon dont les données a été transmises et transformées plutôt que les capteurs réels et d’autres matériels. Il n’est normalement pas beaucoup de glace où j’habite, capteurs de vent chauffée élaborées ne sont pas nécessaires, mais quand j’ai essayé de placer les capteurs au milieu d’un champ pour obtenir les meilleures lectures de vent, j’ai réalisé que wifi et transmission radio standard n’étaient pas à la hauteur. Une possibilité était d’avoir des câbles enfouis dans le sol, mais j’ai finalement opté pour le traitement sur le réseau local de téléphonie mobile 2G des données GPRS.
Je n’étais pas tout à fait sûr que si 2G serait en mesure de gérer la quantité de données donc tout d’abord, j’ai construit cette partie du projet et en fin de compte que je ai besoin pas inquiéter quant à l’un, il était relativement facile de construire et de deux, le kbs données sont beaucoup plus petit qu’on le pense.
La partie suivante que j’ai regardé a la fin - comment les données seraient traitées. Ma station météo actuelle possède son propre nettoyant informatique système, qui doit être manuellement téléchargées vers un PC et n’est pas accessible pour partager, distribuer ou généralement tripoter. La partie la plus difficile du projet n’était pas entrer les données dans une base de données, mais obtenir les données hors de lui à nouveau et afficher de manière significative et accessible.
Autre que ce qui précède, il a été une constante laisse descendre à ai batteries mourir à des moments clés, comme au milieu d’une violente tempête excitante, donc j’ai choisi d’avoir les capteurs et le système GPRS écoulage une batterie de voiture grand alimentée par un panneau solaire bêtement grand qui vous permettent d’avancer les choses dans les semaines sombres sans fin de l’hiver. Juste pour la tranquillité d’esprit, j’ai ajouté un voltmètre simple dans le tableau des capteurs afin que je puisse garder le contrôle sur la batterie.
Les capteurs réels eux-mêmes n’étaient pas trop difficiles à sonder. Un des défis principaux étaient les connecteurs RJ11 utilisés sur la pluie et le vent jauges - ces fiches sont incroyablement fastidieux à déconner avec alors j’ai repensé à ma carte de prototypage Hackable pour avoir 2 lieux de prise de x RJ45 (RJ45 est une version 8 broches de RJ11, c'est-à-dire 6 broches). Redisigning cette planche est toujours assez risqué car il est incroyablement facile à faire une erreur et ont des courts-circuits et autres mésaventures provoquant le chaos dans les circuits électriques.
Après quelques exercices vigoureux au sein de ma propre affaire perso gris, j’ai réalisé que, si je n’étais pas attentif, les événements plus excitants dans le temps comme un grave coup de vent, pourraient facilement manquer si je ne considérait pas les éléments de calendrier de ma conception. Ma station météo vieux m’a laissé tomber un jour tout à fait spectaculaire. C’était le 4 février 2015 et une terrible tempête a soufflé. Il y avait un grave accident à l’extérieur comme 30 volets de serre s’est désintégré et regarde par la fenêtre, que j’ai repéré le trajet de mon voisin sur tondeuse voile à vol d’oiseau vers ma maison. Dans un geste de dévouement total à la science de la mesure du temps et mon amour pour mon prochain, je me suis dirigé immédiatement à ma console de la station météo, s’attendant à voir la rafale affiche environ 80 mi/h, mais... Rien... La % ^ "< **! > %%: machine avait manqué ça !
J’espérais vraiment que je pourrais console perte de mon voisin en l’informant de la vitesse du vent exact au cours de laquelle sa tondeuse à gazon prend son envol !
Évidemment, la vitesse du vent doit donc être constamment surveillée, pas juste en prenant une lecture toutes les 5 secondes, autant de systèmes faire. J’ai pensé que cela pourrait se faire en ayant un microprocesseur dédié juste pour surveiller la vitesse du vent, recalculer le maximum de valeur chaque 1/10 de seconde, ou alors sur une période de 60 secondes et régurgiter de la valeur à un autre processeur micro numéro un toutes les dix minutes.
Que je suis encore dans le projet, les nouveaux défis se sont présentaient. Parmi ceux-ci figure l’alimentation électrique du système. Heureusement, j’avais déjà divisé mon système en deux microprocesseurs - un Arduino Mega et une puce Atmega328P d’un Uno. Le module GPRS utilisé un peu de puissance, donc j’ai utilisé la 328 pour envoyer la fona et le méga en « mode veille » pour toutes les neuf minutes.
Programmation la 328 tant le méga posé quelques défis nouveaux pour moi en tant que, d’une part, aucune fonction de « retard » ne pourrait être utilisée dans les 328 et tout devrait être chronométré utilisant l’utilitaire "millis", qui comportait quelques rayures tête assez grave ! Le méga de programmation était à obtenir les données envoyées à ma base de données de site et de la communication avec le P 328, qui a fourni des données clés et également en communication avec le module GPRS de fona qui allait envoyer toutes les données dans le cyberespace.
J’ai prévu que ce projet prendrait environ 5 jours pour compléter, mais cela s’avéra pour être sauvagement inexact car le travail en question s’est avérée être environ 10 fois ce que j’ai pensé qu’il serait. Il serait sûrement juste une affaire d’accrocher une dizaine de capteurs et d’obtenir les données transmises via le GPRS ? Errrrrrr... Je voudrais qu’il était aussi simple que cela ! Dès que j’ai commencé à plonger dans les profondeurs de ce projet de nombreux obstacles cachés a commencé à se révéler et j’ai commencé à me sentir très semblable à Indiana Jones dans le temple du sort malheureux pour sauver un précieux trésor d’un tas de psychopathes munchkins.
Peut-être le plus gros problème était le pluviomètre. Non pas qu’il y a quelque chose de mal avec le pluviomètre en plastique, juste que n’importe quelle façon, j’ai essayé je ne pouvais pas les données de pluie pour descendre la je voie2C. J’ai fini par prendre everthing à bits pour essayer de trouver le problème, quand au bout du compte, c’était quelque chose que je peux seulement expliquer comme un « trou noir » dans le cadre de mémoire de Arduino. Après avoir lutté pendant 3 jours que j’ai fini par faire un PHP travail autour duquel est très maladroit par rapport à la solution que j’aurais pu trouver. C’était quelque chose à avec le fait que l’Arduino n’empêche pas une petite valeur par exemple. « 1 » pour les neuf minutes dans c’est la mémoire et la rendre disponible pour la transmission à la fin de celui-ci. Il était heureux de conserver les autres petits nombres en mémoire tant qu’ils ont rafraîchi régulièrement. Il aurait été ok, si le nombre n’était pas alors remis à zéro au bout de 10 minutes donc j’ai juste lui a permis de poursuivre sa croissance plus grand et plus gros sans réinitialiser. Une autre chambre étrange dans le Temple Maudit.
Alors par où commencer et combien de détails d’entrer ? Une autre question est quand s’arrêter, car je pense que j’ai pu développer ce projet beaucoup plus.