How to control a servo with temp & humidity
Dependencies: DHT22 Servo mbed
Fork of Program4_ServoWithTempAndHumidity by
Seeed_Arch_link_ServoWithTempAndHumidity
Setup
- Connect the Temperature sensor as well as the Servo to the Seeeduino-Arch-Link board, and then connect the board to you PC using the micro-USB cable.
- The board mounts as a mass-storage device (like a USB drive). Verify that you can see it (drive name will be MBED).
- Go to http://developer.mbed.org
- Create an ARM mbed account if you do not have one.
- On the top right corner, click the Compiler button.
An IDE should open. Congratulations!
On Windows: To see debug messages, install the serial driver.
Debug messages: We can talk to the board via a serial port, but you might need some software. Read this doc and install required software (like PuTTY or CoolTermon Windows).
Locally: If you like things locally, you can do so by exporting to a supported toolchain.
I very much recommend to just use the online IDE, as it makes it easier for us, but if you want to continue hacking in the future, this is a nice way.
Seeed_Arch_link_ServoWithTempAndHumidity
- Go back to the compiler browser window and click F5 to refresh the page.
- Click the Import button, then click "Click Here to import from URL"
- Paste the URL https://developer.mbed.org/teams/znrobotics/code/Seeed_Arch_link_ServoWithTempAndHumidity/
- Double click to open main.cpp
- Here we intend to control the servo with temp & humidity
- Try to finish the code under' YOUR CODE HERE: to reverse myservo between 0 and 1 '
- Now press Compile
- A file downloads (Seeed_Arch_link_ServoWithTempAndHumidity.hex)
- Drag the file to the 'MBED' disk
- After flashing, hit the 'Reset' button to start the program.
- Now the servo will move based on the temperature reading! Try putting your finger on the temperature sensor to see it move!
main.cpp
- Committer:
- Maggie17
- Date:
- 2016-05-28
- Revision:
- 6:14000499d474
- Parent:
- 5:86adb825bfd2
File content as of revision 6:14000499d474:
#include "mbed.h" // this tells us to load mbed related functions #include "Servo.h" // library for the Servo #include "DHT22.h" // library for the Temp&Humidity sensor DigitalOut myled(LED1); // used as an output for the sensor Servo myservo(p10); // p10 works, using other pins is possible too DHT22 sensor(p6); // the pin of the connected grove port Ticker fan; void fanFunction() { // YOUR CODE HERE: to reverse myservo between 0 and 1 } // this code runs when the microcontroller starts up int main() { bool status; float temp = 0; float hum = 0; // spin a main loop all the time while (1) { // led hearbeat myled = !myled; status = sensor.sample(); // sensor checksum successful if (status) { // printf the temperature and humidity from the sensor temp = sensor.getTemperature()/10.0f; hum = sensor.getHumidity()/10.0f; printf("Temperature is %f C \r\n", temp); printf("Humidity is %f \r\n", hum); // start fanning if temperature > 25C or humidity > 90% if(temp > 25 && hum > 80) { printf("Starting Fan! \r\n"); fan.attach(fanFunction,0.5); } else { printf("Stopping Fan! \r\n"); fan.detach(); } } else { // sensor checksum failed printf("Error reading sample \r\n"); } wait(2.0f); } }