Table des matières:
Vidéo: Utilisation des 4 broches de l'ESP8266-01 : 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Remarque: ce projet est essentiellement une extension d'un instructable antérieur qui n'utilisait que 2 broches. Le nombre limité (4) de broches GPIO sur l'ESP8266-01 peut sembler être un obstacle, pour toute application sérieuse. Pourtant, si l'on utilise les broches dans d'une manière intelligente, il est très bien possible de faire beaucoup avec seulement ces 4 broches. Dans ce instructable, j'ai décidé d'utiliser 4 capteurs et un écran, tout en téléchargeant les données acquises sur Thingspeak. Il développe en fait un projet de surveillance de l'atmosphère dans et autour de mon poulailler. Oui, vous pourriez appeler cela une station météo, mais c'est juste pour illustrer l'utilisation des 4 broches, vous pouvez facilement faire autre chose de cette façon. J'utiliserai 2 broches pour I2C (BMP180 et OLED) 1 broche pour 2 capteurs DS18B20 via le Broche du protocole OneWire1 pour le DHT11Bien que l'ESP8266-01 ait maintenant toutes ses broches utilisées, je peux toujours ajouter plus de capteurs (ou actionneurs) via le protocole OneWire et/ou via le protocole I2C. Alors, de quoi avons-nous besoin:BOM
- ESP8266-01
- 2x DS18B20
- 1x DHT11
- 1x BMP180
- OLED (facultatif)
et bien sûr une maquette, un bloc d'alimentation 3,3 V et quelques fils de maquette et un compte Thingspeak
Quelques remarques concernant la nomenclature:
- ESP8266-01Évidemment, le projet consiste à utiliser les broches limitées de l'ESP8266-01, mais si vous avez encore besoin d'en acheter une, vous pouvez envisager un ESP8266-12 qui a plus de broches
- Capteur d'humidité et de température tout usage bon marché DHT11A. Ce n'est pas très précis mais ça fera l'affaire. Si vous avez encore besoin d'en acheter un, vous pouvez opter pour le DHT22 qui est censé être plus précis, mais vous pouvez également opter pour l'AMS2321. C'est une sorte de DHT22 qui convient à I2C, libérant ainsi une autre broche
- Le BMP180 mesure la température et la pression atmosphérique. C'est le successeur du BMP085, mais il a aussi maintenant lui-même quelques successeurs. Il existe le (moins cher) BMP280, mais vous pouvez également opter pour le BME280 qui mesure la température, la pression atmosphérique ET l'humidité. De cette façon, vous pouvez économiser sur le capteur DHT/AMS
- OLEDI vient de l'utiliser pour que je puisse rapidement voir si les capteurs ont été lus, mais vous pouvez tout aussi bien le vérifier sur Thingspeak. L'OLED est de toute façon trop petite pour imprimer toutes les valeurs lues
Étape 1: Le circuit
Les 4 broches de l'ESP8266 ne sont pas indiquées en tant que telles sur le PCB, et la plupart des images n'indiquent clairement que GPIO0 et GPIO2. Cependant, l'ESP826-01 a une broche GPIO1 (la broche Tx) et une broche GPIO3 (la broche Rx).i utilisera ces broches comme suit
- GPIO0 -> broche SDA du port I2C
- GPIO1 ->DHT11
- Pin GPIO2-> SCL du port I2C
- GPIO3-> Bus OneWire
Comme mes modules I2C ont déjà des résistances de rappel, je n'y ajouterai aucune résistance de rappel I2C. Le DS18B20 a encore besoin d'une résistance de rappel pour laquelle j'ai utilisé un 4k7, mais ce n'est vraiment pas si critique, un 10k est également bon. Le DHT11 aurait également besoin d'une résistance de rappel, mais j'ai trouvé qu'il fonctionnait également sans. l'ajout d'une résistance 4k7 n'a changé aucune des lectures, alors je l'ai omis. La plupart des modules DHT11 à 3 broches ont déjà un 10 k soudé sur le module. Je viens de me rendre compte que je n'avais pas tracé les connexions pour l'OLED. C'est parce que je ne l'ai branché que pour une vérification rapide, mais si vous voulez l'ajouter, il suffit de connecter SDA à SDA et SCL à SCL… et bien sûr les broches de terre et Vcc à leurs homologues
Étape 2: Le programme
Le programme est assez simple. Tout d'abord, il configure les bibliothèques et les capteurs. Il relie le DHT11 à la broche 1 (Tx) et le bus OnWire pour le DS18B20 à la broche 3 (Rx). Afin d'utiliser plus d'un capteur DS18B20 sur le bus OneWire, vous devez connaître leur « adresse unique ». Si vous ne l'avez pas, vous avez besoin d'un programme pour lire ces adresses. Faites-le sur un arduino pour plus de facilité. Dans le programme, vous devez toujours fournir vos informations d'identification WiFi ainsi que l'API d'écriture pour votre chaîne Thingspeak
/*
Champ 1 température gîte (DHT11) Champ 2 humidité gîte (DHT11) champ 3 Coop température (DS18B20) champ 4 température du sol (DS18B20) champ 5 Air Pressure (bmp180) champ 6 Température extérieure (bmp180) * */ #include #include // https://www.pjrc.com/teensy/td_libs_OneWire.html #include // https://milesburton.com/Main_Page?title=Dallas_Tem… #include #include #include "SSD1306.h" Affichage SSD1306 (0x3c, 0, 2); #define DHTPIN 1 //GPIO1 (Tx) #define DHTTYPE DHT11 #define ONE_WIRE_BUS 3 // GPIO3=Rx const char* ssid = "YourSSID"; const char* password = "YourPassword"; const char* host = "api.thingspeak.com"; const char* writeAPIKey = "W367812985"; //utilisez VOTRE writeApi //DHT11 stuff float temperature_buiten; float temperature_buiten2; DHT dht (DHTPIN, DHTTYPE, 15); // DS18b20 stuff OneWire oneWire(ONE_WIRE_BUS); //instance oneWire pour communiquer avec tous les appareils OneWire Capteurs de température Dallas (&oneWire); // Passer l'adresse de notre instance oneWire à la température Dallas. DeviceAddress Probe01 = { 0x28, 0x0F, 0x2A, 0x28, 0x00, 0x00, 0x80, 0x9F}; DeviceAddress Probe02={0x28, 0x10, 0xA4, 0x57, 0x04, 0x00, 0x00, 0xA9}; // bmp180 trucs Adafruit_BMP085 bmp; void setup() { //I2C stuff Wire.pins(0, 2); Fil.begin(0, 2); // Initialiser les capteurs //dht 11 stuff dht.begin(); //ds18b20 stuff sensor.begin(); //ds18b20 // définit la résolution sur 10 bits (peut être de 9 à 12 bits.. plus bas est plus rapide) capteurs.setResolution(Probe01, 10); capteurs.setResolution(Probe02, 10); //bmp180 stuff if (!bmp.begin()) { // Serial.println("No BMP180 / BMP085"); // while (1) {} } // stuff OLED display.init(); display.flipScreenVertically(); display.setFont(ArialMT_Plain_10); retard(1000); // Connexion au réseau WiFi WiFi.begin(ssid, mot de passe); while (WiFi.status() != WL_CONNECTED) { delay(500); } } void loop() { //ds18b20stuff------------------- sensor.requestTemperatures(); // Envoyez la commande pour obtenir les températures temperature_buiten = sensor.getTempC(Probe01); // temperature_buiten2 = sensor.getTempC(Probe02); // // dht11 stuff---------------- ---- humidité flottante = dht.readHumidity(); float temperature = dht.readTemperature(); if (isnan(humidité) || isnan(température)) { return; } //truc bmp------------------------- String t= String(bmp.readTemperature()); Chaîne p=Chaîne(bmp.readPressure()); //Trucs OLED-------------------------- display.clear(); display.drawString(0, 10, p);//bmp pression display.drawString(0, 24, String(temperature_buiten));//ds18b20 display.drawString(0, 38, String(humidité));//dht11 display.affichage(); // établit des connexions TCP WiFiClient client; const int httpPort = 80; if (!client.connect(host, httpPort)) { return; } Chaîne url = "/update?key="; url += writeAPIKey; url += "&field1="; url += String(temperature);// roost (DHT1) url += "&field2="; url += String(humidité);// roost (DHT11) url += "&field3="; url += String(temperature_buiten);//température coop (DS18B20 nr 1) url += "&field4="; url += String(temperature_buiten2); //température du sol (DS18B29 nr 2) url +="&field5="; url +=String(bmp.readTemperature());Température extérieure (BMP180) url +="&field6="; url +=String(bmp.readPressure());// Air Pressure (BMP180) url += "\r\n"; // Envoie la requête au serveur client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r \n\r\n"); retard(1000); }
……..
Étape 3: Plus
Actuellement, ce programme ne surveille que, mais qu'est-ce qui vous empêche d'ajouter un capteur de lumière BH1750 I2C pour mesurer si c'est le soir ou le matin ou un RTC pour connaître l'heure de la journée et pour ouvrir et fermer la porte de la coopérative automatiquement à l'aide de une carte d'extension I/O PCF8574 I2C, ou comme il est déjà dans le jardin, ajoutez un convertisseur AD PCF8591 ou ADS1115 pour mesurer l'humidité du sol et activer une pompe si nécessaire. Ou peut-être allumer le chauffe-eau lorsque la température tombe en dessous de zéro s'il y a une puce I2 C pour cela, l'ESP8266 peut probablement l'utiliser.
Une note importante cependant: le programme tel quel fonctionne bien, mais si vous ajoutez d'autres capteurs à Rx ou Tx, surtout si vous les transformez en sorties, les broches peuvent soudainement se rappeler qu'elles ne sont pas vraiment des broches GPIO. Il est préférable de dire aux broches dès le départ qu'elles sont maintenant des broches GPIO. On le fait en mettant les instructions suivantes dans la configuration:
pinMode(1, FUNCTION_3);
pinMode(3, FONCTION_3);
Conseillé:
Dés à rouler VISUINO utilisant un module OLED à 4 broches de 0,96 pouce : 7 étapes
VISUINO Rolling Dice utilisant un module OLED de 0,96 pouce à 4 broches : Dans ce didacticiel, nous utiliserons OLED Lcd et Visuino pour créer un Rolling Dice lorsque nous appuyons sur un bouton de notre planche à pain.Regardez une vidéo de démonstration
Plus de 8 milles des premières broches portables magnétiques universelles ! : 5 étapes
Plus de 8 milles des premières épingles portables magnétiques universelles ! : Hé là ! Je m'appelle Georgina Yeboah et j'ai récemment créé ces épingles magnétiques basées sur les personnages de mon webcomic Over 8 Miles ! Vous pouvez trouver le lien vers la page principale du webcomic sous cette intro et le lien Tapas. J'ai fait ces épingles comme
Réutilisation des broches de l'interface ATtiny84/85 SPI : 6 étapes
Réutilisation des broches de l'interface SPI ATtiny84/85 : cette instructable fait suite au "débogage en circuit ATtiny84/85 avec sortie série" instructable et étend cette configuration matérielle et logicielle pour résoudre le problème de la réutilisation des broches de téléchargement de programmation par l'applic
ESP8266-NODEMCU $3 Module WiFi #2 - Contrôle des broches sans fil via la PAGE WEB : 9 étapes (avec photos)
ESP8266-NODEMCU $3 Module WiFi #2 - Contrôle des broches sans fil via la PAGE WEB : Un nouveau monde de ces micro-informatique est arrivé et cette chose est l'ESP8266 NODEMCU. Il s'agit de la première partie qui montre comment vous pouvez installer l'environnement de l'esp8266 dans votre IDE arduino via la vidéo de démarrage et en tant que pièces dans
Prise ISP 6 broches à 8 broches : 4 étapes
Prise ISP 6 broches à 8 broches : La raison pour laquelle j'ai principalement construit ce projet était de programmer l'ATTiny45, qui a une connexion à 8 broches, tandis que mon USBtinyISP (de Ladyada) n'a qu'une connexion à 10 et 6 broches. Après avoir fouiné sur Internet pendant environ 3-4 semaines, je n'ai rien trouvé quoi