Introduction:
Autonomous live tracking weather station. It takes (analog/digital) measurements and sends them to a web server over GPRS. Adding a battery and a solar station you can make it fully autonomous. It supports up to 3 Analog or Digital inputs. The main brain is the PIC 16F877A which also drives the SIM900/300 GSM module which is placed in the back of the PCB.
The main purpose of this project is to take wind flow measurements of different locations and store them in a database remotely. By this you know if the locations are appropriate for future installation of wind generators.
The data send from GSM to Web server with GET requests which isn't the safest and best way but its an easy way to make it work. The example code you can find at the github is a very simple example and has no security responsibility.
For the GSM communication i've used the SIM900/300 which is a very good, easy to use and cheap gsm module. It offers UART communication and can be controlled with AT Commands. It works at 3.6Volt and uses an external gsm antenna. The module also includes a battery charger which is very useful if an external battery is used in combination with a solar panel or a wind generator for autonomous use. On the design there is also a LED indicator LED1 which indicates the gsm status (blinks). The module can be powered on/off by the button [S3]. As a hardware design guide i have used the Sim300 Hardware Design.
Note1. I began designing the board for SIM300 which finally stopped to be manufactured and replaced with the SIM900. The hardware design manuals deference from each other so you may find some useless components included in the connection between the simcard and the sim module which was included in the SIM300's manual but not in the SIM900's. The footprints of these two modules are the same.
Note2. The S3 which i used to power on/off the module but can be replaced with a transistor connected to the PIC to power on/off the module from the MCU.
Note3. The module works perfectly with the only disadvantage that it needs a voltage supply >4Volt to Vbat pin.
The main "brain" is the PIC 16F877A working at 16Mhz. The MCU is supplied by the Vbat as the gsm module. RA0,1,2 are used for analog inputs (analog measurements). The input voltages are converted to digital internally (ADC) with Vref=3.1V which is stabilized by a 3.1Zener diode. At the analog's inputs pinout is also included a Vbat and GND pin for possible external's measurement tool power supply. The Q3 (BC547) is used to Pulse (PWM) the LCD's backlight in order to reduce the power consumption and adjust the backlight's brightness. S4 switch is used to reset the mcu and R1 is there as a pull up resistor to keep the voltage high on running mode. D1 is there to stop the 12Volt to "charge" the battery and burn the SIM900 (Vbat). R2 limits the programming current flow to MCLR. In this design there is also included a PIC-ICSP header which lets the developer to program the pic in system without the need of unplugging anything.
The 16×2 Char LCD HD44780 :
A 16×2 LCD HD44780 has been used to display some status information and make the device user friendly. There is a backlight jumper (POWER-LCD) at the led's anode which gives the user the option to turn off the backlight for power consumption. There you can see that this net is connected to PIC's INT (LCD-INT) which is used to make the PIC know when the LCD is powered on to run the LCD initialization routines (The LCD at it's first power on needs to be sent some commands to initialize and make it ready to display the data that will receive). By this you can remove the LCD while the MCU is running, plug it back reset the jumper and the LCD will start working again.
More photos:
Breadboard prototype:
Testing Video:
You can download the PCB design the Firmware the datasheets and the data storing web site from the github.
This was build as a project of Microprocessors lab for Technical Institute of Piraeus department of Electronic Computer Systems Engineering.













home
15 Comments
Hi, I thought you would like to see this project based on wireless embedded board and USB weather station straight from the shop: http://www.8devices.com/wiki_carambola/doku.php/carambola_pachube_nexus
Its just like you read my thoughts! You appear as though know a lot concerning this, enjoy a person wrote the book in it or something like that. I do think that you can do with a few pics they are driving your own message home somewhat, but on top of that, it is good weblog..
Upright assignment! I wanted to thank you for this interesting I definitely loved every little bit of it. I have you bookmarked your web site to check out the latest stuff you post.
Thank you very much
Hi
IS the PCB done by Eagle,
If that So, then file is can not be open
Could you advice me
Thank you alot
Download and unzip the archive file from the github. Then open with Eagle the files inside the ./pcb folder. Both scheme and board layout included.
Two thumbs up from me
Thank you for sharing sources, great job.
No problem! This is the beauty of open Source / Hardware. Helping each other showing your projects.
Nice project, thanks a lot for sharing it.
Hi, good work
This project lighted my way. Thank you so much
Hi, i want to ask something, my microcontroller works at 5V and i want to send AT commands from uart. I use a logic converter http://www.sparkfun.com/products/8745 bu it does'nt send or recieve any data. If my mcu work on 4,1 (VBat voltage) can i communicate without logic converter
What are you trying to communicate with?
As i can imagine you may haven't used a common GND. Try connection gsm's GND with mcu's circuit GND.
Hi Haris, thanks for reply
I try to communucate SIM900D Modul with PIC16F877. I used common ground. I examine your project many times and i learnt a lot of thinks, thanks a lot. In your project PIC's VDD is equal to VBat(4.1V). So how MCU's logic high output/input can drive the SIM300? Did you use logic converter? Or connected RX-TX & TX-RX directly ?
http://www.fleximatrix.fr/docs/sim300D_HD_V2.01.pdf
Table 12 – (page 32) Logic levels of serial ports pins
İ want'to ask this to, did you use only TX & RX ? Or DTR and the other pins(CTS,RTS…) must be connect with mcu ?
Thank u so much
Hi Haris , my problem was in my firmware. I solved it thanks for help
No problem