<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3870202655663238104</id><updated>2025-08-09T08:30:16.527-04:00</updated><category term="arduino"/><category term="FullCalendar"/><category term="VB.NET"/><category term="temperature"/><category term="DT22"/><category term="calendar"/><category term="weather"/><category term="ASP.NET"/><category term="jquery"/><title type='text'>Jake&#39;s Stuff</title><subtitle type='html'>Just another geek blog about random tech bytes.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jake1164.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://jake1164.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jake&#39;s Stuff</name><uri>http://www.blogger.com/profile/12545015652530509920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3870202655663238104.post-3394269767892365000</id><published>2022-11-18T16:59:00.000-05:00</published><updated>2022-11-18T16:59:57.624-05:00</updated><title type='text'>Welcome the Tempest Weather Station</title><content type='html'>&lt;h2 style=&quot;text-align: left;&quot;&gt;&amp;nbsp;Prime day&lt;/h2&gt;&lt;div&gt;The most feared day of the year for my wife is Amazon Prime day, and last prime day was like none other. We (well I) ordered lots of very useful stuff and spend WAY too much time looking at lightning deals. With the current state of my weather station (mostly dead) I ran across a lighting deal for a WeatherFlow &lt;a href=&quot;https://weatherflow.com/tempest-weather-system/&quot;&gt;Tempest &lt;/a&gt;weather station. A small self contained external unit for $60 off, interesting.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJF8jpF70t9qJjpY00vewsi6e8LwMdepq09YTnfLaTkvPH8mJgVfLta-tLMKYQ_4Z6xRlFsq2WjM1nH-pari1qNRohwOKVdO0TTJa_UxzSoMcfyS9LsbHpnacscimUpd4NYgLX74VJNI7cq_9TUknGOwkAgQNBuJwoaGY2JIKs8frzjtqcOKou08f8/s1200/WeatherFlow02.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1200&quot; height=&quot;528&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJF8jpF70t9qJjpY00vewsi6e8LwMdepq09YTnfLaTkvPH8mJgVfLta-tLMKYQ_4Z6xRlFsq2WjM1nH-pari1qNRohwOKVdO0TTJa_UxzSoMcfyS9LsbHpnacscimUpd4NYgLX74VJNI7cq_9TUknGOwkAgQNBuJwoaGY2JIKs8frzjtqcOKou08f8/w528-h528/WeatherFlow02.jpg&quot; width=&quot;528&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Tempest&lt;/h2&gt;&lt;div&gt;I looked into it quickly (it is a lightning deal after all) and found the Tempest had the major requirements covered: Temperature, wind direction, Humidity, solar powered, wireless, Rain sensor. So far so good, but I want to integrate this with my Home Assistant and some other side projects, so I need the data. Well the Tempest has &lt;a href=&quot;https://weatherflow.com/tempest-integrations/&quot;&gt;integrations &lt;/a&gt;out of the box, including: WeatherUnderground, IFTTT, Google, Alexa, Seri, SmartThings (Late 2022), to name only a few! But having an integration does not mean I can get to the data myself, does it?&amp;nbsp;&lt;/div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Data&lt;/h2&gt;&lt;div&gt;Welcome the Weatherflow Tempest &lt;a href=&quot;https://weatherflow.github.io/Tempest/&quot;&gt;API &amp;amp; Developer platform&lt;/a&gt;. The API offers full &lt;a href=&quot;https://weatherflow.github.io/Tempest/api/swagger/&quot;&gt;REST &lt;/a&gt;and &lt;a href=&quot;https://weatherflow.github.io/Tempest/api/ws.html&quot;&gt;Websocket &lt;/a&gt;documentation that can all be accessed once you create an access token. Although the documentation recommends using the API, the Tempest does have a local &lt;a href=&quot;https://weatherflow.github.io/Tempest/api/udp.html&quot;&gt;UDP &lt;/a&gt;interface to your local network.&amp;nbsp;&lt;/div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Integrations&amp;nbsp;&lt;/h2&gt;&lt;div&gt;The end goals are to integrate this into my &lt;a href=&quot;https://www.home-assistant.io/&quot;&gt;Home Assistant&lt;/a&gt; house automation and to be able to have some remote weather displays. I am going to be looking into &lt;a href=&quot;https://github.com/briis/hass-weatherflow2mqtt&quot;&gt;weatherflow2mqtt &lt;/a&gt;for interfacing with Home Assistant. I am going to be looking at using a Raspberry Pico to interface an LED Matrix for displaying weather information in the house. But those are for next time.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jake1164.blogspot.com/feeds/3394269767892365000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jake1164.blogspot.com/2022/11/welcome-tempest-weather-station.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/3394269767892365000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/3394269767892365000'/><link rel='alternate' type='text/html' href='http://jake1164.blogspot.com/2022/11/welcome-tempest-weather-station.html' title='Welcome the Tempest Weather Station'/><author><name>Jake&#39;s Stuff</name><uri>http://www.blogger.com/profile/12545015652530509920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJF8jpF70t9qJjpY00vewsi6e8LwMdepq09YTnfLaTkvPH8mJgVfLta-tLMKYQ_4Z6xRlFsq2WjM1nH-pari1qNRohwOKVdO0TTJa_UxzSoMcfyS9LsbHpnacscimUpd4NYgLX74VJNI7cq_9TUknGOwkAgQNBuJwoaGY2JIKs8frzjtqcOKou08f8/s72-w528-h528-c/WeatherFlow02.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870202655663238104.post-6787268631675067532</id><published>2022-11-07T08:31:00.001-05:00</published><updated>2022-11-07T08:32:16.803-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="temperature"/><category scheme="http://www.blogger.com/atom/ns#" term="weather"/><title type='text'>Part 3 - The end of DIY weather stations</title><content type='html'>&lt;h1 style=&quot;text-align: left;&quot;&gt;A Weather Station Postmortem&amp;nbsp;&lt;/h1&gt;&lt;div&gt;In &lt;a href=&quot;https://jake1164.blogspot.com/2014/07/part-1-solar-radiation-shield-after.html&quot;&gt;Part 1&lt;/a&gt; I built a weather shield out of bowls and &lt;a href=&quot;https://jake1164.blogspot.com/2022/11/part-2-diy-home-built-weather-station.html&quot;&gt;Part 2&lt;/a&gt; filled it with all sorts of gadgets, powered it using a battery and a charged the battery using a solar panel. The station was remotely deployed in the back yard to avoid interference from blacktop and other structures.&amp;nbsp; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Deployed&lt;/h3&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5-LCdpufmoKZUBmJgRSomj1iJYcM1npzm4IH3fEV__f2xh2K_QJzbFoNVf8DE7wDRtsg0I0U9GfiALq474hVAhmVmz_52vTe14Rmr32S__x_9S1OpOGBypg5z_PCkiACgd5pPbFkTEp3HbpUEpVX6JrI3ZwSA4ZOQUYSZeoHPM4Mufu3ou8JX6GZG/s4032/IMG_20170527_184800.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;4032&quot; data-original-width=&quot;3024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5-LCdpufmoKZUBmJgRSomj1iJYcM1npzm4IH3fEV__f2xh2K_QJzbFoNVf8DE7wDRtsg0I0U9GfiALq474hVAhmVmz_52vTe14Rmr32S__x_9S1OpOGBypg5z_PCkiACgd5pPbFkTEp3HbpUEpVX6JrI3ZwSA4ZOQUYSZeoHPM4Mufu3ou8JX6GZG/s320/IMG_20170527_184800.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Deployed in 2017 the DIY weather station was solid for several years. It ran and logged data without any intervention. The battery never died and the solar charging worked flawlessly. The logging via the MQTT server and the integration into home assistant was fairly easy and provided years of data (that I have since lost while upgrading &lt;a href=&quot;https://www.home-assistant.io/&quot;&gt;Home Assistant&lt;/a&gt;).&amp;nbsp;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Issues&lt;/h3&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbuIAMutcZ0GwDB75a7FT8uqUE5CavvN-KCtC7Bmo1AHIg_3vzzX__avn7fz6Ru_kARkSJMMp3b8Mg3q6cInBQAUQ_VM-hAhXNqCg8HO0WwkOZXZLh1UZsKhgx1_LEbphhILWeoeIEh8b0xQCY5W6hWvu18MtIPL_E5fjKwF0U2FnE6-jEo0Vlk_Bq/s4000/IMG20221106103537.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1800&quot; data-original-width=&quot;4000&quot; height=&quot;144&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbuIAMutcZ0GwDB75a7FT8uqUE5CavvN-KCtC7Bmo1AHIg_3vzzX__avn7fz6Ru_kARkSJMMp3b8Mg3q6cInBQAUQ_VM-hAhXNqCg8HO0WwkOZXZLh1UZsKhgx1_LEbphhILWeoeIEh8b0xQCY5W6hWvu18MtIPL_E5fjKwF0U2FnE6-jEo0Vlk_Bq/s320/IMG20221106103537.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;After 3 years things started to get glitchy, I would have to restart the Arduino by taking it apart and disconnecting the battery and solar connector. This would work and it would run for a few more weeks. Not sure if this was related to the solar panel which after a few years I had to start cleaning to remove the film left over the years.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3J-PD_4rlvpqJBSnY1-FXBc1_bj4qOFIWopK2nXHwidL0sjsJmMMm7raqk1--xvsRSONPAW3ztZXtID4xQGGU_uiZCvnKIX8debx2SaDPm6ZoNgrFwnDt1W3jX_46BcAx7N5mvFCac1dkAPriJLmMYza0rU-XzELdyme2hgtKMKMCPu0KO5d35o5J/s4000/IMG20221106103532.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;4000&quot; data-original-width=&quot;1800&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3J-PD_4rlvpqJBSnY1-FXBc1_bj4qOFIWopK2nXHwidL0sjsJmMMm7raqk1--xvsRSONPAW3ztZXtID4xQGGU_uiZCvnKIX8debx2SaDPm6ZoNgrFwnDt1W3jX_46BcAx7N5mvFCac1dkAPriJLmMYza0rU-XzELdyme2hgtKMKMCPu0KO5d35o5J/s320/IMG20221106103532.jpg&quot; width=&quot;144&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Another issue was that the bowls used where very thin and cheap and have become very brittle; one stray baseball or soccer kick and you ended up looking like this.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;End Result&lt;/h3&gt;&lt;div&gt;It was a great project and lasted much longer given the less than great weather proofing I provided. In retrospect I should have used some higher quality bowls combined with some good silicone to plug the holes. I also would have added a power switch to the outside of the case and hooked up a small USB cable and left it in place to allow debugging without completely disassembling the unit.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Overall, for a first project of this scale, I think it was a great learning experience.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWQ2hsS_ykOcj8AY-21MlaaSFQMwCDJnyoutrfyB_AsItnoQ-o50PYH0v3_m7ctoIU_JgdpTHS3GtrHqUyJagVRLXniW2EBUn7fUHizHw1nYvWeud_mJYt9HcmTpMOGkplqxQwGOvnNVRQDhUy0KFC7-KMCPdYGoFXFQ4uatJifsiTaBzEkBJ2L69e/s4000/IMG20221106103547.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;4000&quot; data-original-width=&quot;1800&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWQ2hsS_ykOcj8AY-21MlaaSFQMwCDJnyoutrfyB_AsItnoQ-o50PYH0v3_m7ctoIU_JgdpTHS3GtrHqUyJagVRLXniW2EBUn7fUHizHw1nYvWeud_mJYt9HcmTpMOGkplqxQwGOvnNVRQDhUy0KFC7-KMCPdYGoFXFQ4uatJifsiTaBzEkBJ2L69e/s320/IMG20221106103547.jpg&quot; width=&quot;144&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjqBinSgIh8PQu9q3MmB2f3qkZIiGcOSCCFql3gHahmlnwrQmdn5zx699pKuQNWFuKz2LJQEaotLUlfJ8JZudrDm-mNRE17ttKzWUhaLgLH-kxGrB716S1Sdosh1jMvM4ORch9ZZqy2ULpr40e-ErLvSI2aZ3h4pt1ljarVBvd_2BqtSoh1xo2WzAM/s4000/IMG20221106103600.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;4000&quot; data-original-width=&quot;1800&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjqBinSgIh8PQu9q3MmB2f3qkZIiGcOSCCFql3gHahmlnwrQmdn5zx699pKuQNWFuKz2LJQEaotLUlfJ8JZudrDm-mNRE17ttKzWUhaLgLH-kxGrB716S1Sdosh1jMvM4ORch9ZZqy2ULpr40e-ErLvSI2aZ3h4pt1ljarVBvd_2BqtSoh1xo2WzAM/s320/IMG20221106103600.jpg&quot; width=&quot;144&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jake1164.blogspot.com/feeds/6787268631675067532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jake1164.blogspot.com/2022/11/part-3-end-of-diy-weather-stations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/6787268631675067532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/6787268631675067532'/><link rel='alternate' type='text/html' href='http://jake1164.blogspot.com/2022/11/part-3-end-of-diy-weather-stations.html' title='Part 3 - The end of DIY weather stations'/><author><name>Jake&#39;s Stuff</name><uri>http://www.blogger.com/profile/12545015652530509920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5-LCdpufmoKZUBmJgRSomj1iJYcM1npzm4IH3fEV__f2xh2K_QJzbFoNVf8DE7wDRtsg0I0U9GfiALq474hVAhmVmz_52vTe14Rmr32S__x_9S1OpOGBypg5z_PCkiACgd5pPbFkTEp3HbpUEpVX6JrI3ZwSA4ZOQUYSZeoHPM4Mufu3ou8JX6GZG/s72-c/IMG_20170527_184800.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870202655663238104.post-5374537418135262709</id><published>2022-11-06T09:29:00.004-05:00</published><updated>2022-11-07T08:34:54.844-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="DT22"/><category scheme="http://www.blogger.com/atom/ns#" term="temperature"/><category scheme="http://www.blogger.com/atom/ns#" term="weather"/><title type='text'>Part 2 - DIY Home built weather station</title><content type='html'>&lt;h1 style=&quot;text-align: left;&quot;&gt;&amp;nbsp;Part 2 - DIY Home built weather station&lt;/h1&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0fzceaiX9-2pnRPHVbnMd2prf23JkpIUA95cToYFayLJqSqQjzWj3zpXVOhEe3CUrRZbqoOtdfTlJhMtaOSWfnOi9f0hMzJNp7k6twZRQpj98Sbhn7DoaUO-9p5gxyWcw2JQgUWxWNbHhJe2bthD_vO8u_f_o5fBzPDBtdhR7eIHE6-rtTcuXpPL1/s2048/Bowls5.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; display: inline !important; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;2048&quot; data-original-width=&quot;1158&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0fzceaiX9-2pnRPHVbnMd2prf23JkpIUA95cToYFayLJqSqQjzWj3zpXVOhEe3CUrRZbqoOtdfTlJhMtaOSWfnOi9f0hMzJNp7k6twZRQpj98Sbhn7DoaUO-9p5gxyWcw2JQgUWxWNbHhJe2bthD_vO8u_f_o5fBzPDBtdhR7eIHE6-rtTcuXpPL1/s320/Bowls5.jpg&quot; width=&quot;181&quot; /&gt;&lt;/a&gt;In&amp;nbsp;&lt;a href=&quot;https://jake1164.blogspot.com/2014/07/part-1-solar-radiation-shield-after.html&quot;&gt;Part 1&lt;/a&gt;&amp;nbsp;I built a radiant heat shield out of plastic bowels. I shared the design but never did the follow up showing the final product (better late than never)?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For this post I will detail the design to it with all sorts of gadgets and powered it using a battery and a charged the battery using a solar panel. The station was remotely deployed in the back yard to avoid interference from blacktop and other structures.&amp;nbsp; It sent its data using a nRF24l01 transmitter to a Raspberry pi running another nRF24 transmitter. I never really went into the details, so here are what I deployed 8 years ago.&amp;nbsp; (&lt;i&gt;Yes, there is much better hardware options available now!&lt;/i&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Weather Instruments&lt;/h3&gt;&lt;div&gt;I wanted to collect remote temperatures that are not affected by the driveway, so I started with the DHT11, then moved to a DHT22 during testing. While browsing I found an&amp;nbsp;&lt;a href=&quot;https://www.adafruit.com/product/5181&quot;&gt;AHT20&lt;/a&gt;, which is an outdoor version of the DHT22. This fits perfectly since it is already wired and can just hang inside the shield. To collect barometric pressure, I added the BMP085, which also includes a temperature sensor which can be used to keep the DHT22 in check. To keep track of sunlight I added a simple&amp;nbsp;&lt;a href=&quot;https://www.adafruit.com/product/161&quot;&gt;Photocell&lt;/a&gt;&amp;nbsp;to track sunlight brightness.&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Power &amp;amp; Charging&lt;/h3&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEialZ1vlRlsZcG9oGEX8Lf_IjLIrk0ZuiU1W08bNZFo-vl0OfIkgxL49AVdlcm699f9PYshMgzV1N8LJIUrC7yRBSUFFJKZ_zKsx2RNxReD7D5myCfDYaUeLUJWwSAorjvAzFbgQeQDh9v5OOn28aUH1lsvQ9kxHds_r2o-pnOhyr9KjMNRm_g0Ks6m/s4032/IMG_20170504_162739.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;4032&quot; data-original-width=&quot;3024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEialZ1vlRlsZcG9oGEX8Lf_IjLIrk0ZuiU1W08bNZFo-vl0OfIkgxL49AVdlcm699f9PYshMgzV1N8LJIUrC7yRBSUFFJKZ_zKsx2RNxReD7D5myCfDYaUeLUJWwSAorjvAzFbgQeQDh9v5OOn28aUH1lsvQ9kxHds_r2o-pnOhyr9KjMNRm_g0Ks6m/s320/IMG_20170504_162739.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;To power the Arduino I added the Adafruit&amp;nbsp;&lt;a href=&quot;https://www.adafruit.com/product/390&quot;&gt;USB / DC / Solar Lithium Ion/Polymer charger - v2&lt;/a&gt;&amp;nbsp;with a 1200mAh Lithium ion battery. Since the weather station would be outside in NJ and be subjected to occasional cold days I added a&amp;nbsp;&lt;a href=&quot;https://www.adafruit.com/product/372&quot;&gt;10K Thermistor&lt;/a&gt;&amp;nbsp;that would stop charging the battery when the temperatures are hot (50°C) or cold (0°C). This was powered during the day via a 165mm x 165mm 6v Solar panel mounted above the station.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;Guts&lt;/h3&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTGIX1lvbfWipNc0LfXTHQMpvDvlUXAloQ9T7ZFK6mSZjRhfSK2VIN3dFmkz43JJoNf75XX-EWXc9NueAC4PH3koR5Gbs4__wVEoT9x4EMQhc7uPeK345wufsHwo9SxB3P27nJQEfHrCRbs0_FVANaxw1s4Qe1KvVsTN-oxMhfhO7czWEhqFvgrQA6/s4032/IMG_20170504_162731.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;3024&quot; data-original-width=&quot;4032&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTGIX1lvbfWipNc0LfXTHQMpvDvlUXAloQ9T7ZFK6mSZjRhfSK2VIN3dFmkz43JJoNf75XX-EWXc9NueAC4PH3koR5Gbs4__wVEoT9x4EMQhc7uPeK345wufsHwo9SxB3P27nJQEfHrCRbs0_FVANaxw1s4Qe1KvVsTN-oxMhfhO7czWEhqFvgrQA6/s320/IMG_20170504_162731.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Once all the instruments and power was setup I used an Arduino&amp;nbsp;&lt;a href=&quot;https://www.sparkfun.com/products/12587&quot;&gt;3.3V Pro Micro&lt;/a&gt;&amp;nbsp;to read the instruments. This would run and gather the results and transmit via a nRF24l01 transmitter to a Raspberry Pi which collected the results and posted them to a mosquito MQTT broker which displayed them on a Home Assistant (&lt;i&gt;all outside the scope of this article&lt;/i&gt;).&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Data&lt;/h3&gt;&lt;div&gt;The data transmitted include the temperature from the DHT22 as well as from the BMP180. The humidity was also captured via the DHT22 which was then used to calculate the dewpoint. The photocell calculated the light level.&amp;nbsp; Some additional metadata was included for tracking system performance including the voltage of the battery, if the battery was currently charging or done charging,&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Packaging&lt;/h3&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifBHyDFlUEOc6jJrio7UBl9M_vYvO-KOLlkGJ3r1RUm9ZMcFveocHeVfIDSLYs0dxbmY1pn-9cRBQwyt_E0KBjSu95m5Gavy8k-MXr7IEC27kuLlA10szBshMPRsgkLYshw3Ves0RyWgOgIuttu5cEwI5u5D9pVp_J-IMu90ZPuOldkeBnFZopCbJk/s4032/IMG_20170524_174231.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;3024&quot; data-original-width=&quot;4032&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifBHyDFlUEOc6jJrio7UBl9M_vYvO-KOLlkGJ3r1RUm9ZMcFveocHeVfIDSLYs0dxbmY1pn-9cRBQwyt_E0KBjSu95m5Gavy8k-MXr7IEC27kuLlA10szBshMPRsgkLYshw3Ves0RyWgOgIuttu5cEwI5u5D9pVp_J-IMu90ZPuOldkeBnFZopCbJk/s320/IMG_20170524_174231.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;To deploy I soldered the Arduino to a small double sided PCB &lt;a href=&quot;https://www.amazon.com/ELEGOO-Prototype-Soldering-Compatible-Arduino/dp/B072Z7Y19F/ref=sr_1_7?keywords=soldering+board&amp;amp;qid=1667743741&amp;amp;sr=8-7&quot;&gt;board&lt;/a&gt;&amp;nbsp;that would fit into a small metal Sucrets tin (this was before I owned a 3d printer). I cut holes in the tin to be able to hook a USB cable into the Arduino and update code (in retrospect I wish I would have left the cable attached). I also had to fish the wires out and leave a connection to the solar panel. In the end everything fit snug.&amp;nbsp;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Code&lt;/h3&gt;&lt;div&gt;Since this was running on a battery and on a solar panel I wanted to take advantage of the &lt;a href=&quot;https://github.com/rocketscream/Low-Power&quot;&gt;LowPower &lt;/a&gt;module to put it to sleep since I only need to read the temperatures every few min. I also take and grab the temperatures into an array and only send the average every min. The code also includes a simple python version for the Raspberry pi to read the data and decode the RF stream and print the struct out.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;The code is located &lt;a href=&quot;https://github.com/jake1164/WeatherStation&quot;&gt;here &lt;/a&gt;on github.&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Finished Project&lt;/h3&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxHcMIo3hqoIAJBK-52qmkZ3IK9UWbW5p4t9NvIthrIJN_mI88YRXFVCzO2JgX24Pwsmb5VJZSmnmkWwTKw89v7qwZVAxqe1k5AIPNTKhqlNU2WSZXoBo_yUqBqUy3PwYNaVlY7xDpwdSEDjXomGZhNVYnInvnhIbo09QEIXHIN1U1u6M20w-OmHIR/s4032/IMG_20170524_175627.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;3024&quot; data-original-width=&quot;4032&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxHcMIo3hqoIAJBK-52qmkZ3IK9UWbW5p4t9NvIthrIJN_mI88YRXFVCzO2JgX24Pwsmb5VJZSmnmkWwTKw89v7qwZVAxqe1k5AIPNTKhqlNU2WSZXoBo_yUqBqUy3PwYNaVlY7xDpwdSEDjXomGZhNVYnInvnhIbo09QEIXHIN1U1u6M20w-OmHIR/s320/IMG_20170524_175627.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhzGZ5IB93i4UZH-qr1M11HraenNxSGFpXabN158DqL4KF5GnH0D97b2ZbcP7mcqDlsN8b86iYoEFa_mnzfmXd1hwHfQjHjSHR8B0228HL3oZQxdZZDxT8KTCH9ptwF0PFf1YNO1t-85HARX4WkPuTigWLFVfkgCKotyO_Edg8bvcv4Qfunb6U02ce/s4032/IMG_20170524_175609.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;4032&quot; data-original-width=&quot;3024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhzGZ5IB93i4UZH-qr1M11HraenNxSGFpXabN158DqL4KF5GnH0D97b2ZbcP7mcqDlsN8b86iYoEFa_mnzfmXd1hwHfQjHjSHR8B0228HL3oZQxdZZDxT8KTCH9ptwF0PFf1YNO1t-85HARX4WkPuTigWLFVfkgCKotyO_Edg8bvcv4Qfunb6U02ce/s320/IMG_20170524_175609.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLJBh8dV6jolVEWVze43RNda0o9ddCaJ_33Aa-oH1gPfdj5cON1pURBb_8ucTYmLO_QjTaY31OneAsUHBkmxAGQqftewEWhUhRmkyX0Pisd2t41JBqUVMVa5cCO-D87BaoOYyDS1shhTmMQhbjzUiIJkIAkCu8jc1df17U3NzWSAm0VaN1P5wSaJol/s4032/IMG_20170527_184806.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;4032&quot; data-original-width=&quot;3024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLJBh8dV6jolVEWVze43RNda0o9ddCaJ_33Aa-oH1gPfdj5cON1pURBb_8ucTYmLO_QjTaY31OneAsUHBkmxAGQqftewEWhUhRmkyX0Pisd2t41JBqUVMVa5cCO-D87BaoOYyDS1shhTmMQhbjzUiIJkIAkCu8jc1df17U3NzWSAm0VaN1P5wSaJol/s320/IMG_20170527_184806.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPKUfkKeUSPtnoST2RJcp6LLNa-mAV4r8hSWbUSBsfkjdWs5iUiTCj-YOKuGYV46fHuX2vQtgfg1NCtQPuMnqMZLEdakGRjJJbZo31pa1i12iSp43FIxwyYuo5VSYE3RrpGpw5LcC95bJ2W1NdohuRjSncZZAxWVHm0Q37qK6UIbSQavrBWBWSKu8F/s4032/IMG_20170527_184800.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;4032&quot; data-original-width=&quot;3024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPKUfkKeUSPtnoST2RJcp6LLNa-mAV4r8hSWbUSBsfkjdWs5iUiTCj-YOKuGYV46fHuX2vQtgfg1NCtQPuMnqMZLEdakGRjJJbZo31pa1i12iSp43FIxwyYuo5VSYE3RrpGpw5LcC95bJ2W1NdohuRjSncZZAxWVHm0Q37qK6UIbSQavrBWBWSKu8F/s320/IMG_20170527_184800.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Parts list:&lt;/h4&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;div&gt;&lt;a href=&quot;https://www.sparkfun.com/products/12587&quot;&gt;3.3V Pro Micro&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;a href=&quot;https://www.amazon.com/Makerfire-Arduino-NRF24L01-Wireless-Transceiver/dp/B00O9O868G&quot;&gt;NRF24L01+&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;a href=&quot;https://www.sparkfun.com/products/retired/11282&quot;&gt;BMP085&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;a href=&quot;https://www.adafruit.com/product/5181&quot;&gt;AM2301B (AHT20)&lt;/a&gt;&amp;nbsp;(Rugged outdoor version)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;a href=&quot;https://www.adafruit.com/product/161&quot;&gt;Photocell&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;a href=&quot;https://www.adafruit.com/product/390&quot;&gt;USB / DC / Solar Lithium Ion/Polymer charger - v2&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;a href=&quot;https://www.adafruit.com/product/372&quot;&gt;10K Thermistor&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.addicore.com/4-5W-6V-Solar-Panel-165mm-x-165mm-x-2mm-p/ad459.htm&quot; style=&quot;font-size: 15px; letter-spacing: 0.28px;&quot;&gt;Solar panel&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jake1164.blogspot.com/feeds/5374537418135262709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jake1164.blogspot.com/2022/11/part-2-diy-home-built-weather-station.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/5374537418135262709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/5374537418135262709'/><link rel='alternate' type='text/html' href='http://jake1164.blogspot.com/2022/11/part-2-diy-home-built-weather-station.html' title='Part 2 - DIY Home built weather station'/><author><name>Jake&#39;s Stuff</name><uri>http://www.blogger.com/profile/12545015652530509920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0fzceaiX9-2pnRPHVbnMd2prf23JkpIUA95cToYFayLJqSqQjzWj3zpXVOhEe3CUrRZbqoOtdfTlJhMtaOSWfnOi9f0hMzJNp7k6twZRQpj98Sbhn7DoaUO-9p5gxyWcw2JQgUWxWNbHhJe2bthD_vO8u_f_o5fBzPDBtdhR7eIHE6-rtTcuXpPL1/s72-c/Bowls5.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870202655663238104.post-8346537319576826431</id><published>2014-07-04T09:53:00.000-04:00</published><updated>2014-07-07T19:00:59.220-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="DT22"/><category scheme="http://www.blogger.com/atom/ns#" term="temperature"/><title type='text'>&#xa;Part 1 - Building a Solar Radiation Shield</title><content type='html'>&lt;h1&gt;
Part 1 - Solar Radiation Shield&lt;/h1&gt;
&lt;div&gt;
After doing some research on &lt;a href=&quot;http://www.wunderground.com/weatherstation/setup.asp&quot; target=&quot;_blank&quot;&gt;underground weather&lt;/a&gt;&amp;nbsp;I found that it is recommended to use a radiation shield. So doing some searches I found that they are pretty darn expensive, translation to my wife, you want to spend &lt;a href=&quot;http://www.amazon.com/s/ref=nb_ss_gw?url=search-alias=aps&amp;amp;field-keywords=solar%20radiation%20shield&quot; target=&quot;_blank&quot;&gt;HOW &lt;/a&gt;much on a hunk of metal (cheapest I found was $50 plus shipping)?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So I asked myself, why do I need a radiation shield? I found some interesting information &lt;a href=&quot;http://www.wxqa.com/shields.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;, which comes out with the takeaway that with no breeze the temperature can be up to a degree(s) higher than when in a radiation shield.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
However there must be a cheaper way.. insert the &lt;a href=&quot;http://pond1.gladstonefamily.net/sensors.html&quot; target=&quot;_blank&quot;&gt;DIY &lt;/a&gt;approach! Go to the local dollar store and purchase about 6 plastic bowels. Stop at Home Depot and purchase three 1/8 inch diameter, &amp;nbsp;12 inch long rods and a box of stainless nuts. and a bunch of wood dowels to space the bowls apart.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Tape the bowls together so you can drill three holes in the same place in all the bowls. Using a drill press or a drill drill holes and then remove the tape. &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGsqUIWRk7IbMgtD3o5ZGL0lWXo0hBUjZRLmYCyJKukJohFySLraJxEnKa2u6A9PCRrKL0n0vrjRtT9asBY5n38-PmS1bx7LUuTCq1iWLxlarvaXJOJlB00I2oyVo4oru4r3X5copsjOY/s1600/Bowls3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGsqUIWRk7IbMgtD3o5ZGL0lWXo0hBUjZRLmYCyJKukJohFySLraJxEnKa2u6A9PCRrKL0n0vrjRtT9asBY5n38-PmS1bx7LUuTCq1iWLxlarvaXJOJlB00I2oyVo4oru4r3X5copsjOY/s1600/Bowls3.jpg&quot; height=&quot;320&quot; width=&quot;181&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU11OxUpnl_uWsXqnFrFjLUBKMuHRw4OLqFpKYBVgnTFoZQEj3uJqjcHLiP2t7gwt3YdWXVNGVVqHKg9ax4YXo1j9Ar5GiDE9lrwTOJDhIRJnSv028PEINONoezC8pvLB1omCjEtGfS9Y/s1600/Bowls1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU11OxUpnl_uWsXqnFrFjLUBKMuHRw4OLqFpKYBVgnTFoZQEj3uJqjcHLiP2t7gwt3YdWXVNGVVqHKg9ax4YXo1j9Ar5GiDE9lrwTOJDhIRJnSv028PEINONoezC8pvLB1omCjEtGfS9Y/s1600/Bowls1.jpg&quot; height=&quot;181&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Next you need to take all but 2 or 3 bowls and cut the middle of the bowl out so we have a large center chamber to put the temperature sensor.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLH7Z274OSigyQ_o_hsbgq1GzGRTV1haEEXD8Q6uUNotdyTZu5KFcqT9TCSD7yHA9-TcBUbrDBYpHtFuglu5tf1KsDegt4z5zTf1TVxhQK8fa8X_KTM57oSAQLnZUxxpe3MkJzgf7huzo/s1600/bowls2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLH7Z274OSigyQ_o_hsbgq1GzGRTV1haEEXD8Q6uUNotdyTZu5KFcqT9TCSD7yHA9-TcBUbrDBYpHtFuglu5tf1KsDegt4z5zTf1TVxhQK8fa8X_KTM57oSAQLnZUxxpe3MkJzgf7huzo/s1600/bowls2.jpg&quot; height=&quot;181&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Take the rods and place double nuts at an even distance from the top of the rod and this will hold your top cover in place. I used stainless wing nuts on the top to make access to my electronic components easier in the future.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Lastly we take and cut the hunks of wood into small spacers, then drill the center of the spacers out. Placing everything on top of each other will make a cheap DIY radiation shield.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgder_aWzgBEiZoykl3Gn7rhRhz_2tUm7VNbLwQn5sWQnixOLUTssJKVviSXF8shyGwMDo2dqPS1zPEN_FAZUwR9nLLXuYpzyqAJvQo4u5rNuSVH99Z6B5_t-TbDP_UADUJhzxnwJvlvmw/s1600/Bowls5.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgder_aWzgBEiZoykl3Gn7rhRhz_2tUm7VNbLwQn5sWQnixOLUTssJKVviSXF8shyGwMDo2dqPS1zPEN_FAZUwR9nLLXuYpzyqAJvQo4u5rNuSVH99Z6B5_t-TbDP_UADUJhzxnwJvlvmw/s1600/Bowls5.jpg&quot; height=&quot;320&quot; width=&quot;181&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwqk_nTqBUoe5zVz94oCmiUqfb1BtDtAl3-8YR3nlOIr-VU5_7pInFjl3Lz9itjQWO13FVARygcGVTxUzwQ9DfUNszlOpV0YT7tgnpULYm8fZW64i8cVJ-nluWFuSHI59Erj8-tvbyoyA/s1600/Bowls4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwqk_nTqBUoe5zVz94oCmiUqfb1BtDtAl3-8YR3nlOIr-VU5_7pInFjl3Lz9itjQWO13FVARygcGVTxUzwQ9DfUNszlOpV0YT7tgnpULYm8fZW64i8cVJ-nluWFuSHI59Erj8-tvbyoyA/s1600/Bowls4.jpg&quot; height=&quot;320&quot; width=&quot;181&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Next in Part 2 - Prototyping the Arduino remote temperature sensor&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://jake1164.blogspot.com/feeds/8346537319576826431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jake1164.blogspot.com/2014/07/part-1-solar-radiation-shield-after.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/8346537319576826431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/8346537319576826431'/><link rel='alternate' type='text/html' href='http://jake1164.blogspot.com/2014/07/part-1-solar-radiation-shield-after.html' title='&#xa;Part 1 - Building a Solar Radiation Shield'/><author><name>Jake&#39;s Stuff</name><uri>http://www.blogger.com/profile/12545015652530509920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGsqUIWRk7IbMgtD3o5ZGL0lWXo0hBUjZRLmYCyJKukJohFySLraJxEnKa2u6A9PCRrKL0n0vrjRtT9asBY5n38-PmS1bx7LUuTCq1iWLxlarvaXJOJlB00I2oyVo4oru4r3X5copsjOY/s72-c/Bowls3.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870202655663238104.post-7364486534494598145</id><published>2014-06-19T12:21:00.002-04:00</published><updated>2022-11-07T09:33:28.450-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="arduino"/><title type='text'>AHBWS - Another Home Brew Weather Station</title><content type='html'>After years of taking classes at &lt;a href=&quot;http://www.njit.edu/&quot; target=&quot;_blank&quot;&gt;NJIT &lt;/a&gt;I have completed my Masters in Computer Science I have to figure out how to fill my time. I have decided to dive head first into the wonderful world of &lt;a href=&quot;http://www.arduino.cc/&quot; target=&quot;_blank&quot;&gt;arduino&lt;/a&gt;!&lt;br /&gt;
&lt;br /&gt;
While playing with random components is fun I like to have a larger goal in mind and so I have decided to create a weather station. So I started by doing the research of how to publish my data on the &lt;a href=&quot;http://www.wunderground.com/&quot; target=&quot;_blank&quot;&gt;weather underground&lt;/a&gt; and found they have two recommendations that are going to drive my design. First the thermometer is 50&#39; from the nearest paved surface. I was initially thinking of mounting the weather unit on the back of the garage, but that wont be 50&#39; from the driveway. &amp;nbsp;Second is that the thermometer is recommended to be placed into a &lt;a href=&quot;http://wiki.wunderground.com/index.php/PWS_-_Siting&quot; target=&quot;_blank&quot;&gt;radiation shield&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJIooVpILkqilJ5drCZWswCbtGVzH9hLenw73y-6zwvprgCvGby-EjgWKmCHdsfdxhHY9CIwMux-nHYms_cOdgwq73sUAh8IeJvffb3egurnN-HixBD9TtxCdFy80dJVcOihIUCKAql1s4ivpJB2_gFJ9vP6F9-0sYLOwJza6e0mbkqGEakrFoaU3S/s300/OIP.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;300&quot; data-original-width=&quot;219&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJIooVpILkqilJ5drCZWswCbtGVzH9hLenw73y-6zwvprgCvGby-EjgWKmCHdsfdxhHY9CIwMux-nHYms_cOdgwq73sUAh8IeJvffb3egurnN-HixBD9TtxCdFy80dJVcOihIUCKAql1s4ivpJB2_gFJ9vP6F9-0sYLOwJza6e0mbkqGEakrFoaU3S/s1600/OIP.jpg&quot; width=&quot;219&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Ambient Weather SRS100 Solar Radiation Shield&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Basic design will be to take a Sparkfun SEN-08942 &lt;a href=&quot;https://www.sparkfun.com/products/8942&quot; target=&quot;_blank&quot;&gt;Weather Meter&lt;/a&gt;&amp;nbsp;hooked to an arduino uno with a RF24+ talking to a remote mounted arduino mini-pro reading temperature / humidity &amp;amp; atmospheric pressure and transmitting the data back to the uno.&lt;br /&gt;
&lt;br /&gt;
Parts and more details will be coming in following posts.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://jake1164.blogspot.com/feeds/7364486534494598145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jake1164.blogspot.com/2014/06/after-years-of-taking-classes-at-njit-i.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/7364486534494598145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/7364486534494598145'/><link rel='alternate' type='text/html' href='http://jake1164.blogspot.com/2014/06/after-years-of-taking-classes-at-njit-i.html' title='AHBWS - Another Home Brew Weather Station'/><author><name>Jake&#39;s Stuff</name><uri>http://www.blogger.com/profile/12545015652530509920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJIooVpILkqilJ5drCZWswCbtGVzH9hLenw73y-6zwvprgCvGby-EjgWKmCHdsfdxhHY9CIwMux-nHYms_cOdgwq73sUAh8IeJvffb3egurnN-HixBD9TtxCdFy80dJVcOihIUCKAql1s4ivpJB2_gFJ9vP6F9-0sYLOwJza6e0mbkqGEakrFoaU3S/s72-c/OIP.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870202655663238104.post-7002739779237878521</id><published>2011-02-21T20:56:00.002-05:00</published><updated>2014-07-12T14:16:29.278-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="calendar"/><category scheme="http://www.blogger.com/atom/ns#" term="FullCalendar"/><category scheme="http://www.blogger.com/atom/ns#" term="VB.NET"/><title type='text'>Full Calendar 1-4.10</title><content type='html'>&lt;div&gt;After a year of not playing with FullCalendar it was brought to my attention that my examples no longer work with version 1-4.10 of&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://arshaw.com/fullcalendar/&quot;&gt;FullCalendar&lt;/a&gt;. So I took my sample code and modified it to work with&amp;nbsp;the latest version of FullCalendar and&amp;nbsp;ASP.NET (VB).&amp;nbsp; The problems are still the same, just in different places.&lt;br /&gt;
&lt;br /&gt;
You need to still modify the&amp;nbsp;start / end param names (now &amp;nbsp;called startParam and endParam) to use another date name, I prefer startDate and endDate.&amp;nbsp; If you open the fullcalendar.js file you will find these around line 43.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border-bottom: rgb(153,153,153) 1px dashed; border-left: rgb(153,153,153) 1px dashed; border-right: rgb(153,153,153) 1px dashed; border-top: rgb(153,153,153) 1px dashed; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; height: 86px; line-height: 14px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 100%;&quot;&gt;&lt;code&gt;
//startParam: &#39;start&#39;,
//endParam: &#39;end&#39;,
startParam: &#39;startDate&#39;,
endParam: &#39;endDate&#39; 
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Next you need to a search for .ajax&amp;nbsp;(or skip to line 923) and modify the lines to add a couple key points to make this work with an ASP webservice. &lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border-bottom: rgb(153,153,153) 1px dashed; border-left: rgb(153,153,153) 1px dashed; border-right: rgb(153,153,153) 1px dashed; border-top: rgb(153,153,153) 1px dashed; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; height: 185px; line-height: 14px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 78.67%;&quot;&gt;&lt;code&gt; $.ajax({
url: source,
type: &#39;POST&#39;,
dataType: &#39;json&#39;,
contentType: &#39;application/json; charset=utf-8&#39;,
data: JSON.stringify(params),
cache: options.cacheParam 
false, // don&#39;t let jquery prevent caching if cacheParam is being used
success: function(events) {
popLoading();
callback(eval(events.d));
}
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
The last change was to create your webservice that will post your calendar events from your database to the calendar via the jquery ajax call.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border-bottom: rgb(153,153,153) 1px dashed; border-left: rgb(153,153,153) 1px dashed; border-right: rgb(153,153,153) 1px dashed; border-top: rgb(153,153,153) 1px dashed; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 100%;&quot;&gt;&lt;code&gt;    &amp;lt;WebMethod()&amp;gt; _
    Public Function EventList(ByVal startDate As String, ByVal endDate As String) As String
        &#39; List to hold events
        Dim events As List(Of CalendarDTO) = New List(Of CalendarDTO)()

        Dim starting As DateTime = FromUnixTimespan(startDate)
        &#39; Loop through events to be added
        For i As Integer = 0 To 4
            &#39; Create a new event and start to populate
            Dim value As CalendarDTO = New CalendarDTO()
            &#39; Date is required to be in a unix format
            value.StartDate = ToUnixTimespan(starting.AddDays(i * 2))
            value.id = i
            value.title = &quot;Title of event number &quot; + i.ToString()

            If i Mod 2 = 1 Then &#39; if even we will add an end date
                value.EndDate = ToUnixTimespan(starting.AddDays(1 + (i * 3)))
            End If
            events.Add(value)
        Next
        &#39; Serialize the return value so it can be decoded in java.
        Dim js As New System.Web.Script.Serialization.JavaScriptSerializer
        Dim returnvalue As String = js.Serialize(events).Replace(&quot;StartDate&quot;, &quot;start&quot;).Replace(&quot;EndDate&quot;, &quot;end&quot;)

        Return ret
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
As promised &lt;a href=&quot;http://www.staceynjasonsjourney.us/Downloads/CalendarExamplev2.zip&quot;&gt;here&lt;/a&gt; is the full sample code to get fullcalendar working with a ASP webservice.&lt;br /&gt;
&lt;br /&gt;
On a side note.. Have you read the latest Scot Harvath book, its well worth the read!&lt;br /&gt;
&lt;span&gt;&lt;iframe align=&quot;right&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=chautauquacen-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=1416586598&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;align: right; height: 245px; padding-right: 10px; padding-top: 5px; width: 109px;&quot;&gt;&lt;/iframe&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jake1164.blogspot.com/feeds/7002739779237878521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jake1164.blogspot.com/2011/02/full-calendar-1-410.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/7002739779237878521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/7002739779237878521'/><link rel='alternate' type='text/html' href='http://jake1164.blogspot.com/2011/02/full-calendar-1-410.html' title='Full Calendar 1-4.10'/><author><name>Jake&#39;s Stuff</name><uri>http://www.blogger.com/profile/12545015652530509920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870202655663238104.post-6801308582295572477</id><published>2011-01-01T19:38:00.000-05:00</published><updated>2011-01-01T19:38:47.483-05:00</updated><title type='text'>Student Discounts Rock!</title><content type='html'>If you do any development and happen to be a student you GOTTA check out Microsoft&#39;s &lt;a href=&quot;https://www.dreamspark.com/default.aspx&quot;&gt;DreamSpark&lt;/a&gt; program! As per the DreamSpark site: &lt;br /&gt;
DreamSpark is simple: Its about giving students Microsoft professional tools at no charge.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Students get full versions of Visual Studio 2010 Pro (Or 2008 Pro), Windows Server 2008 or 2008 R2, Expression Studio 4 ultimate and lots more (Sql Server, Game Studio).&amp;nbsp; I would say its worth enrolling in a few classes just to get download privileges to this site!</content><link rel='replies' type='application/atom+xml' href='http://jake1164.blogspot.com/feeds/6801308582295572477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jake1164.blogspot.com/2011/01/student-discounts-rock.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/6801308582295572477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/6801308582295572477'/><link rel='alternate' type='text/html' href='http://jake1164.blogspot.com/2011/01/student-discounts-rock.html' title='Student Discounts Rock!'/><author><name>Jake&#39;s Stuff</name><uri>http://www.blogger.com/profile/12545015652530509920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870202655663238104.post-3469115083053330583</id><published>2010-07-20T08:16:00.000-04:00</published><updated>2014-07-12T14:17:03.684-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="calendar"/><category scheme="http://www.blogger.com/atom/ns#" term="FullCalendar"/><category scheme="http://www.blogger.com/atom/ns#" term="VB.NET"/><title type='text'>Adding dynamic color to FullCalendar from ASP.NET Webservice.</title><content type='html'>&lt;span&gt;&lt;iframe align=&quot;right&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=chautauquacen-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0321525566&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;align: right; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;&lt;/span&gt;Building on the &lt;a href=&quot;http://jake1164.blogspot.com/2010/06/jquery-fullcalendar-and-aspnet.html&quot;&gt;last &lt;/a&gt;example of how to get &lt;a href=&quot;http://arshaw.com/fullcalendar/&quot;&gt;FullCalendar&lt;/a&gt; to run using VB.NET using a webservice, today we will show a simple example of adding dynamic color. In the example I created I have 3 events, holidays, vacations and other. I would like to color each event a separate color to make it easy to tell holidays from vacations. &lt;br /&gt;
&lt;br /&gt;
First we need to open the CalendarDTO class that we use to pass data from the webservice back to the FullCalendar plugin.&lt;br /&gt;
In the class add a single property named &lt;b style=&quot;color: red;&quot;&gt;className&lt;/b&gt;, take note that this property name needs to be exact!&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border-bottom: #999999 1px dashed; border-left: #999999 1px dashed; border-right: #999999 1px dashed; border-top: #999999 1px dashed; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 100%;&quot;&gt;&lt;code&gt;
    Private m_Class As String
    Public Property &lt;b style=&quot;color: red;&quot;&gt;className()&lt;/b&gt; As String
        Get
            Return m_Class
        End Get
        Set(ByVal value As String)
            m_Class = value
        End Set
    End Property
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Next in the Calendar.vb webservice you need to add the class name that you will use in the sytlesheet. For my example I am going to randomly assign the class names &lt;b&gt;holiday&lt;/b&gt;, &lt;b&gt;vacation &lt;/b&gt;and &lt;b&gt;other&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border-bottom: #999999 1px dashed; border-left: #999999 1px dashed; border-right: #999999 1px dashed; border-top: #999999 1px dashed; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 100%;&quot;&gt;&lt;code&gt;
    &lt;webmethod()&gt; _
    Public Function EventList(ByVal startDate As String, ByVal endDate As String) As String
        &#39; List to hold events
        Dim events As List(Of CalendarDTO) = New List(Of CalendarDTO)()
        Dim rand As New System.Random(2)

        Dim starting As DateTime = FromUnixTimespan(startDate)
        &#39; Loop through events to be added
        For i As Integer = 0 To 4
            &#39; Create a new event and start to populate
            Dim value As CalendarDTO = New CalendarDTO()
            &#39; Date is required to be in a unix format
            value.StartDate = ToUnixTimespan(starting.AddDays(i * 2))
            value.id = i
            value.title = &quot;Title of event number &quot; + i.ToString()


            Select Case rand.Next(1, 3)
                Case 1
                   &lt;b&gt; value.className = &quot;holiday&quot;
&lt;/b&gt;                Case 2
                    &lt;b&gt;value.className = &quot;vacation&quot;
&lt;/b&gt;                Case 3
                    &lt;b&gt;value.className = &quot;other&quot;
&lt;/b&gt;            End Select

            If i Mod 2 = 1 Then &#39; if even we will add an end date
                value.EndDate = ToUnixTimespan(starting.AddDays(1 + (i * 3)))
            End If
            events.Add(value)
        Next
        &#39; Serialize the return value so it can be decoded in java.
        Dim js As New System.Web.Script.Serialization.JavaScriptSerializer
        Return js.Serialize(events)
    End Function

&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to add the style to the page with the calendar, once again you need to make sure the &lt;b&gt;name matches &lt;/b&gt;the name you used in the className field in the webservice.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border-bottom: #999999 1px dashed; border-left: #999999 1px dashed; border-right: #999999 1px dashed; border-top: #999999 1px dashed; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 100%;&quot;&gt;&lt;code&gt;
&amp;lt;style type=&quot;text/css&quot;&amp;gt;
    &lt;b style=&quot;color: red;&quot;&gt;.holiday&lt;/b&gt;, 
    .fc-agend a &lt;b style=&quot;color: red;&quot;&gt;.holiday &lt;/b&gt;.fc-event-time,
    &lt;b style=&quot;color: red;&quot;&gt;.holiday &lt;/b&gt;a
    {
        background-color: Olive; /* background color */
        border-color: Olive;     /* border color */
        color: White;           /* text color */
    }
    .vacation, 
    .fc-agend a .vacation .fc-event-time,
    .vacation a
    {
        background-color: Maroon; /* background color */
        border-color: Maroon;     /* border color */
        color: White;           /* text color */
    }
    .other, 
    .fc-agend a .other .fc-event-time,
    .other a
    {
        background-color: Fuchsia; /* background color */
        border-color: Fuchsia;     /* border color */
        color: White;           /* text color */
    }
&amp;lt;/style&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Run the example and you should have colored events! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span&gt;&lt;iframe align=&quot;right&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=chautauquacen-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0470499834&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;align: right; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;The key to this is to watch the names and make sure you are consistant.&lt;/span&gt;&lt;/strong&gt; &lt;br /&gt;
&lt;br /&gt;
Up next will be integrating a tooltip with matching colors.</content><link rel='replies' type='application/atom+xml' href='http://jake1164.blogspot.com/feeds/3469115083053330583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jake1164.blogspot.com/2010/07/adding-dynamic-color-to-fullcalendar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/3469115083053330583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/3469115083053330583'/><link rel='alternate' type='text/html' href='http://jake1164.blogspot.com/2010/07/adding-dynamic-color-to-fullcalendar.html' title='Adding dynamic color to FullCalendar from ASP.NET Webservice.'/><author><name>Jake&#39;s Stuff</name><uri>http://www.blogger.com/profile/12545015652530509920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870202655663238104.post-5207342822210864160</id><published>2010-06-22T12:03:00.002-04:00</published><updated>2011-02-25T08:39:14.845-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET"/><category scheme="http://www.blogger.com/atom/ns#" term="FullCalendar"/><category scheme="http://www.blogger.com/atom/ns#" term="jquery"/><category scheme="http://www.blogger.com/atom/ns#" term="VB.NET"/><title type='text'>jQuery FullCalendar and ASP.NET</title><content type='html'>I needed to display a simple event calendar and looked around for the easiest path to the solution and found &lt;a href=&quot;http://arshaw.com/fullcalendar/&quot;&gt;fullcalendar v1.4.6&lt;/a&gt;. The control is simple and elegant, but not very asp.net and expecially vb.net friendly. This is how you get it to work with a VB.NET webservice that can be used to pull from a database.&lt;br /&gt;
&lt;br /&gt;
Update: v1.4.10 example can be found &lt;a href=&quot;http://jake1164.blogspot.com/2011/02/full-calendar-1-410.html&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Updated!&amp;nbsp; You can now download the example code &lt;a href=&quot;http://www.staceynjasonsjourney.us/Downloads/CalendarExample1.zip&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
I am going to assume that you are able to create a basic asp.net website, add your own calendar page and put the fullcalendar control on the page.&lt;br /&gt;
&lt;br /&gt;
First we will create a data class to return the results from the webservice.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border-bottom: #999999 1px dashed; border-left: #999999 1px dashed; border-right: #999999 1px dashed; border-top: #999999 1px dashed; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 100%;&quot;&gt;&lt;code&gt;
Public Class CalendarDTO
Private m_id As Int32    
Public Property id() As Int32
Get
Return m_id
End Get
Set(ByVal value As Int32)
m_id = value
End Set
End Property

Private m_Title As String
Public Property title() As String
Get
Return m_Title
End Get
Set(ByVal value As String)
m_Title = value
End Set
End Property

Private m_Start As Int64
Public Property &lt;span style=&quot;color: #ff6666;&quot;&gt;StartDate&lt;/span&gt;() As Int64
Get
Return m_Start
End Get
Set(ByVal value As Int64)
m_Start = value
End Set
End Property

Private m_End As Int64
Public Property &lt;span style=&quot;color: red;&quot;&gt;EndDate&lt;/span&gt;() As Int64
Get
Return m_End
End Get
Set(ByVal value As Int64)
m_End = value
End Set
End Property

Private m_Url As String
Public Property url() As String
Get
Return m_Url
End Get
Set(ByVal value As String)
m_Url = value
End Set
End Property
End Class
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
The part of this code you need to take special note is &lt;strong&gt;EndDate&lt;/strong&gt; and &lt;strong&gt;StartDate&lt;/strong&gt; properties, we need to convert these to &lt;strong&gt;start &lt;/strong&gt;and &lt;strong&gt;end&lt;/strong&gt; in the fullcalendar.js file.&lt;br /&gt;
&lt;br /&gt;
Next we will add the basic info to the webservice (once again I hope you can find enough examples to add a webservice on the web). Points to take note of are the startDate and endDate strings, these will be passed in as a unixTimespan and will look like a long integer, we will need to convert our dates from this format.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border-bottom: #999999 1px dashed; border-left: #999999 1px dashed; border-right: #999999 1px dashed; border-top: #999999 1px dashed; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 100%;&quot;&gt;&lt;code&gt;
Public Function EventList(ByVal startDate As String, ByVal endDate As String) As String
Dim events As List(Of CalendarDTO) = New List(Of CalendarDTO)()
&#39; Do Some SQL Here
Using con As New SqlConnection(conString)
Dim sqlCmd As SqlCommand = New SqlCommand(&quot;GetCalendarEvents&quot;, con)
sqlCmd.Parameters.Add(New SqlParameter(&quot;@startdate&quot;, Data.SqlDbType.DateTime))
sqlCmd.Parameters(&quot;@startdate&quot;).Value = FromUnixTimespan(startDate)
sqlCmd.Parameters.Add(New SqlParameter(&quot;@enddate&quot;, Data.SqlDbType.DateTime))
sqlCmd.Parameters(&quot;@enddate&quot;).Value = FromUnixTimespan(endDate)

con.Open()
Dim sdr As SqlDataReader = sqlCmd.ExecuteReader
While sdr.Read
Dim value As CalendarDTO = New CalendarDTO()
If Not IsDBNull(sdr(&quot;EndDate&quot;)) Then
value.EndDate = ToUnixTimespan(sdr(&quot;EndDate&quot;))
End If
value.StartDate = ToUnixTimespan(sdr(&quot;StartDate&quot;))
value.id = sdr(&quot;Event_ID&quot;)
value.title = sdr(&quot;title&quot;)
value.url = &quot;http://url/&quot;
events.Add(value)
End While
End Using

Dim js As New JavaScriptSerializer
Return js.Serialize(events)
End Function

Private Function ToUnixTimespan(ByVal d As DateTime) As Int64
Dim time As New TimeSpan()
time = d.ToUniversalTime().Subtract(New DateTime(1970, 1, 1, 0, 0, 0))
Return CType(Math.Truncate(time.TotalSeconds), Int64)
End Function

Private Function FromUnixTimespan(ByVal s As String) As DateTime
Dim time As DateTime = New DateTime(1970, 1, 1, 0, 0, 0)
Return time.AddSeconds(s)
End Function
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Now to call the json formatted webservice we need to add &quot;Calendar.asmx/EventList&quot; to the events to be called by the calendar plugin.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border-bottom: #999999 1px dashed; border-left: #999999 1px dashed; border-right: #999999 1px dashed; border-top: #999999 1px dashed; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 100%;&quot;&gt;&lt;code&gt;
&amp;lt;script type=&quot;text/javascript&quot; language=&quot;javascript&quot;&amp;gt;
$(document).ready(function() {       
$(&#39;#calendar&#39;).fullCalendar({
header: {
left: &#39;prev,next,today&#39;,
center: &#39;title&#39;,
right: &#39;month,basicWeek,basicDay&#39;
},
events: &quot;Calendar.asmx/EventList&quot;         
//events: [{title:&#39;event1&#39;,start:&#39;2010-06-01&#39;},{title:&#39;event2&#39;,start:&#39;2010-06-05&#39;,end:&#39;2010-06-07&#39;}]                        
});         
});
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;iframe align=&quot;right&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=chautauquacen-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=1935182323&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;align: right; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
Last we need to make the changes to make the fullcalendar.js file VB.NET friendly. &lt;br /&gt;
Line 25 (give or take)&lt;br /&gt;
Replace the following lines: &lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border-bottom: #999999 1px dashed; border-left: #999999 1px dashed; border-right: #999999 1px dashed; border-top: #999999 1px dashed; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 100%;&quot;&gt;&lt;code&gt;
startParam: ‘start’,
endParam: ‘end’,
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
with&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border-bottom: #999999 1px dashed; border-left: #999999 1px dashed; border-right: #999999 1px dashed; border-top: #999999 1px dashed; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 100%;&quot;&gt;&lt;code&gt;
startParam:’startDate’,
endParam:’endDate’,
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
This will change the passed parameters to work with the webservice created above (call using startDate and endDate instead of start and end.&lt;br /&gt;
Next we need to change all the returned fields from the webservice calendarDTO class from startDate to start and endDate to end.&lt;br /&gt;
At line 442 in the ‘reportEventsAndPop = function(a) function you need to add:&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border-bottom: #999999 1px dashed; border-left: #999999 1px dashed; border-right: #999999 1px dashed; border-top: #999999 1px dashed; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 100%;&quot;&gt;&lt;code&gt;
reportEventsAndPop = function(a) {
&lt;span style=&quot;color: red;&quot;&gt;if (a.d) {
var a = eval(&#39;(&#39; + a.d.replace(/StartDate/g, &#39;start&#39;).replace (/EndDate/g, &#39;end&#39;) + &#39;)&#39;);
}&lt;/span&gt;
reportEvents(a);
popLoading();
};
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
This will convert the json to an object and replace all the ‘StartDate’ and ‘EndDate’ fields with ‘start’ and ‘end’&lt;br /&gt;
For the ajax call to work using a asp.net webservice you need to add the type: ‘Post’ since GET is not allowed, You need to specifiy the content and data type and lastly you need to use the jasn2.js script to convert the params variable to a json string to pass into the webservice.&lt;br /&gt;
At line 448 replace the $.ajax call with the following:&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border-bottom: #999999 1px dashed; border-left: #999999 1px dashed; border-right: #999999 1px dashed; border-top: #999999 1px dashed; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 100%;&quot;&gt;&lt;code&gt;
$.ajax({
url: src,
type: &#39;POST&#39;,
contentType: &#39;application/json; charset=utf-8&#39;,
dataType: &#39;json&#39;,
&lt;span sytle=&quot;color:red;&quot;&gt;data: JSON.stringify(params)&lt;/span&gt;,
cache: options.cacheParam false, // don&#39;t let jquery prevent caching if cacheParam is being used
success: reportEventsAndPop });
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Take special note of the JSON.stringify(params), this uses the json2.js script availible from &lt;a href=&quot;http://www.json.org/js.html&quot;&gt;json.org&lt;/a&gt;. This is required to convert the passed parameters into a json formated string.</content><link rel='replies' type='application/atom+xml' href='http://jake1164.blogspot.com/feeds/5207342822210864160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jake1164.blogspot.com/2010/06/jquery-fullcalendar-and-aspnet.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/5207342822210864160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870202655663238104/posts/default/5207342822210864160'/><link rel='alternate' type='text/html' href='http://jake1164.blogspot.com/2010/06/jquery-fullcalendar-and-aspnet.html' title='jQuery FullCalendar and ASP.NET'/><author><name>Jake&#39;s Stuff</name><uri>http://www.blogger.com/profile/12545015652530509920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry></feed>