Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Persoonlijk weerstation (Arduino+ ESP8266 + Thingspeak)

Componenten en benodigdheden

Adafruit BMP180
× 1
DHT11 temperatuur- en vochtigheidssensor (4 pinnen)
× 1
LDR
Lichtafhankelijke weerstand
× 1
Espressief ESP8266 ESP-01
× 1
Arduino Nano R3
× 1
Weerstand 4.75k ohm
× 1
Weerstand 51K
× 1
LM2596 DC-DC Buck Converter Step-Down Power Module
× 1
DC-aansluiting
× 1
switch
× 1
12v-2A muuradapter
× 1
PCB
× 1
Mannelijke kop 40 positie 1 rij (0,1")
× 1
Vrouwelijke kop 8 positie 1 rij (0,1")
× 5
plastic doos
× 1

Benodigde gereedschappen en machines

draadstripper
Hot lijmpistool (algemeen)
Soldeerbout (algemeen)
schroevendraaier
Bestand
gebruikt voor handwerk

Apps en online services

Arduino IDE
ThingSpeak-API

Over dit project

Intro:maak een persoonlijk weerstation

Zittend in je kamer begin je te zweten of krijg je het koud; vraag je je af hoe hoog de temperatuur in je kamer zou zijn? of wat zou de luchtvochtigheid zijn? Dit is een tijd terug bij mij gebeurd.

Dit leidde tot de oprichting van een persoonlijk weerstation, dat de temperatuur, vochtigheid, druk en lichtintensiteit van uw kamer bewaakt en uploadt naar een privékanaal op thingspeak.com.

Laten we beginnen.

Stap 1:Snelle video

Hier is een kleine video, die alles in 5 minuten samenvat.

Klik hier om op youtube te kijken.

Stap 2:Elektronische componenten die nodig zijn voor persoonlijk weerstation

Beschrijving: We zullen DHT11 gebruiken om vochtigheid te meten, BMP180 om temperatuur en druk te meten en een Light Dependent Resistor (LDR) om een ​​ruw idee te krijgen van de lichtintensiteit. Arduino nano verzamelt gegevens van deze sensoren en stuurt deze naar ESP8266 om deze te uploaden naar uw privékanaal op thingspeak.com. We zullen onze Arduino nano van stroom voorzien via een 12V-2A-wandadapter, sensoren en ESP8266 zullen naar beneden geconverteerde spanning ontvangen van een op LM2596 gebaseerde buck-converter.

Lijst met componenten:

  • BMP180 druk- en temperatuursensor,
  • DHT11 vochtigheidssensor,
  • Lichtafhankelijke weerstand (LDR),
  • ESP8266 wifi-module (firmware gereed),
  • Arduino nano,
  • 2 Weerstanden - 51 KOhm en 4,7 KOhm,
  • LM2596 buck-converter,
  • DC-aansluiting,
  • Schakel en
  • 12V-2A muuradapter.

Stap 3:Gereedschappen en extra items die nodig zijn voor persoonlijk weerstation

Beschrijving: We gebruiken een draadstripper voor het strippen van draad, een vijl voor het gladmaken van sneden/gaten in de behuizing, een lijmpistool voor het plaatsen van componenten in de behuizing, een schroevendraaier om het deksel van de behuizing te sluiten en een soldeerbout met soldeerdraad om het circuit op een printplaat voor algemeen gebruik te monteren (GCB) . 4x4x2 inch plastic doos fungeert als behuizing. We hebben ook mannelijke en vrouwelijke bergstrips nodig, samen met vrouwelijke connectoren voor een juiste montage op GCB.

Lijst met tools:

  • Draadstripper,
  • Bestand,
  • Lijmpistool,
  • Schroevendraaier en
  • Soldeerbout en soldeerdraad.

Lijst met extra items:

  • Plastic doos van 4x4x2 inch (ik heb deze afmeting gebruikt, afmetingen in de buurt zouden goed moeten zijn),
  • Algemene printplaat,
  • mannelijke en vrouwelijke bergstrip en
  • vrouwelijke connectoren.

Stap 4:Softwarevereisten

Beschrijving:om de waarde van sensorgegevens te zien, hebben we een privékanaal nodig op thingspeak.com. We hebben Arduino IDE nodig om Arduino-code voor Arduino Nano te schrijven. (Ik neem aan dat jullie in het bezit zijn van pc/laptop en een wifi-route met toegang tot internet)

Lijst met softwarevereisten:

  • Privékanaal op Thingspeak.com en
  • Arduino IDE (bij voorkeur de nieuwste versie).

U kunt de nieuwste versie van Arduino IDE downloaden van arduino.cc. Laten we nu een privékanaal maken op thingspeak.com.

Stap 5:Privékanaal maken op Thingspeak.com

Volg deze stappen om een ​​privékanaal te maken op thingspeak.com:

  • Open je webbrowser en ga naar thingspeak.com en klik op het tabblad 'Aanmelden' in de rechterbovenhoek (Afbeelding nr. 1)
  • Vul de details in en klik op 'Account aanmaken', (Afbeelding nr. 2)
  • Klik nu op het tabblad 'Nieuw kanaal' (Afbeelding nr. 3)
  • Vul opnieuw de details voor het kanaal in en schakel 4 velden in (aangezien we 4 sensorwaarden zullen verzenden), scroll naar beneden en klik op het tabblad 'Kanaal opslaan', (Afbeelding nr. 4/5)
  • Klik op deze pagina op het tabblad 'API Keys' en noteer uw 'Write API Key'.

Dat is alles mensen, nu heb je je privé ThingSpeak-kanaal.

Laten we nu alle elektronische componenten samenvoegen.

Stap 6:Schema voor persoonlijk weerstation

Hier voeg ik een afbeelding bij van een schema voor persoonlijk weerstation. Ik voeg ook een fritzing-bestand voor hetzelfde toe. Verbindingen zijn vrij eenvoudig.

  • BMP180 maakt verbinding met I2C-poort van arduino nano.
  • LDR is aangesloten op een spanningsdeler met een weerstand van 51 KOhm en de junction is aangesloten op de A1-pin van arduino nano.
  • De datapin van de DHT11 wordt hoog getrokken met een weerstand van 4,7 KOhm en verbonden met de A0-pin van arduino nano.
  • ESP8266's TX en RX maken verbinding met respectievelijk D10 en D11 van arduino nano. CH_PD van ESP8266 wordt aangesloten op 3,3V-rail.
  • Stel de output van de LM2596-module in op 3,3 V door de potentiometer op deze module te draaien. Sluit de uitgang van deze module aan op Vcc en Gnd van respectievelijk BMP180, DHT11, LDR en ESP8266's Vcc en Gnd.
  • Ingang van LM2596-module komt van 12V-2A-muuradapter die ook kan worden aangesloten op Vin en Gnd van Arduino nano.

We moeten dit circuit op een printplaat voor algemeen gebruik monteren. Laten we dat doen.

Stap 7:Assembleren van circuit op General Purpose Circuit board (GCB)

Hardware-tools en extra items uit stap 3 zijn nu in bedrijf.

  • Gebruik vrouwelijke bergstrip voor plaatsing van Arduino nano en ESP8288 op GCB,
  • Gebruik soldeerbout en soldeerdraad om ze elektrisch op het bord aan te sluiten,
  • Gebruik vrouwelijke connectoren om het bereik van alle sensoren en de LM2596-module te vergroten, aangezien deze aan het deksel en de wand van de behuizing worden geplakt,
  • Gebruik mannelijke bergstrip om verbindingspunten te maken voor vrouwelijke extensies die hierboven zijn gemaakt,
  • Realiseer een circuitschema op GCB met behulp van draden (strip ze met een draadstripper), of een rail van gesmolten soldeerdraad en tot slot,
  • Controleer op soorten voordat u het circuit van stroom voorziet met een multimeter.

Nu alle hardware op GCB is geplaatst, gaan we naar de code kijken.

Stap 8:Code

Code voor persoonlijk weerstation is vrij eenvoudig. Ik heb de code correct becommentarieerd voor het gemak van draagbaarheid. Voordat je de code gaat branden, moet je de volgende dingen regelen.

  • Zorg ervoor dat alle bibliotheken zijn geïnstalleerd,
  • Vervang koppeltekens door SSID van uw toegangspunt (wifi-router) in regel 14 van de code,
  • Vervang koppeltekens door PASWOORD van uw wifi-netwerk in regel 15 van de code,
  • Vervang koppeltekens door de API-sleutel voor het schrijven van uw privékanaal van ThingSpeak in regel 17 en
  • Zorg er tijdens het programmeren van Arduino nano voor dat je 12V DC-voeding UIT staat.

Hier is de link naar github (Personal Weather Station) voor het downloaden van code en bibliotheken die ik heb gebruikt.

Nu we onze hardware en software hebben geïnstalleerd, is het enige wat overblijft de verpakking.

Stap 9:Behuizing voorbereiden

Nu moeten we gaten van verschillende vormen en afmetingen maken in de doos van 4x4x2 inch. We moeten gaten maken voor de DC-aansluiting en elke gewenste wand van de behuizing inschakelen. We moeten ook gaten maken voor sensoren op het deksel van de behuizing.

Ik heb een afbeelding bijgevoegd met de afmetingen van de gaten die we in de behuizing moeten maken.

Gebruik een heet mes om door het plastic te snijden.

Gebruik een vijl om de gaten glad te strijken.

Nu is uw behuizing voorbereid om uw circuit te hosten.

Stap 10:Het deksel sluiten

Plaats uw geassembleerde GCB in de behuizing.

Plaats schakelaar en DC-aansluiting in de gaten in de muur; sensoren op de gaten van het deksel. Voltooi hun positie en gebruik een lijmpistool om ze te repareren. Gebruik ten slotte een schroevendraaier om het deksel te sluiten.

Daar heb je het, je persoonlijke weerstation. Schakel de voeding in en bekijk de temperatuur, vochtigheid, druk en lichtintensiteit van uw kamer waar ook ter wereld via uw smartphone/pc/laptop/tablet op uw ThingSpeak-privékanaal.

Dat is alles voor dit project. Reageer bij twijfel. Bedankt voor het lezen.

Code

  • Code
CodeArduino
#include #include #include #include #define DEBUG 0 // verander waarde naar 1 om foutopsporing met seriële monitor mogelijk te maken #define dht_pin A0 // pin A0 definiëren voor DHT-sensor#define lightSensor A1 // pin A1 definiëren als ingangspin voor LDR-spanningsdeler DHT;Adafruit_BMP085 bmp;SoftwareSerial esp8266Module(10, 11); // RX, TXString netwerk ="----"; // uw toegangspunt SSIDString-wachtwoord ="-------------"; // uw wifi-toegangspuntwachtwoord #define IP "184.106.153.149" // IP-adres van thingspeak.comString GET ="GET /update?key=----------------"; // vervang door je kanaal keyvoid setup(){ if(DEBUG){ Serial.begin(9600); // Seriële baudrate voor hardware instellen op 9600 } esp8266Module.begin (9600); // Softserial baudrate instellen op 9600 if (!bmp.begin()) { if(DEBUG){ Serial.println("Kon geen geldige BMP085-sensor vinden, controleer bedrading!"); } while (1) {} } delay(2000);}void loop() { setupEsp8266(); DHT.read11(dht_pin); dubbele luchtvochtigheid =DHT.vochtigheid; dubbel bmp_temp =bmp.readTemperature(); dubbele bmp_druk =bmp.readPressure(); int lightIntensity =analogRead(lightSensor); updateTemp(String(bmp_temp), String(lightIntensity),String(bmp_pressure),String(humi)); vertraging (30000);}//------------------------------------------ -------------------------// Volg de functie-instelling van de esp8266, plaats deze in het gemaakte station en // maak verbinding met wifi-toegangspunt.//- -------------------------------------------------- ---------------void setupEsp8266() {if(DEBUG){ Serial.println("Esp8266 resetten"); } esp8266Module.flush(); esp8266Module.println(F("AT+RST")); vertraging (7000); if (esp8266Module.find("OK")) { if(DEBUG){ Serial.println("OK gevonden"); Serial.println("Espmode wijzigen"); } esp8266Module.flush(); veranderende modus(); vertraging (5000); esp8266Module.flush(); verbindenToWiFi(); } else { if(DEBUG){ Serial.println("OK niet gevonden"); } }}//--------------------------------------------- ----------------------// Met de volgende functie wordt esp8266 in de zendermodus gezet//----------------- -------------------------------------------------- bool changeMode(){ esp8266Module.println(F("AT+CWMODE=1")); if (esp8266Module.find("OK")) { if(DEBUG){ Serial.println("Modus gewijzigd"); } retourneer waar; } else if(esp8266Module.find("GEEN VERANDERING")){ if(DEBUG){ Serial.println("Al in modus 1"); } retourneer waar; } else { if(DEBUG){ Serial.println("Fout bij het wijzigen van modus"); } onwaar retourneren; }}//---------------------------------------------- ---------------------// De volgende functie verbindt esp8266 met wifi-toegangspunt//----------------- -------------------------------------------------- bool connectToWiFi(){ if(DEBUG){ Serial.println("inside connectToWiFi"); } String cmd =F("AT+CWJAP=\""); cmd +=netwerk; cmd +=F("\",\""); cmd +=wachtwoord; cmd +=F("\""); esp8266Module.println(cmd); vertraging (15000); if (esp8266Module.find("OK")) { if(DEBUG){ Serial.println("Verbonden met toegangspunt"); } retourneer waar; } else { if(DEBUG){ Serial.println("Kon geen verbinding maken met toegangspunt"); } onwaar retourneren; }}//---------------------------------------------- ---------------------// De volgende functie stuurt sensorgegevens naar thingspeak.com//---------------- -------------------------------------------------- -void updateTemp(String voltage1,String voltage2,String voltage3,String voltage4){ String cmd ="AT+CIPSTART=\"TCP\",\""; cmd +=IP; cmd +="\",80"; esp8266Module.println(cmd); vertraging (5000); if(esp8266Module.find("Fout")){ if(DEBUG){ Serial.println("FOUT tijdens VERZENDEN"); } opbrengst; } cmd =GET + "&field1=" + voltage1 + "&field2=" + voltage2 + "&field3=" + voltage3 + "&field4=" + voltage4 + "\r\n"; esp8266Module.print("AT+CIPSEND="); esp8266Module.println(cmd.length()); vertraging (15000); if(esp8266Module.find(">")) { esp8266Module.print(cmd); if(DEBUG){ Serial.println("Gegevens verzonden"); } }else { esp8266Module.println("AT+CIPCLOSE"); if(DEBUG){ Serial.println("Verbinding gesloten"); } }}
Bibliotheek en code voor persoonlijk weerstation
Bekijk Readmehttps://github.com/jayraj4021/Personal-Weather-Station-14

Schema's

schema.fzz

Productieproces

  1. Weerstation gebaseerd op Raspberry Pi
  2. Raspberry Pi 2 weerstation
  3. Raspberry Pi-weerstation
  4. Doe mee met het IOT met je weerstation – CWOP
  5. Weermonitor
  6. Weerstation V 2.0
  7. Slimme jaloezieën
  8. MKR1000 naar ThingSpeak.com
  9. $10 draagbaar Arduino-weerstation (AWS)
  10. eDOT - op Arduino gebaseerde precisieklok en weerstation
  11. ThingSpeak Arduino-weerstation