Весь день провалялся в постели, аццки потел и отлёживался. В результате вечером самочувствие улучшилось и оказалось что сна - ни в одном глазу. Так что решил заняться чем-нибудь, где мозги особо не требуются. Т.е. доделать градусник.
С сетевой платой на базе ENC28J60 у меня как-то не срослось из-за того что штатная библиотека EtherShield.h не поддерживает маршрутизации, т.е. пашет только в своём сегменте сети. Нашлась модифицированная версия этой библиотеки, но весь код - на низком уровне, шибко уж запутанно. Хочется чего-нить высокоуровнего. А для этого нужна стандартная ардуиновская плата eShield. Которую нигде не получается купить ибо нигде нету в наличии.
Вспомнил что SysCat подарил мне много запчастей, среди которых нашёлся набор "сделай сам" как раз для требуемого шылда. Нужно паять.
Достал паяльник, олово, под паятельные нужды экспроприировал Катюхину кухонную разделочную доску (Кать, куплю другую). Думать вообще не надо - на сайте производителя есть инструкция по сборке из серии "для блондинок".
Паяльник давно в руках не держал, но припаяв несколько кондёров дело пошло на лад и под конец процедуры пины и кроватки припаял на ура - не отличишь от заводской пайки :-)
Полный размер Слева - то, что я спаял. Справа - модуль Wiznet W5100
// если подключены то отправляем данные о температуре Serial.println("."); if (client.connect()) { Serial.println("sending info"); client.print("GET /address?password=pass&temp="); client.print(tempSensor.getTemperature()); client.print(" HTTP/1.0"); client.println(); client.stop(); delay(1000); } if (!client.connected()) { Serial.println("disconnecting."); client.stop(); } } [/code]
Всё просто. Ардуина каждую секунду передаёт на сервак сведения о температуре. А скриптик на PHP эту температуру показывает. Сейчас показывает только текущую температуру, надо будет ещё график изменения сделать.
Результат работы мона посмотреть вот тут. В IE8 у меня не заработало, а в браузерах - нормуль пашет. Кстати, информация коррелирует с яндексовой - мой градусник показывает +26 и на яндексе написано +26.
UPD> Между тем градусник уже научился отправлять СМС с указанием текущей температуры. Если температура превышает заданный порог - мне на мобилу уходит ругательная СМС. Правда, за удовольствие надо платить - отправка сделана на базе sms.ru Одно сообщение стоит 50 копеек, дешевле чем даже с мобилы отправлять.
UPD> Добавлено предварительное построение графика изменения температуры. Отладочная, пробная версия. Посмотреть можно вот тут: 12.08.2010, 13.08.2010, текущий день. Температурные пики объясняются тем что градусник часть дня на солнце лежит, прогревается сильно.
Было бы не плохо продлить идею. Создать небольшую програмку висящую в трее и показывающую температуру за бортом. MOSGOLWEATH Ну или на Голкарте показывать температуру конкретного места. Так как мы знаем, что в одном месте температура одна, а в другом другая. Готов проучаствовать в эксперементе и поместить ГОЛадусник дома. WiFi один фиг всё-время включен. :-)))
"Как неэстетично! Зато дёшево, удобно и практично" :-) Пайка да, не особо, хотя есть и нормально припаяные контакты. Всё равно, получше некоторых заводских китайских схем :-)
Да это самая очевидная штука, так что немудрено что многие так и делают. Зато приятно - я в правильном направлении думал, раз ещё кто-то аналогично сделал :-) Я даж не думал что эта простейшая штука тянет на статью на Хабре.
SysCat нет я не спёр))). Иначе обязательно бы указал на блог Gol. Только сейчас увидел. А первый Ethernet градусник я собрал ещё в начале лета. Просто долгое время не мог придумать в что бы завернуть датчик что бы его солнце не нагревало.
Сейчас просто довёл всё до ума.
Есть ещё идеи. У меня дома Интернет бывает пропадает. А показания терять жалко. Хочу прикрутить SD-флеш и писать во время когда проблемы со связью, а потом уже автоматом отсылать на сервер.
Кость, привет :-) Да никто и не думал что ты спёр, идеи в воздухе летают. Даж приятно что я тоже правильно идею придумал. По поводу буфера на SD - можно и без SD обойтись, запоминай в памяти ардуины. Правда, её не особо много, но хоть SD не потребуется. Т.е. например пропал коннект - снижаешь частоту проверки температуры дабы память экономить.
Привет) Да в память можно. Я думал об этом. Но уж очень память маленькая. И меня смутило что есть ограничения по циклам записи/чтения. Боюсь как бы не убить её так, частыми запясями.
А SD вроде подключить не сложно. Самый простой вариант видел, где были только резисторы. Для понижения напряжения до 3.3V. И всё. Но ещё не вникал. На крайний случай, уже готовый модуль можно купить ~300 руб. что приемлемо.
Аааа. Про оперативку. Тогда да, ограничений нет конечно) Но она такая маленькая, а я хотел ещё датчик вдажности, давления, скорсти и направления ветра.
Действительно, очень оригинально! Я делал на основе электродвигателя. Чем быстрее лопасти вращают ротер, тем большее напряжение бырабатывается за счёт индукции. Правда к Arduino ещё не подключал.
Лан, Костя, ты не волноваться :) пошутил я... Просто Серега тоже не только вчера прикрутил градусник, только он любитель онлайн сервиса и делал чтоб через веб было доступно. А вообще-то цифровой датчик наиболее точен чем аналоговые, т.к. для аналогового надо еще 0-е значение выставлять, а там как бог на душу положит. Ведь в аналоговом падение напряжение вроде на единицу градуса используется. А вот в иномарках стоят цифровые датчики, и согласно тест режиму просто делается корректировка на 1-1.5 градуса. А в Российской стоял аналоговый, если отключить питание летом то и в +30 у тебя может быть голлолед, из-за того что он текущее состояние при включении принимал за 0.
Ну самые точные я нашёл только аналоговые: http://www.platan.ru/cgi-bin/qwery.pl/id=136856777&group=32404
Точность до 0.1, но т.к. изменение не линейное фиг поймёшь где 0, а где -5... Правда к некоторым идут таблицы соответствий. Для себя я конечно решил использовать цифровой.
что-то я пропустил этот пост... короче говоря, на визнете сделано. но это неспортивно - сама плата чересчур дорого стоит, да и ардуины как таковой у меня нету. а вот с ENC28J60 поколупаться было бы интересно. я даже себе в вишлист на вольтмастере занес парочку на всякий случай - как соберусь с мыслями и куплю все, что там хочу - обязательно попробую поэкспериментировать. я видел на туксграфике чувак делал нечто подобное, но там тоже как-то путанно. а зачем тебе маршрутизация наружу нужна?
а, все, допер. но можно ж было сделать скрипт наоборот - чтобы он с сервера ломился к датчику (проброс портов) - то же самое, только немного софт на датчике исправить.
Добрый день, Сергей! Спасибо за такую полезную статью. Сам недавно начал осваивать ардуино в качестве хобби. Датчики работают, на дисплей вывел. Очень хочу прикрутить текущую температуру на сайт, но я не программист, и поэтому сложности. Не поможете?
Сергей присоединяюсь к предыдущей просьбе. Кстати код что выше его нужно а контроллер зашивать? И еще не могли бы вы подробнее описать как по смс температуру мониторите?
2 Гость: Уфф, из меня фиговый обучатор, скажем так. Я хз как доходчиво что-то объяснять, не умею. По смс мониторил через сторонний сервис (рекламировать не буду ибо он меня достал уже рекламными смсками на мобилу, гад такой). Код да, заливается в ардуину через родную ардуиновскую IDE. Этот код уж устарел раз десять, ща у меня уже всё по-другому, но суть та же.
SysCat Среда, 11 Августа, 2010 08:47 цитировать ссылка на коммент
Error404 Среда, 11 Августа, 2010 17:51 цитировать ссылка на коммент
Gol Среда, 11 Августа, 2010 18:04 цитировать ссылка на коммент
Gol Среда, 11 Августа, 2010 18:05 цитировать ссылка на коммент
Error404 Четверг, 12 Августа, 2010 10:16 цитировать ссылка на коммент
Gol Суббота, 14 Августа, 2010 03:14 цитировать ссылка на коммент
Gol Суббота, 14 Августа, 2010 04:25 цитировать ссылка на коммент
SysCat Суббота, 14 Августа, 2010 14:35 цитировать ссылка на коммент
Gol Суббота, 14 Августа, 2010 15:06 цитировать ссылка на коммент
Gol Суббота, 14 Августа, 2010 15:30 цитировать ссылка на коммент
SysCat Пятница, 24 Декабря, 2010 00:35 цитировать ссылка на коммент
http://habrahabr.ru/blogs/arduino/110610/
Короче идею сперли
Gol Пятница, 24 Декабря, 2010 01:10 цитировать ссылка на коммент
Гость Пятница, 24 Декабря, 2010 01:17 цитировать ссылка на коммент
Сейчас просто довёл всё до ума.
Есть ещё идеи. У меня дома Интернет бывает пропадает. А показания терять жалко. Хочу прикрутить SD-флеш и писать во время когда проблемы со связью, а потом уже автоматом отсылать на сервер.
Гость Пятница, 24 Декабря, 2010 01:18 цитировать ссылка на коммент
Gol Пятница, 24 Декабря, 2010 01:31 цитировать ссылка на коммент
Гость Пятница, 24 Декабря, 2010 01:39 цитировать ссылка на коммент
А SD вроде подключить не сложно. Самый простой вариант видел, где были только резисторы. Для понижения напряжения до 3.3V. И всё. Но ещё не вникал.
На крайний случай, уже готовый модуль можно купить ~300 руб. что приемлемо.
Gol Пятница, 24 Декабря, 2010 01:42 цитировать ссылка на коммент
Гость Пятница, 24 Декабря, 2010 01:45 цитировать ссылка на коммент
Спасибо за совет с повторным client.print
По чемуто я до этого не допёр)))
А sprintf не корректно у меня с float отрабатывал. Вместо цифр знк вопроса.
Гость Пятница, 24 Декабря, 2010 01:47 цитировать ссылка на коммент
Но она такая маленькая, а я хотел ещё датчик вдажности, давления, скорсти и направления ветра.
Gol Пятница, 24 Декабря, 2010 01:50 цитировать ссылка на коммент
Гость Пятница, 24 Декабря, 2010 01:53 цитировать ссылка на коммент
Gol Пятница, 24 Декабря, 2010 01:55 цитировать ссылка на коммент
Гость Пятница, 24 Декабря, 2010 07:52 цитировать ссылка на коммент
А Вы не находили более точных датчиков?
SysCat Пятница, 24 Декабря, 2010 09:41 цитировать ссылка на коммент
Гость Пятница, 24 Декабря, 2010 09:53 цитировать ссылка на коммент
Точность до 0.1, но т.к. изменение не линейное фиг поймёшь где 0, а где -5... Правда к некоторым идут таблицы соответствий.
Для себя я конечно решил использовать цифровой.
Гость Пятница, 1 Апреля, 2011 22:37 цитировать ссылка на коммент
а вот с ENC28J60 поколупаться было бы интересно. я даже себе в вишлист на вольтмастере занес парочку на всякий случай - как соберусь с мыслями и куплю все, что там хочу - обязательно попробую поэкспериментировать. я видел на туксграфике чувак делал нечто подобное, но там тоже как-то путанно. а зачем тебе маршрутизация наружу нужна?
Gol Пятница, 1 Апреля, 2011 22:42 цитировать ссылка на коммент
Гость Пятница, 1 Апреля, 2011 23:06 цитировать ссылка на коммент
Гость Пятница, 1 Апреля, 2011 23:08 цитировать ссылка на коммент
Гость Воскресенье, 17 Марта, 2013 14:30 цитировать ссылка на коммент
Гость Суббота, 23 Марта, 2013 16:23 цитировать ссылка на коммент
Gol Суббота, 23 Марта, 2013 16:26 цитировать ссылка на коммент
Уфф, из меня фиговый обучатор, скажем так. Я хз как доходчиво что-то объяснять, не умею. По смс мониторил через сторонний сервис (рекламировать не буду ибо он меня достал уже рекламными смсками на мобилу, гад такой). Код да, заливается в ардуину через родную ардуиновскую IDE. Этот код уж устарел раз десять, ща у меня уже всё по-другому, но суть та же.
Гость Суббота, 23 Марта, 2013 16:40 цитировать ссылка на коммент
Gol Суббота, 23 Марта, 2013 16:45 цитировать ссылка на коммент
Яндекс выдаёт сразу же
Гость Суббота, 23 Марта, 2013 17:23 цитировать ссылка на коммент